Adds version method

This commit is contained in:
2025-12-28 13:23:14 +00:00
parent 1c431715c6
commit b2e7b7134e
4 changed files with 31 additions and 0 deletions

14
examples/version.rs Normal file
View File

@@ -0,0 +1,14 @@
use std::{env, error::Error};
use ollama_rs::OllamaClient;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
tracing_subscriber::fmt().init();
let _ = dotenvy::dotenv();
let server_address = env::var("OLLAMA_SERVER")?;
let ollama_client = OllamaClient::new(server_address);
let version_response = ollama_client.version().await?;
println!("{}", version_response.version);
Ok(())
}

View File

@@ -16,6 +16,7 @@ use crate::{
ps::RunningModel, ps::RunningModel,
pull::{PullRequest, PullResponse}, pull::{PullRequest, PullResponse},
tags::Model, tags::Model,
version::VersionResponse,
}, },
}; };
@@ -33,6 +34,15 @@ impl OllamaClient {
} }
} }
pub async fn version(&self) -> OllamaResult<VersionResponse> {
let request_address = format!("{}/api/version", self.server_address);
Ok(reqwest::get(request_address)
.await?
.error_for_status()?
.json()
.await?)
}
/// Fetch a list of models and their details /// Fetch a list of models and their details
pub async fn tags(&self) -> OllamaResult<Vec<Model>> { pub async fn tags(&self) -> OllamaResult<Vec<Model>> {
let request_address = format!("{}/api/tags", self.server_address); let request_address = format!("{}/api/tags", self.server_address);

View File

@@ -4,3 +4,4 @@ pub mod generate;
pub mod ps; pub mod ps;
pub mod pull; pub mod pull;
pub mod tags; pub mod tags;
pub mod version;

6
src/types/version.rs Normal file
View File

@@ -0,0 +1,6 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct VersionResponse {
pub version: String,
}