alith_interface/requests/completion/
tool.rs

1use 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}