Skip to main content

codei_llm/
tool.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct ToolDefinition {
6    pub name: String,
7    pub description: String,
8    pub parameters: Value,
9}
10
11impl ToolDefinition {
12    pub fn to_openai_tool(&self) -> Value {
13        serde_json::json!({
14            "type": "function",
15            "function": {
16                "name": self.name,
17                "description": self.description,
18                "parameters": self.parameters,
19            }
20        })
21    }
22
23    pub fn to_openai_function(&self) -> Value {
24        serde_json::json!({
25            "name": self.name,
26            "description": self.description,
27            "parameters": self.parameters,
28        })
29    }
30}