Skip to main content

AzureOpenAIResponsesClient

Struct AzureOpenAIResponsesClient 

Source
pub struct AzureOpenAIResponsesClient { /* private fields */ }
Expand description

An Azure OpenAI Responses API chat client (POST {endpoint}/openai/v1/responses).

See the module docs for the URL/api-version rationale.

Implementations§

Source§

impl AzureOpenAIResponsesClient

Source

pub fn new( endpoint: impl Into<String>, deployment: impl Into<String>, api_key: impl Into<String>, ) -> Self

Create a client authenticating with a static API key (api-key header).

Source

pub fn with_token_credential( endpoint: impl Into<String>, deployment: impl Into<String>, credential: Arc<dyn TokenCredential>, ) -> Self

Create a client authenticating via a TokenCredential (Authorization: Bearer <token>, e.g. Microsoft Entra ID).

Source

pub fn from_env() -> Result<Self>

Build an API-key-authenticated client from AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_API_KEY, AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME, and optional AZURE_OPENAI_API_VERSION/AZURE_OPENAI_BASE_URL — the same generic AZURE_OPENAI_* variables AzureOpenAIClient::from_env reads, except for the Responses-specific deployment variable (mirrors upstream’s responses_deployment_name settings field, distinct from Chat Completions’ AZURE_OPENAI_CHAT_DEPLOYMENT_NAME, so a resource with differently named deployments per API surface works; azure/_shared.py:102-103, docstring at azure/_responses_client.py:53-56).

Source

pub fn with_api_version(self, api_version: impl Into<String>) -> Self

Override the API version (default "preview").

Source

pub fn without_api_version(self) -> Self

Send no api-version query parameter at all.

Microsoft’s v1 Responses examples call the bare {endpoint}/openai/v1/responses URL, and the v1 lifecycle removes dated api-version parameters — GA v1 resources and some OpenAI-compatible gateways reject or misroute requests carrying one. The "preview" default mirrors upstream Python (_responses_client.py:112); use this to produce the documented query-less URL instead. (Also reachable by setting the AZURE_OPENAI_API_VERSION env var to an empty string with from_env.)

Source

pub fn without_implicit_encrypted_reasoning(self) -> Self

Stop adding reasoning.encrypted_content to a stateless request’s include on the caller’s behalf.

The implicit add is right for OpenAI and Azure OpenAI, where a store: false tool loop has to replay the reasoning item itself. Azure AI Foundry does not want it unless it is asked for by name, so FoundryChatClient builds its transport with this set (upstream #7536).

A caller that puts reasoning.encrypted_content in its own include (via ChatOptions::additional_properties) still gets it — this governs only what the client adds unprompted.

Source

pub fn with_base_url(self, base_url: impl Into<String>) -> Self

Override the full base URL used to build requests, taking precedence over the endpoint-derived /openai/v1/ route. Mirrors upstream’s base_url parameter, which “must end with /openai/v1/” (azure/_responses_client.py:60-62) — e.g. for a differently-shaped gateway or proxy in front of Azure OpenAI.

Source

pub fn deployment(&self) -> &str

The deployment name this client targets (sent as the request body’s model field; see the module docs).

Source

pub fn api_version(&self) -> Option<&str>

The API version this client sends, or None when the query parameter is omitted (see without_api_version).

Source

pub fn base_url(&self) -> Option<&str>

The effective base URL requests are built against: the explicit with_base_url override when set, otherwise None (the endpoint-derived /openai/v1/ route is computed lazily by url).

Trait Implementations§

Source§

impl ChatClient for AzureOpenAIResponsesClient

Source§

fn get_response<'life0, 'async_trait>( &'life0 self, messages: Vec<Message>, options: ChatOptions, ) -> Pin<Box<dyn Future<Output = Result<ChatResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get a complete (non-streaming) response.
Source§

fn get_streaming_response<'life0, 'async_trait>( &'life0 self, messages: Vec<Message>, options: ChatOptions, ) -> Pin<Box<dyn Future<Output = Result<ChatStream>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get a streaming response as a sequence of updates.
Source§

fn model(&self) -> Option<&str>

The default model id for this client, if any.
Source§

impl Clone for AzureOpenAIResponsesClient

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AzureOpenAIResponsesClient

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

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, 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: Sized + 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: Sized + 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 = !

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