pub struct Phind {
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 api_base_url: String,
/* private fields */
}Expand description
Represents a Phind LLM client with configuration options.
Fields§
§model: StringThe model identifier to use (e.g. “Phind-70B”)
max_tokens: Option<u32>Maximum number of tokens to generate
temperature: Option<f32>Temperature for controlling randomness (0.0-1.0)
system: Option<String>System prompt to prepend to conversations
timeout_seconds: Option<u64>Request timeout in seconds
top_p: Option<f32>Top-p sampling parameter
top_k: Option<u32>Top-k sampling parameter
api_base_url: StringBase URL for the Phind API
Implementations§
Trait Implementations§
Source§impl ChatProvider for Phind
Implementation of chat functionality for Phind.
impl ChatProvider for Phind
Implementation of chat functionality for Phind.
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
'life0: 'async_trait,
'life1: 'async_trait,
Phind: '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
'life0: 'async_trait,
'life1: 'async_trait,
Phind: 'async_trait,
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
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Phind: '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
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Phind: 'async_trait,
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
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: 'async_trait,
fn memory_contents<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<Vec<ChatMessage>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Summarizes a conversation history into a concise 2-3 sentence summary Read more
Source§impl CompletionProvider for Phind
Implementation of completion functionality for Phind.
impl CompletionProvider for Phind
Implementation of completion functionality for Phind.
Source§fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
_req: &'life1 CompletionRequest,
) -> Pin<Box<dyn Future<Output = Result<CompletionResponse, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Phind: '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
'life0: 'async_trait,
'life1: 'async_trait,
Phind: 'async_trait,
Sends a completion request to generate text. Read more
Source§impl EmbeddingProvider for Phind
Implementation of embedding functionality for Phind.
impl EmbeddingProvider for Phind
Implementation of embedding functionality for Phind.
Source§impl ModelsProvider for Phind
impl ModelsProvider for Phind
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
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Asynchronously retrieves the list of available models ID’s from the provider. Read more
Source§impl SpeechToTextProvider for Phind
impl SpeechToTextProvider for Phind
Source§fn transcribe<'life0, 'async_trait>(
&'life0 self,
_audio: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<String, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Phind: 'async_trait,
fn transcribe<'life0, 'async_trait>(
&'life0 self,
_audio: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<String, LLMError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Phind: '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
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Source§impl TextToSpeechProvider for Phind
Implementation of the LLMProvider trait for Phind.
impl TextToSpeechProvider for Phind
Implementation of the LLMProvider trait for Phind.
Auto Trait Implementations§
impl Freeze for Phind
impl !RefUnwindSafe for Phind
impl Send for Phind
impl Sync for Phind
impl Unpin for Phind
impl !UnwindSafe for Phind
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