mistralrs_core/tools/
request.rs1use std::collections::HashMap;
2
3use serde_json::Value;
4
5#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
6pub enum ToolType {
7 #[serde(rename = "function")]
8 Function,
9}
10
11#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
12pub enum ToolChoice {
13 #[serde(rename = "none")]
14 None,
16 #[serde(rename = "auto")]
17 Auto,
19 #[serde(untagged)]
20 Tool(Tool),
22}
23
24#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
25pub struct Function {
26 pub description: Option<String>,
27 pub name: String,
28 #[serde(alias = "arguments")]
29 pub parameters: Option<HashMap<String, Value>>,
30}
31
32#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
33pub struct Tool {
34 #[serde(rename = "type")]
35 pub tp: ToolType,
36 pub function: Function,
37}