Skip to main content

gproxy_protocol/openai/common/tools/choices/
allowed.rs

1use serde::{Deserialize, Serialize};
2
3use crate::openai::common::Rest;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6#[serde(tag = "type")]
7#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
8pub enum ResponseAllowedTool {
9    #[serde(rename = "function")]
10    Function {
11        name: String,
12        #[serde(default, flatten)]
13        rest: Rest,
14    },
15    #[serde(rename = "custom")]
16    Custom {
17        name: String,
18        #[serde(default, flatten)]
19        rest: Rest,
20    },
21    #[serde(rename = "mcp")]
22    Mcp {
23        server_label: String,
24        #[serde(skip_serializing_if = "Option::is_none")]
25        name: Option<String>,
26        #[serde(default, flatten)]
27        rest: Rest,
28    },
29    #[serde(rename = "file_search")]
30    FileSearch {
31        #[serde(default, flatten)]
32        rest: Rest,
33    },
34    #[serde(rename = "web_search_preview")]
35    WebSearchPreview {
36        #[serde(default, flatten)]
37        rest: Rest,
38    },
39    #[serde(rename = "computer")]
40    Computer {
41        #[serde(default, flatten)]
42        rest: Rest,
43    },
44    #[serde(rename = "computer_use_preview")]
45    ComputerUsePreview {
46        #[serde(default, flatten)]
47        rest: Rest,
48    },
49    #[serde(rename = "computer_use")]
50    ComputerUse {
51        #[serde(default, flatten)]
52        rest: Rest,
53    },
54    #[serde(rename = "web_search_preview_2025_03_11")]
55    WebSearchPreview20250311 {
56        #[serde(default, flatten)]
57        rest: Rest,
58    },
59    #[serde(rename = "image_generation")]
60    ImageGeneration {
61        #[serde(default, flatten)]
62        rest: Rest,
63    },
64    #[serde(rename = "code_interpreter")]
65    CodeInterpreter {
66        #[serde(default, flatten)]
67        rest: Rest,
68    },
69    #[serde(rename = "local_shell")]
70    LocalShell {
71        #[serde(default, flatten)]
72        rest: Rest,
73    },
74    #[serde(rename = "shell")]
75    Shell {
76        #[serde(default, flatten)]
77        rest: Rest,
78    },
79    #[serde(rename = "apply_patch")]
80    ApplyPatch {
81        #[serde(default, flatten)]
82        rest: Rest,
83    },
84}