Client

Struct Client 

Source
pub struct Client<Ext = Nothing, H = Client> { /* private fields */ }

Implementations§

Source§

impl<Ext, ExtBuilder, Key, H> Client<Ext, H>
where ExtBuilder: Clone + Default + ProviderBuilder<Output = Ext, ApiKey = Key>, Ext: Provider<Builder = ExtBuilder>, H: Default + HttpClientExt, Key: ApiKey,

Source

pub fn new(api_key: impl Into<Key>) -> Result<Client<Ext, H>, Error>

Source§

impl<Ext, H> Client<Ext, H>

Source

pub fn base_url(&self) -> &str

Source

pub fn headers(&self) -> &HeaderMap

Source

pub fn ext(&self) -> &Ext

Source

pub fn with_ext<NewExt>(self, new_ext: NewExt) -> Client<NewExt, H>

Source§

impl<Ext, Builder, H> Client<Ext, H>
where H: Default + HttpClientExt, Ext: Provider<Builder = Builder>, Builder: Default + ProviderBuilder,

Source

pub fn builder() -> ClientBuilder<Builder, NeedsApiKey, H>

Source§

impl<Ext, H> Client<Ext, H>
where Ext: Provider,

Source

pub fn post<S>(&self, path: S) -> Result<Builder, Error>
where S: AsRef<str>,

Source

pub fn post_sse<S>(&self, path: S) -> Result<Builder, Error>
where S: AsRef<str>,

Source

pub fn get<S>(&self, path: S) -> Result<Builder, Error>
where S: AsRef<str>,

Source§

impl<T> Client<CohereExt, T>

Source

pub fn embeddings<D>( &self, model: impl Into<String>, input_type: &str, ) -> EmbeddingsBuilder<EmbeddingModel<T>, D>
where D: Embed,

Source

pub fn embedding_model( &self, model: impl Into<String>, input_type: &str, ) -> EmbeddingModel<T>

Note: default embedding dimension of 0 will be used if model is not known. If this is the case, it’s better to use function embedding_model_with_ndims

Source

pub fn embedding_model_with_ndims( &self, model: impl Into<String>, input_type: &str, ndims: usize, ) -> EmbeddingModel<T>

Create an embedding model with the given name and the number of dimensions in the embedding generated by the model.

Source§

impl<T> Client<MiraExt, T>
where T: HttpClientExt + 'static,

Source

pub async fn list_models(&self) -> Result<Vec<String>, MiraError>

List available models

Source§

impl<H> Client<OpenAIResponsesExt, H>

Source

pub fn extractor<U>( &self, model: impl Into<String>, ) -> ExtractorBuilder<ResponsesCompletionModel<H>, U>

Create an extractor builder with the given completion model. Uses the OpenAI Responses API (default behavior).

Source

pub fn completions_api(self) -> Client<OpenAICompletionsExt, H>

Create a Completions API client from this Responses API client. Useful for switching to the traditional Chat Completions API.

Source§

impl<H> Client<OpenAICompletionsExt, H>

Source

pub fn extractor<U>( &self, model: impl Into<String>, ) -> ExtractorBuilder<CompletionModel<H>, U>

Create an extractor builder with the given completion model. Uses the OpenAI Chat Completions API.

Source

pub fn responses_api(self) -> Client<OpenAIResponsesExt, H>

Create a Responses API client from this Completions API client. Useful for switching to the newer Responses API.

Trait Implementations§

Source§

impl<Ext, H> Clone for Client<Ext, H>
where Ext: Clone, H: Clone,

Source§

fn clone(&self) -> Client<Ext, H>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<M, Ext, H> CompletionClient for Client<Ext, H>
where Ext: Capabilities<H, Completion = Capable<M>>, M: CompletionModel<Client = Client<Ext, H>>,

Source§

type CompletionModel = M

The type of CompletionModel used by the client.
Source§

fn completion_model( &self, model: impl Into<String>, ) -> <Client<Ext, H> as CompletionClient>::CompletionModel

Create a completion model with the given model. Read more
Source§

fn agent(&self, model: impl Into<String>) -> AgentBuilder<Self::CompletionModel>

Create an agent builder with the given completion model. Read more
Source§

fn extractor<T>( &self, model: impl Into<String>, ) -> ExtractorBuilder<Self::CompletionModel, T>
where T: JsonSchema + for<'a> Deserialize<'a> + Serialize + Send + Sync,

Create an extractor builder with the given completion model.
Source§

impl<Ext, H> Debug for Client<Ext, H>
where Ext: DebugExt, H: Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<M, Ext, H> EmbeddingsClient for Client<Ext, H>
where Ext: Capabilities<H, Embeddings = Capable<M>>, M: EmbeddingModel<Client = Client<Ext, H>>,

Source§

type EmbeddingModel = M

The type of EmbeddingModel used by the Client
Source§

fn embedding_model( &self, model: impl Into<String>, ) -> <Client<Ext, H> as EmbeddingsClient>::EmbeddingModel

Create an embedding model with the given model. Read more
Source§

fn embedding_model_with_ndims( &self, model: impl Into<String>, ndims: usize, ) -> <Client<Ext, H> as EmbeddingsClient>::EmbeddingModel

Create an embedding model with the given model identifier string and the number of dimensions in the embedding generated by the model. This is the suggested method if you need to use a model not included in Self::EmbeddingModel::Models Read more
Source§

fn embeddings<D>( &self, model: impl Into<String>, ) -> EmbeddingsBuilder<Self::EmbeddingModel, D>
where D: Embed,

Create an embedding builder with the given embedding model. Read more
Source§

fn embeddings_with_ndims<D>( &self, model: &str, ndims: usize, ) -> EmbeddingsBuilder<Self::EmbeddingModel, D>
where D: Embed,

Create an embedding builder with the given name and the number of dimensions in the embedding generated by the model. Read more
Source§

impl<Ext, H> HttpClientExt for Client<Ext, H>
where H: HttpClientExt + 'static, Ext: WasmCompatSend + WasmCompatSync + 'static,

Source§

fn send<T, U>( &self, req: Request<T>, ) -> impl Future<Output = Result<Response<Pin<Box<dyn Future<Output = Result<U, Error>> + Send>>>, Error>> + WasmCompatSend + 'static
where T: Into<Bytes> + WasmCompatSend, U: From<Bytes> + WasmCompatSend + 'static,

Send a HTTP request, get a response back (as bytes). Response must be able to be turned back into Bytes.
Source§

fn send_multipart<U>( &self, req: Request<MultipartForm>, ) -> impl Future<Output = Result<Response<Pin<Box<dyn Future<Output = Result<U, Error>> + Send>>>, Error>> + WasmCompatSend + 'static
where U: From<Bytes> + WasmCompatSend + 'static,

Send a HTTP request with a multipart body, get a response back (as bytes). Response must be able to be turned back into Bytes (although usually for the response, you will probably want to specify Bytes anyway).
Source§

fn send_streaming<T>( &self, req: Request<T>, ) -> impl Future<Output = Result<Response<Pin<Box<dyn WasmCompatSendStream<InnerItem = Result<Bytes, Error>, Item = Result<Bytes, Error>>>>>, Error>> + WasmCompatSend
where T: Into<Bytes>,

Send a HTTP request, get a streamed response back (as a stream of bytes::Bytes.)
Source§

impl ProviderClient for Client<AnthropicExt>

Source§

type Input = String

Source§

fn from_env() -> Client<AnthropicExt>

Create a client from the process’s environment. Panics if an environment is improperly configured.
Source§

fn from_val( input: <Client<AnthropicExt> as ProviderClient>::Input, ) -> Client<AnthropicExt>

Source§

impl ProviderClient for Client<AzureExt>

Source§

fn from_env() -> Client<AzureExt>

Create a new Azure OpenAI client from the AZURE_API_KEY or AZURE_TOKEN, AZURE_API_VERSION, and AZURE_ENDPOINT environment variables.

Source§

type Input = AzureOpenAIClientParams

Source§

fn from_val(_: <Client<AzureExt> as ProviderClient>::Input) -> Client<AzureExt>

Source§

impl ProviderClient for Client<CohereExt>

Source§

type Input = BearerAuth

Source§

fn from_env() -> Client<CohereExt>

Create a client from the process’s environment. Panics if an environment is improperly configured.
Source§

fn from_val( input: <Client<CohereExt> as ProviderClient>::Input, ) -> Client<CohereExt>

Source§

impl ProviderClient for Client<DeepSeekExt>

Source§

type Input = BearerAuth

Source§

fn from_env() -> Client<DeepSeekExt>

Create a client from the process’s environment. Panics if an environment is improperly configured.
Source§

fn from_val( input: <Client<DeepSeekExt> as ProviderClient>::Input, ) -> Client<DeepSeekExt>

Source§

impl ProviderClient for Client<GaladrielExt>

Source§

fn from_env() -> Client<GaladrielExt>

Create a new Galadriel client from the GALADRIEL_API_KEY environment variable, and optionally from the GALADRIEL_FINE_TUNE_API_KEY environment variable. Panics if the GALADRIEL_API_KEY environment variable is not set.

Source§

type Input = (String, Option<String>)

Source§

fn from_val( _: <Client<GaladrielExt> as ProviderClient>::Input, ) -> Client<GaladrielExt>

Source§

impl ProviderClient for Client<GeminiExt>

Source§

fn from_env() -> Client<GeminiExt>

Create a new Google Gemini client from the GEMINI_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = GeminiApiKey

Source§

fn from_val( input: <Client<GeminiExt> as ProviderClient>::Input, ) -> Client<GeminiExt>

Source§

impl ProviderClient for Client<GroqExt>

Source§

fn from_env() -> Client<GroqExt>

Create a new Groq client from the GROQ_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<GroqExt> as ProviderClient>::Input, ) -> Client<GroqExt>

Source§

impl ProviderClient for Client<HuggingFaceExt>

Source§

fn from_env() -> Client<HuggingFaceExt>

Create a new Huggingface client from the HUGGINGFACE_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<HuggingFaceExt> as ProviderClient>::Input, ) -> Client<HuggingFaceExt>

Source§

impl ProviderClient for Client<HyperbolicExt>

Source§

fn from_env() -> Client<HyperbolicExt>

Create a new Hyperbolic client from the HYPERBOLIC_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = BearerAuth

Source§

fn from_val( input: <Client<HyperbolicExt> as ProviderClient>::Input, ) -> Client<HyperbolicExt>

Source§

impl ProviderClient for Client<MiraExt>

Source§

fn from_env() -> Client<MiraExt>

Create a new Mira client from the MIRA_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<MiraExt> as ProviderClient>::Input, ) -> Client<MiraExt>

Source§

impl ProviderClient for Client<MistralExt>

Source§

fn from_env() -> Client<MistralExt>

Create a new Mistral client from the MISTRAL_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<MistralExt> as ProviderClient>::Input, ) -> Client<MistralExt>

Source§

impl ProviderClient for Client<MoonshotExt>

Source§

fn from_env() -> Client<MoonshotExt>

Create a new Moonshot client from the MOONSHOT_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<MoonshotExt> as ProviderClient>::Input, ) -> Client<MoonshotExt>

Source§

impl ProviderClient for Client<OllamaExt>

Source§

type Input = Nothing

Source§

fn from_env() -> Client<OllamaExt>

Create a client from the process’s environment. Panics if an environment is improperly configured.
Source§

fn from_val( _: <Client<OllamaExt> as ProviderClient>::Input, ) -> Client<OllamaExt>

Source§

impl ProviderClient for Client<OpenAICompletionsExt>

Source§

fn from_env() -> Client<OpenAICompletionsExt>

Create a new OpenAI Completions API client from the OPENAI_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = BearerAuth

Source§

fn from_val( input: <Client<OpenAICompletionsExt> as ProviderClient>::Input, ) -> Client<OpenAICompletionsExt>

Source§

impl ProviderClient for Client<OpenAIResponsesExt>

Source§

fn from_env() -> Client<OpenAIResponsesExt>

Create a new OpenAI Responses API client from the OPENAI_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = BearerAuth

Source§

fn from_val( input: <Client<OpenAIResponsesExt> as ProviderClient>::Input, ) -> Client<OpenAIResponsesExt>

Source§

impl ProviderClient for Client<OpenRouterExt>

Source§

fn from_env() -> Client<OpenRouterExt>

Create a new openrouter client from the OPENROUTER_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = BearerAuth

Source§

fn from_val( input: <Client<OpenRouterExt> as ProviderClient>::Input, ) -> Client<OpenRouterExt>

Source§

impl ProviderClient for Client<PerplexityExt>

Source§

fn from_env() -> Client<PerplexityExt>

Create a new Perplexity client from the PERPLEXITY_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<PerplexityExt> as ProviderClient>::Input, ) -> Client<PerplexityExt>

Source§

impl ProviderClient for Client<TogetherExt>

Source§

fn from_env() -> Client<TogetherExt>

Create a new Together AI client from the TOGETHER_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<TogetherExt> as ProviderClient>::Input, ) -> Client<TogetherExt>

Source§

impl ProviderClient for Client<VoyageExt>

Source§

fn from_env() -> Client<VoyageExt>

Create a new OpenAI client from the OPENAI_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val( input: <Client<VoyageExt> as ProviderClient>::Input, ) -> Client<VoyageExt>

Source§

impl ProviderClient for Client<XAiExt>

Source§

fn from_env() -> Client<XAiExt>

Create a new xAI client from the XAI_API_KEY environment variable. Panics if the environment variable is not set.

Source§

type Input = String

Source§

fn from_val(input: <Client<XAiExt> as ProviderClient>::Input) -> Client<XAiExt>

Source§

impl<M, Ext, H> TranscriptionClient for Client<Ext, H>
where Ext: Capabilities<H, Transcription = Capable<M>>, M: TranscriptionModel<Client = Client<Ext, H>> + WasmCompatSend,

Source§

type TranscriptionModel = M

The type of TranscriptionModel used by the Client
Source§

fn transcription_model( &self, model: impl Into<String>, ) -> <Client<Ext, H> as TranscriptionClient>::TranscriptionModel

Create a transcription model with the given name. Read more
Source§

impl<Ext, H> VerifyClient for Client<Ext, H>

Source§

async fn verify(&self) -> Result<(), VerifyError>

Verify the configuration.

Auto Trait Implementations§

§

impl<Ext, H> Freeze for Client<Ext, H>
where H: Freeze, Ext: Freeze,

§

impl<Ext, H> RefUnwindSafe for Client<Ext, H>

§

impl<Ext, H> Send for Client<Ext, H>
where H: Send, Ext: Send,

§

impl<Ext, H> Sync for Client<Ext, H>
where H: Sync, Ext: Sync,

§

impl<Ext, H> Unpin for Client<Ext, H>
where H: Unpin, Ext: Unpin,

§

impl<Ext, H> UnwindSafe for Client<Ext, H>
where H: UnwindSafe, Ext: UnwindSafe,

Blanket Implementations§

Source§

impl<T, M, R> CompletionClientDyn for T
where T: CompletionClient<CompletionModel = M>, M: CompletionModel<StreamingResponse = R> + 'static, R: Clone + Unpin + GetTokenUsage + 'static,

Source§

fn completion_model<'a>(&self, model: &str) -> Box<dyn CompletionModelDyn + 'a>

👎Deprecated since 0.25.0: DynClientBuilder and related features have been deprecated and will be removed in a future release. In this case, use CompletionClient instead.
Create a completion model with the given name.
Source§

fn agent<'a>(&self, model: &str) -> AgentBuilder<CompletionModelHandle<'a>>

👎Deprecated since 0.25.0: DynClientBuilder and related features have been deprecated and will be removed in a future release. In this case, use CompletionClient instead.
Create an agent builder with the given completion model.
Source§

impl<M, T> EmbeddingsClientDyn for T
where T: EmbeddingsClient<EmbeddingModel = M>, M: EmbeddingModel + 'static,

Source§

fn embedding_model<'a>(&self, model: &str) -> Box<dyn EmbeddingModelDyn + 'a>

👎Deprecated since 0.25.0: DynClientBuilder and related features have been deprecated and will be removed in a future release. In this case, use EmbeddingsClient instead.
Create an embedding model with the given name. Note: default embedding dimension of 0 will be used if model is not known. If this is the case, it’s better to use function embedding_model_with_ndims
Source§

fn embedding_model_with_ndims<'a>( &self, model: &str, ndims: usize, ) -> Box<dyn EmbeddingModelDyn + 'a>

👎Deprecated since 0.25.0: DynClientBuilder and related features have been deprecated and will be removed in a future release. In this case, use EmbeddingsClient instead.
Create an embedding model with the given name and the number of dimensions in the embedding generated by the model.
Source§

impl<M, T> TranscriptionClientDyn for T
where T: TranscriptionClient<TranscriptionModel = M>, M: TranscriptionModel + 'static,

Source§

fn transcription_model<'a>( &self, model: &str, ) -> Box<dyn TranscriptionModelDyn + 'a>

👎Deprecated since 0.25.0: DynClientBuilder and related features have been deprecated and will be removed in a future release. In this case, use TranscriptionClient instead.
Create a transcription model with the given name.
Source§

impl<T> VerifyClientDyn for T
where T: VerifyClient,

Source§

fn verify( &self, ) -> Pin<Box<dyn Future<Output = Result<(), VerifyError>> + Send + '_>>

👎Deprecated since 0.25.0: DynClientBuilder and related features have been deprecated and will be removed in a future release. In this case, use VerifyClient instead.
Verify the configuration.
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WasmCompatSend for T
where T: Send,

Source§

impl<T> WasmCompatSync for T
where T: Sync,