alith_interface/requests/completion/
tool.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Deserialize, Serialize)]
4pub struct ToolDefinition {
5 pub name: String,
6 pub description: String,
7 pub parameters: serde_json::Value,
8}
9
10#[derive(Clone, Debug, Deserialize, Serialize, Default, PartialEq)]
11#[serde(tag = "type", rename_all = "snake_case")]
12pub enum ToolChoice {
13 #[default]
14 Auto,
15 Any,
16 Tool {
17 name: String,
18 },
19}
20
21#[derive(Clone, Debug, Deserialize, Serialize, Default, PartialEq)]
22pub struct ToolCall {
23 pub id: String,
24 pub r#type: String,
25 pub function: Function,
26}
27
28#[derive(Clone, Debug, Deserialize, Serialize, Default, PartialEq)]
29pub struct Function {
30 pub name: String,
31 pub arguments: String,
32}