pub struct Models { /* private fields */ }Expand description
Client for interacting with the OpenAI Models API.
This struct provides methods to list, retrieve, and delete models.
Use Models::new() to create a new instance.
§Example
use openai_tools::models::request::Models;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let models = Models::new()?;
// Get details of a specific model
let model = models.retrieve("gpt-4o-mini").await?;
println!("Model: {} (created: {})", model.id, model.created);
Ok(())
}Implementations§
Source§impl Models
impl Models
Sourcepub fn new() -> Result<Self>
pub fn new() -> Result<Self>
Creates a new Models client for OpenAI API.
Initializes the client by loading the OpenAI API key from
the environment variable OPENAI_API_KEY. Supports .env file loading
via dotenvy.
§Returns
Ok(Models)- A new Models client ready for useErr(OpenAIToolError)- If the API key is not found in the environment
§Example
use openai_tools::models::request::Models;
let models = Models::new().expect("API key should be set");Sourcepub fn with_auth(auth: AuthProvider) -> Self
pub fn with_auth(auth: AuthProvider) -> Self
Creates a new Models client with a custom authentication provider
Sourcepub fn detect_provider() -> Result<Self>
pub fn detect_provider() -> Result<Self>
Creates a new Models client by auto-detecting the provider
Sourcepub fn with_url<S: Into<String>>(base_url: S, api_key: S) -> Self
pub fn with_url<S: Into<String>>(base_url: S, api_key: S) -> Self
Creates a new Models client with URL-based provider detection
Sourcepub fn from_url<S: Into<String>>(url: S) -> Result<Self>
pub fn from_url<S: Into<String>>(url: S) -> Result<Self>
Creates a new Models client from URL using environment variables
Sourcepub fn auth(&self) -> &AuthProvider
pub fn auth(&self) -> &AuthProvider
Returns the authentication provider
Sourcepub fn timeout(&mut self, timeout: Duration) -> &mut Self
pub fn timeout(&mut self, timeout: Duration) -> &mut Self
Sets the request timeout duration.
§Arguments
timeout- The maximum time to wait for a response
§Returns
A mutable reference to self for method chaining
§Example
use std::time::Duration;
use openai_tools::models::request::Models;
let mut models = Models::new().unwrap();
models.timeout(Duration::from_secs(30));Sourcepub async fn list(&self) -> Result<ModelsListResponse>
pub async fn list(&self) -> Result<ModelsListResponse>
Lists all available models.
Returns a list of models that are currently available in the OpenAI API.
§Returns
Ok(ModelsListResponse)- The list of available modelsErr(OpenAIToolError)- If the request fails or response parsing fails
§Example
use openai_tools::models::request::Models;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let models = Models::new()?;
let response = models.list().await?;
println!("Found {} models", response.data.len());
for model in &response.data {
println!("- {}", model.id);
}
Ok(())
}Sourcepub async fn retrieve(&self, model_id: &str) -> Result<Model>
pub async fn retrieve(&self, model_id: &str) -> Result<Model>
Retrieves details of a specific model.
Gets information about a model by its ID, including when it was created and who owns it.
§Arguments
model_id- The ID of the model to retrieve (e.g., “gpt-4o-mini”)
§Returns
Ok(Model)- The model detailsErr(OpenAIToolError)- If the model is not found or the request fails
§Example
use openai_tools::models::request::Models;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let models = Models::new()?;
let model = models.retrieve("gpt-4o-mini").await?;
println!("Model: {}", model.id);
println!("Owned by: {}", model.owned_by);
println!("Created: {}", model.created);
Ok(())
}Sourcepub async fn delete(&self, model_id: &str) -> Result<DeleteResponse>
pub async fn delete(&self, model_id: &str) -> Result<DeleteResponse>
Deletes a fine-tuned model.
You must have the Owner role in your organization or be allowed to delete models. This only works for fine-tuned models that you have created.
§Arguments
model_id- The ID of the fine-tuned model to delete
§Returns
Ok(DeleteResponse)- Confirmation of deletionErr(OpenAIToolError)- If the model cannot be deleted or the request fails
§Example
use openai_tools::models::request::Models;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let models = Models::new()?;
// Delete a fine-tuned model
let result = models.delete("ft:gpt-4o-mini:my-org:my-model:abc123").await?;
if result.deleted {
println!("Model {} was deleted", result.id);
}
Ok(())
}Auto Trait Implementations§
impl Freeze for Models
impl RefUnwindSafe for Models
impl Send for Models
impl Sync for Models
impl Unpin for Models
impl UnsafeUnpin for Models
impl UnwindSafe for Models
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more