Skip to main content

gproxy_protocol/protocol/openai/common/tools/
legacy.rs

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