pub struct FunctionModel { /* private fields */ }Expand description
Deterministic model backed by a caller-provided function.
Implementations§
Source§impl FunctionModel
impl FunctionModel
Sourcepub fn new<F>(function: F) -> Selfwhere
F: Send + Sync + 'static + Fn(Vec<ModelMessage>, Option<ModelSettings>, FunctionModelInfo) -> Result<ModelResponse, ModelError>,
pub fn new<F>(function: F) -> Selfwhere
F: Send + Sync + 'static + Fn(Vec<ModelMessage>, Option<ModelSettings>, FunctionModelInfo) -> Result<ModelResponse, ModelError>,
Create a function-backed model.
Sourcepub fn streaming<F>(function: F) -> Selfwhere
F: Send + Sync + 'static + Fn(Vec<ModelMessage>, Option<ModelSettings>, FunctionModelInfo) -> Result<Vec<ModelResponseStreamEvent>, ModelError>,
pub fn streaming<F>(function: F) -> Selfwhere
F: Send + Sync + 'static + Fn(Vec<ModelMessage>, Option<ModelSettings>, FunctionModelInfo) -> Result<Vec<ModelResponseStreamEvent>, ModelError>,
Create a function-backed streaming model.
Sourcepub fn with_model_name(self, model_name: impl Into<String>) -> Self
pub fn with_model_name(self, model_name: impl Into<String>) -> Self
Set model name.
Sourcepub fn with_profile(self, profile: ModelProfile) -> Self
pub fn with_profile(self, profile: ModelProfile) -> Self
Set model profile.
Sourcepub fn with_default_settings(self, settings: ModelSettings) -> Self
pub fn with_default_settings(self, settings: ModelSettings) -> Self
Set model default settings.
Sourcepub fn captured_messages(&self) -> Vec<Vec<ModelMessage>>
pub fn captured_messages(&self) -> Vec<Vec<ModelMessage>>
Return captured request histories.
Sourcepub fn captured_params(&self) -> Vec<ModelRequestParameters>
pub fn captured_params(&self) -> Vec<ModelRequestParameters>
Return captured request parameters.
Trait Implementations§
Source§impl Clone for FunctionModel
impl Clone for FunctionModel
Source§fn clone(&self) -> FunctionModel
fn clone(&self) -> FunctionModel
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ModelAdapter for FunctionModel
impl ModelAdapter for FunctionModel
Source§fn model_name(&self) -> &str
fn model_name(&self) -> &str
Provider model name.
Source§fn provider_name(&self) -> Option<&str>
fn provider_name(&self) -> Option<&str>
Provider name.
Source§fn profile(&self) -> &ModelProfile
fn profile(&self) -> &ModelProfile
Model capability profile.
Source§fn default_settings(&self) -> Option<&ModelSettings>
fn default_settings(&self) -> Option<&ModelSettings>
Default generation settings.
Source§fn request<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform a complete model request.
Source§fn request_stream<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<ModelResponseStreamEvent>, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_stream<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<Vec<ModelResponseStreamEvent>, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream a model request as canonical response part deltas.
Source§fn request_stream_incremental<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponseEventStream, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_stream_incremental<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponseEventStream, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream a model request and yield canonical events as they arrive.
Source§fn start_run_session(&self) -> Box<dyn ModelRunSession + '_>
fn start_run_session(&self) -> Box<dyn ModelRunSession + '_>
Create a run-scoped session for agent loops that may issue multiple model requests.
Source§fn request_stream_final<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_stream_final<'life0, 'async_trait>(
&'life0 self,
messages: Vec<ModelMessage>,
settings: Option<ModelSettings>,
params: ModelRequestParameters,
context: ModelRequestContext,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream a model request and return the assembled final response.
Source§fn count_tokens<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_messages: &'life1 [ModelMessage],
_settings: Option<&'life2 ModelSettings>,
_params: &'life3 ModelRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Usage, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn count_tokens<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_messages: &'life1 [ModelMessage],
_settings: Option<&'life2 ModelSettings>,
_params: &'life3 ModelRequestParameters,
) -> Pin<Box<dyn Future<Output = Result<Usage, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Count tokens for a request where provider support exists.
Auto Trait Implementations§
impl !RefUnwindSafe for FunctionModel
impl !UnwindSafe for FunctionModel
impl Freeze for FunctionModel
impl Send for FunctionModel
impl Sync for FunctionModel
impl Unpin for FunctionModel
impl UnsafeUnpin for FunctionModel
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