From b2e7b7134eb442950dacb1b6f1fa79e92fcfb5e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cipriani=20Bandarra?= Date: Sun, 28 Dec 2025 13:23:14 +0000 Subject: [PATCH] Adds version method --- examples/version.rs | 14 ++++++++++++++ src/lib.rs | 10 ++++++++++ src/types/mod.rs | 1 + src/types/version.rs | 6 ++++++ 4 files changed, 31 insertions(+) create mode 100644 examples/version.rs create mode 100644 src/types/version.rs diff --git a/examples/version.rs b/examples/version.rs new file mode 100644 index 0000000..a422bee --- /dev/null +++ b/examples/version.rs @@ -0,0 +1,14 @@ +use std::{env, error::Error}; + +use ollama_rs::OllamaClient; + +#[tokio::main] +async fn main() -> Result<(), Box> { + 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(()) +} diff --git a/src/lib.rs b/src/lib.rs index 30641bb..7aca4bf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,6 +16,7 @@ use crate::{ ps::RunningModel, pull::{PullRequest, PullResponse}, tags::Model, + version::VersionResponse, }, }; @@ -33,6 +34,15 @@ impl OllamaClient { } } + pub async fn version(&self) -> OllamaResult { + 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 pub async fn tags(&self) -> OllamaResult> { let request_address = format!("{}/api/tags", self.server_address); diff --git a/src/types/mod.rs b/src/types/mod.rs index 1fcc5d3..1054deb 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -4,3 +4,4 @@ pub mod generate; pub mod ps; pub mod pull; pub mod tags; +pub mod version; diff --git a/src/types/version.rs b/src/types/version.rs new file mode 100644 index 0000000..65730e3 --- /dev/null +++ b/src/types/version.rs @@ -0,0 +1,6 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Serialize, Deserialize)] +pub struct VersionResponse { + pub version: String, +}