gproxy_protocol/protocol/openai/common/tools/
legacy.rs1use serde::{Deserialize, Serialize};
2
3use super::super::{Extra, JsonSchema};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6#[serde(untagged)]
7pub enum LegacyFunctionCallChoice {
8 Mode(LegacyFunctionCallMode),
9 Named(LegacyFunctionCallOption),
10}
11
12#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
13pub enum LegacyFunctionCallMode {
14 #[serde(rename = "none")]
15 None,
16 #[serde(rename = "auto")]
17 Auto,
18}
19
20#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
21pub struct LegacyFunctionCallOption {
22 pub name: String,
23 #[serde(
24 default,
25 flatten,
26 skip_serializing_if = "std::collections::BTreeMap::is_empty"
27 )]
28 pub extra: Extra,
29}
30
31#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
32pub struct LegacyFunctionDefinition {
33 pub name: String,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub description: Option<String>,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub parameters: Option<JsonSchema>,
38 #[serde(
39 default,
40 flatten,
41 skip_serializing_if = "std::collections::BTreeMap::is_empty"
42 )]
43 pub extra: Extra,
44}