pub trait CompletionClient {
type CompletionModel: CompletionModel<Client = Self>;
// Provided methods
fn completion_model(
&self,
model: impl Into<String>,
) -> Self::CompletionModel { ... }
fn agent(
&self,
model: impl Into<String>,
) -> AgentBuilder<Self::CompletionModel> { ... }
fn extractor<T>(
&self,
model: impl Into<String>,
) -> ExtractorBuilder<Self::CompletionModel, T>
where T: JsonSchema + for<'a> Deserialize<'a> + Serialize + Send + Sync { ... }
}Expand description
A provider client with completion capabilities. Clone is required for conversions between client types.
Required Associated Types§
Sourcetype CompletionModel: CompletionModel<Client = Self>
type CompletionModel: CompletionModel<Client = Self>
The type of CompletionModel used by the client.
Provided Methods§
Sourcefn completion_model(&self, model: impl Into<String>) -> Self::CompletionModel
fn completion_model(&self, model: impl Into<String>) -> Self::CompletionModel
Create a completion model with the given model.
§Example with OpenAI
use rig_core::prelude::*;
use rig_core::providers::openai::{Client, self};
// Initialize the OpenAI client
let openai = Client::new("your-open-ai-api-key")?;
let gpt = openai.completion_model(openai::GPT_5_2);Sourcefn agent(&self, model: impl Into<String>) -> AgentBuilder<Self::CompletionModel>
fn agent(&self, model: impl Into<String>) -> AgentBuilder<Self::CompletionModel>
Create an agent builder with the given completion model.
§Example with OpenAI
use rig_core::prelude::*;
use rig_core::providers::openai::{Client, self};
// Initialize the OpenAI client
let openai = Client::new("your-open-ai-api-key")?;
let agent = openai.agent(openai::GPT_5_2)
.preamble("You are comedian AI with a mission to make people laugh.")
.temperature(0.0)
.build();Sourcefn extractor<T>(
&self,
model: impl Into<String>,
) -> ExtractorBuilder<Self::CompletionModel, T>
fn extractor<T>( &self, model: impl Into<String>, ) -> ExtractorBuilder<Self::CompletionModel, T>
Create an extractor builder with the given completion model.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".