pub struct ZhipuClient(/* private fields */);Expand description
Zhipu AI (GLM) client
Implementations§
Source§impl ZhipuClient
impl ZhipuClient
pub fn new(api_key: String, model: String) -> Self
pub fn with_temperature(self, temperature: f32) -> Self
pub fn with_max_tokens(self, max_tokens: usize) -> Self
pub fn with_base_url(self, base_url: String) -> Self
pub fn with_retry_config(self, retry_config: RetryConfig) -> Self
Trait Implementations§
Source§impl LlmClient for ZhipuClient
impl LlmClient for ZhipuClient
Source§fn complete<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
) -> Pin<Box<dyn Future<Output = Result<LlmResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn complete<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
) -> Pin<Box<dyn Future<Output = Result<LlmResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Complete a conversation (non-streaming)
Source§fn complete_streaming<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
cancel_token: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<Receiver<StreamEvent>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn complete_streaming<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
cancel_token: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<Receiver<StreamEvent>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Complete a conversation with streaming
Returns a receiver for streaming events.
The cancel_token is checked during the HTTP request; if cancelled, the request is aborted.
Source§fn native_structured_support(&self) -> NativeStructuredSupport
fn native_structured_support(&self) -> NativeStructuredSupport
Report the strongest provider-native structured-output enforcement this
client supports. Used by
structured to decide whether to force a
tool call, request a native response_format, or fall back to
prompt-and-parse. Defaults to no native support.Source§fn complete_structured<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
directive: &'life4 StructuredDirective,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn complete_structured<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
directive: &'life4 StructuredDirective,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Complete a conversation while honoring a structured-output directive
(forced
tool_choice and/or native response_format). Read moreSource§fn complete_streaming_structured<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
directive: &'life4 StructuredDirective,
cancel_token: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<Receiver<StreamEvent>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn complete_streaming_structured<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
messages: &'life1 [Message],
system: Option<&'life2 str>,
tools: &'life3 [ToolDefinition],
directive: &'life4 StructuredDirective,
cancel_token: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<Receiver<StreamEvent>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Streaming counterpart of
LlmClient::complete_structured. Defaults to
LlmClient::complete_streaming, ignoring the directive.Auto Trait Implementations§
impl !RefUnwindSafe for ZhipuClient
impl !UnwindSafe for ZhipuClient
impl Freeze for ZhipuClient
impl Send for ZhipuClient
impl Sync for ZhipuClient
impl Unpin for ZhipuClient
impl UnsafeUnpin for ZhipuClient
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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