pub struct ToolDef {
pub name: &'static str,
pub description: &'static str,
pub parameters_schema: Value,
pub service: ToolSvc,
}
Expand description
Definition of a tool: function spec (for OpenAI) + service implementation.
Fields§
§name: &'static str
§description: &'static str
§parameters_schema: Value
§service: ToolSvc
Implementations§
Source§impl ToolDef
impl ToolDef
Sourcepub fn from_handler(
name: &'static str,
description: &'static str,
parameters_schema: Value,
handler: Arc<dyn Fn(Value) -> BoxFuture<'static, Result<Value, BoxError>> + Send + Sync + 'static>,
) -> Self
pub fn from_handler( name: &'static str, description: &'static str, parameters_schema: Value, handler: Arc<dyn Fn(Value) -> BoxFuture<'static, Result<Value, BoxError>> + Send + Sync + 'static>, ) -> Self
Create a tool definition from a handler function that takes JSON args and returns JSON.
Sourcepub fn to_openai_tool(&self) -> ChatCompletionTool
pub fn to_openai_tool(&self) -> ChatCompletionTool
Convert this tool’s function signature into an OpenAI ChatCompletionTool spec.
Auto Trait Implementations§
impl Freeze for ToolDef
impl !RefUnwindSafe for ToolDef
impl Send for ToolDef
impl !Sync for ToolDef
impl Unpin for ToolDef
impl !UnwindSafe for ToolDef
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