pub struct AzureOpenAI {Show 16 fields
pub api_key: String,
pub api_version: String,
pub base_url: Url,
pub model: String,
pub max_tokens: Option<u32>,
pub temperature: Option<f32>,
pub system: Option<String>,
pub timeout_seconds: Option<u64>,
pub top_p: Option<f32>,
pub top_k: Option<u32>,
pub tools: Option<Vec<Tool>>,
pub tool_choice: Option<ToolChoice>,
pub embedding_encoding_format: Option<String>,
pub embedding_dimensions: Option<u32>,
pub reasoning_effort: Option<String>,
pub json_schema: Option<StructuredOutputFormat>,
/* private fields */
}
Expand description
Client for interacting with Azure OpenAI’s API.
Provides methods for chat and completion requests using Azure OpenAI’s models.
Fields§
§api_key: String
§api_version: String
§base_url: Url
§model: String
§max_tokens: Option<u32>
§temperature: Option<f32>
§system: Option<String>
§timeout_seconds: Option<u64>
§top_p: Option<f32>
§top_k: Option<u32>
§tools: Option<Vec<Tool>>
§tool_choice: Option<ToolChoice>
§embedding_encoding_format: Option<String>
Embedding parameters
embedding_dimensions: Option<u32>
§reasoning_effort: Option<String>
§json_schema: Option<StructuredOutputFormat>
JSON schema for structured output
Implementations§
Source§impl AzureOpenAI
impl AzureOpenAI
Sourcepub fn new(
api_key: impl Into<String>,
api_version: impl Into<String>,
deployment_id: impl Into<String>,
endpoint: impl Into<String>,
model: Option<String>,
max_tokens: Option<u32>,
temperature: Option<f32>,
timeout_seconds: Option<u64>,
system: Option<String>,
top_p: Option<f32>,
top_k: Option<u32>,
embedding_encoding_format: Option<String>,
embedding_dimensions: Option<u32>,
tools: Option<Vec<Tool>>,
tool_choice: Option<ToolChoice>,
reasoning_effort: Option<String>,
json_schema: Option<StructuredOutputFormat>,
) -> Self
pub fn new( api_key: impl Into<String>, api_version: impl Into<String>, deployment_id: impl Into<String>, endpoint: impl Into<String>, model: Option<String>, max_tokens: Option<u32>, temperature: Option<f32>, timeout_seconds: Option<u64>, system: Option<String>, top_p: Option<f32>, top_k: Option<u32>, embedding_encoding_format: Option<String>, embedding_dimensions: Option<u32>, tools: Option<Vec<Tool>>, tool_choice: Option<ToolChoice>, reasoning_effort: Option<String>, json_schema: Option<StructuredOutputFormat>, ) -> Self
Creates a new OpenAI client with the specified configuration.
§Arguments
api_key
- OpenAI API keymodel
- Model to use (defaults to “gpt-3.5-turbo”)max_tokens
- Maximum tokens to generatetemperature
- Sampling temperaturetimeout_seconds
- Request timeout in secondssystem
- System promptstream
- Whether to stream responsestop_p
- Top-p sampling parametertop_k
- Top-k sampling parameterembedding_encoding_format
- Format for embedding outputsembedding_dimensions
- Dimensions for embedding vectorstools
- Function tools that the model can usetool_choice
- Determines how the model uses toolsreasoning_effort
- Reasoning effort leveljson_schema
- JSON schema for structured output
Trait Implementations§
Source§impl ChatProvider for AzureOpenAI
impl ChatProvider for AzureOpenAI
Source§fn chat_with_tools<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
tools: Option<&'life2 [Tool]>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ChatResponse>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn chat_with_tools<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
tools: Option<&'life2 [Tool]>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ChatResponse>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn chat<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ChatResponse>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn chat<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ChatResponse>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sends a chat request to the provider with a sequence of messages. Read more
Source§fn chat_with_web_search<'life0, 'async_trait>(
&'life0 self,
_input: String,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ChatResponse>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn chat_with_web_search<'life0, 'async_trait>(
&'life0 self,
_input: String,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ChatResponse>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sends a chat with web search request to the provider Read more
Source§fn chat_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<String, LLMError>> + Send>>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn chat_stream<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<String, LLMError>> + Send>>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sends a streaming chat request to the provider with a sequence of messages. Read more
Source§fn chat_stream_struct<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<StreamResponse, LLMError>> + Send>>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn chat_stream_struct<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<StreamResponse, LLMError>> + Send>>, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sends a streaming chat request that returns structured response chunks. Read more
Source§fn memory_contents<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<Vec<ChatMessage>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn memory_contents<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<Vec<ChatMessage>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get current memory contents if provider supports memory
Source§fn summarize_history<'life0, 'life1, 'async_trait>(
&'life0 self,
msgs: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<String, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn summarize_history<'life0, 'life1, 'async_trait>(
&'life0 self,
msgs: &'life1 [ChatMessage],
) -> Pin<Box<dyn Future<Output = Result<String, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Summarizes a conversation history into a concise 2-3 sentence summary Read more
Source§impl CompletionProvider for AzureOpenAI
impl CompletionProvider for AzureOpenAI
Source§fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
_req: &'life1 CompletionRequest,
) -> Pin<Box<dyn Future<Output = Result<CompletionResponse, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
_req: &'life1 CompletionRequest,
) -> Pin<Box<dyn Future<Output = Result<CompletionResponse, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sends a completion request to OpenAI’s API.
Currently not implemented.
Source§impl EmbeddingProvider for AzureOpenAI
impl EmbeddingProvider for AzureOpenAI
Source§impl LLMProvider for AzureOpenAI
impl LLMProvider for AzureOpenAI
Source§impl ModelsProvider for AzureOpenAI
impl ModelsProvider for AzureOpenAI
Source§fn list_models<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: Option<&'life1 ModelListRequest>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ModelListResponse>, LLMError>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_models<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: Option<&'life1 ModelListRequest>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn ModelListResponse>, LLMError>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Asynchronously retrieves the list of available models ID’s from the provider. Read more
Source§impl SpeechToTextProvider for AzureOpenAI
impl SpeechToTextProvider for AzureOpenAI
Source§fn transcribe<'life0, 'async_trait>(
&'life0 self,
_audio: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<String, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn transcribe<'life0, 'async_trait>(
&'life0 self,
_audio: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<String, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Transcribe the given audio bytes into text Read more
fn transcribe_file<'life0, 'life1, 'async_trait>(
&'life0 self,
file_path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, LLMError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl TextToSpeechProvider for AzureOpenAI
impl TextToSpeechProvider for AzureOpenAI
Auto Trait Implementations§
impl Freeze for AzureOpenAI
impl !RefUnwindSafe for AzureOpenAI
impl Send for AzureOpenAI
impl Sync for AzureOpenAI
impl Unpin for AzureOpenAI
impl !UnwindSafe for AzureOpenAI
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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