pub struct CachedProvider<P> { /* private fields */ }Expand description
A cached LLM provider that wraps another provider with caching.
Implementations§
Source§impl<P> CachedProvider<P>
impl<P> CachedProvider<P>
Sourcepub fn with_default_cache(inner: P) -> Self
pub fn with_default_cache(inner: P) -> Self
Create with default cache config.
Sourcepub async fn cache_stats(&self) -> CacheStats
pub async fn cache_stats(&self) -> CacheStats
Get cache statistics.
Sourcepub async fn clear_cache(&self)
pub async fn clear_cache(&self)
Clear the cache.
Trait Implementations§
Source§impl<P: EmbeddingProvider> EmbeddingProvider for CachedProvider<P>
impl<P: EmbeddingProvider> EmbeddingProvider for CachedProvider<P>
Source§fn max_tokens(&self) -> usize
fn max_tokens(&self) -> usize
Get the maximum number of tokens per input.
Source§impl<P: LLMProvider> LLMProvider for CachedProvider<P>
impl<P: LLMProvider> LLMProvider for CachedProvider<P>
Source§fn max_context_length(&self) -> usize
fn max_context_length(&self) -> usize
Get the maximum context length for the model.
Source§fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
prompt: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<LLMResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
prompt: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<LLMResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Generate a completion for the given prompt.
Source§fn complete_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
prompt: &'life1 str,
options: &'life2 CompletionOptions,
) -> Pin<Box<dyn Future<Output = Result<LLMResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn complete_with_options<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
prompt: &'life1 str,
options: &'life2 CompletionOptions,
) -> Pin<Box<dyn Future<Output = Result<LLMResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Generate a completion with custom options.
Source§fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
options: Option<&'life2 CompletionOptions>,
) -> Pin<Box<dyn Future<Output = Result<LLMResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
options: Option<&'life2 CompletionOptions>,
) -> Pin<Box<dyn Future<Output = Result<LLMResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Generate a chat completion with messages.
Source§fn chat_with_tools<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
tools: &'life2 [ToolDefinition],
tool_choice: Option<ToolChoice>,
options: Option<&'life3 CompletionOptions>,
) -> 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 chat_with_tools<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
tools: &'life2 [ToolDefinition],
tool_choice: Option<ToolChoice>,
options: Option<&'life3 CompletionOptions>,
) -> 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,
Generate a chat completion with tool/function calling support. Read more
Source§fn stream<'life0, 'life1, 'async_trait>(
&'life0 self,
_prompt: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<BoxStream<'static, Result<String>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn stream<'life0, 'life1, 'async_trait>(
&'life0 self,
_prompt: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<BoxStream<'static, Result<String>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Generate a streaming completion.
Source§fn chat_with_tools_stream<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_messages: &'life1 [ChatMessage],
_tools: &'life2 [ToolDefinition],
_tool_choice: Option<ToolChoice>,
_options: Option<&'life3 CompletionOptions>,
) -> Pin<Box<dyn Future<Output = Result<BoxStream<'static, Result<StreamChunk>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn chat_with_tools_stream<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_messages: &'life1 [ChatMessage],
_tools: &'life2 [ToolDefinition],
_tool_choice: Option<ToolChoice>,
_options: Option<&'life3 CompletionOptions>,
) -> Pin<Box<dyn Future<Output = Result<BoxStream<'static, Result<StreamChunk>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Stream chat completion with tool calling support.
Returns a stream of events containing content chunks, tool call deltas, and finish reasons. Read more
Source§fn supports_streaming(&self) -> bool
fn supports_streaming(&self) -> bool
Check if the model supports streaming.
Source§fn supports_tool_streaming(&self) -> bool
fn supports_tool_streaming(&self) -> bool
Check if the provider supports streaming with tool calls.
Source§fn supports_json_mode(&self) -> bool
fn supports_json_mode(&self) -> bool
Check if the model supports JSON mode.
Source§fn supports_function_calling(&self) -> bool
fn supports_function_calling(&self) -> bool
Check if the model supports function/tool calling.
Auto Trait Implementations§
impl<P> Freeze for CachedProvider<P>where
P: Freeze,
impl<P> !RefUnwindSafe for CachedProvider<P>
impl<P> Send for CachedProvider<P>where
P: Send,
impl<P> Sync for CachedProvider<P>where
P: Sync,
impl<P> Unpin for CachedProvider<P>where
P: Unpin,
impl<P> UnsafeUnpin for CachedProvider<P>where
P: UnsafeUnpin,
impl<P> !UnwindSafe for CachedProvider<P>
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