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 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