pub struct OpenAIProvider { /* private fields */ }Expand description
OpenAI LLM Provider
支持 OpenAI API 及兼容服务
Implementations§
Source§impl OpenAIProvider
impl OpenAIProvider
Sourcepub fn new(api_key: impl Into<String>) -> OpenAIProvider
pub fn new(api_key: impl Into<String>) -> OpenAIProvider
使用 API Key 创建 Provider
Sourcepub fn from_env() -> OpenAIProvider
pub fn from_env() -> OpenAIProvider
从环境变量创建 Provider
Sourcepub fn with_config(config: OpenAIConfig) -> OpenAIProvider
pub fn with_config(config: OpenAIConfig) -> OpenAIProvider
使用配置创建 Provider
Sourcepub fn azure(
endpoint: impl Into<String>,
api_key: impl Into<String>,
deployment: impl Into<String>,
) -> OpenAIProvider
pub fn azure( endpoint: impl Into<String>, api_key: impl Into<String>, deployment: impl Into<String>, ) -> OpenAIProvider
创建 Azure OpenAI Provider
Sourcepub fn local(
base_url: impl Into<String>,
model: impl Into<String>,
) -> OpenAIProvider
pub fn local( base_url: impl Into<String>, model: impl Into<String>, ) -> OpenAIProvider
创建兼容 OpenAI API 的本地服务 Provider
Sourcepub fn ollama(model: impl Into<String>) -> OpenAIProvider
pub fn ollama(model: impl Into<String>) -> OpenAIProvider
创建 Ollama Provider
Sourcepub fn client(&self) -> &Client<OpenAIConfig>
pub fn client(&self) -> &Client<OpenAIConfig>
获取底层 async-openai 客户端
Sourcepub fn config(&self) -> &OpenAIConfig
pub fn config(&self) -> &OpenAIConfig
获取配置
Source§impl OpenAIProvider
impl OpenAIProvider
Sourcepub fn openai(api_key: impl Into<String>) -> OpenAIProvider
pub fn openai(api_key: impl Into<String>) -> OpenAIProvider
快速创建 OpenAI Provider
Sourcepub fn openai_compatible(
base_url: impl Into<String>,
api_key: impl Into<String>,
model: impl Into<String>,
) -> OpenAIProvider
pub fn openai_compatible( base_url: impl Into<String>, api_key: impl Into<String>, model: impl Into<String>, ) -> OpenAIProvider
快速创建兼容 OpenAI API 的本地 Provider
Trait Implementations§
Source§impl LLMProvider for OpenAIProvider
impl LLMProvider for OpenAIProvider
Source§fn default_model(&self) -> &str
fn default_model(&self) -> &str
获取默认模型
Source§fn supported_models(&self) -> Vec<&str>
fn supported_models(&self) -> Vec<&str>
获取支持的模型列表
Source§fn supports_streaming(&self) -> bool
fn supports_streaming(&self) -> bool
检查是否支持流式输出
Source§fn supports_tools(&self) -> bool
fn supports_tools(&self) -> bool
检查是否支持工具调用
Source§fn supports_vision(&self) -> bool
fn supports_vision(&self) -> bool
检查是否支持视觉(图片输入)
Source§fn supports_embedding(&self) -> bool
fn supports_embedding(&self) -> bool
检查是否支持 embedding
Source§fn chat<'life0, 'async_trait>(
&'life0 self,
request: ChatCompletionRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatCompletionResponse, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
fn chat<'life0, 'async_trait>(
&'life0 self,
request: ChatCompletionRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatCompletionResponse, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
发送 Chat Completion 请求
Source§fn chat_stream<'life0, 'async_trait>(
&'life0 self,
request: ChatCompletionRequest,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<ChatCompletionChunk, LLMError>> + Send>>, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
fn chat_stream<'life0, 'async_trait>(
&'life0 self,
request: ChatCompletionRequest,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<ChatCompletionChunk, LLMError>> + Send>>, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
发送 Chat Completion 流式请求
Source§fn embedding<'life0, 'async_trait>(
&'life0 self,
request: EmbeddingRequest,
) -> Pin<Box<dyn Future<Output = Result<EmbeddingResponse, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
fn embedding<'life0, 'async_trait>(
&'life0 self,
request: EmbeddingRequest,
) -> Pin<Box<dyn Future<Output = Result<EmbeddingResponse, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
发送 Embedding 请求
Source§fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIProvider: 'async_trait,
健康检查
Source§fn get_model_info<'life0, 'life1, 'async_trait>(
&'life0 self,
model: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ModelInfo, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
OpenAIProvider: 'async_trait,
fn get_model_info<'life0, 'life1, 'async_trait>(
&'life0 self,
model: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ModelInfo, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
OpenAIProvider: 'async_trait,
获取模型信息
Source§fn supports_model(&self, model: &str) -> bool
fn supports_model(&self, model: &str) -> bool
检查是否支持某个模型
Auto Trait Implementations§
impl Freeze for OpenAIProvider
impl !RefUnwindSafe for OpenAIProvider
impl Send for OpenAIProvider
impl Sync for OpenAIProvider
impl Unpin for OpenAIProvider
impl UnsafeUnpin for OpenAIProvider
impl !UnwindSafe for OpenAIProvider
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 moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage