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)]
7#[non_exhaustive]
8pub enum LegacyFunctionCallChoice {
9 Mode(LegacyFunctionCallMode),
10 Named(LegacyFunctionCallOption),
11}
12
13#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
14#[non_exhaustive]
15pub enum LegacyFunctionCallMode {
16 #[serde(rename = "none")]
17 None,
18 #[serde(rename = "auto")]
19 Auto,
20}
21
22#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
23#[non_exhaustive]
24pub struct LegacyFunctionCallOption {
25 pub name: String,
26 #[serde(
27 default,
28 flatten,
29 skip_serializing_if = "std::collections::BTreeMap::is_empty"
30 )]
31 pub extra: Extra,
32}
33
34#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
35#[non_exhaustive]
36pub struct LegacyFunctionDefinition {
37 pub name: String,
38 #[serde(skip_serializing_if = "Option::is_none")]
39 pub description: Option<String>,
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub parameters: Option<JsonSchema>,
42 #[serde(
43 default,
44 flatten,
45 skip_serializing_if = "std::collections::BTreeMap::is_empty"
46 )]
47 pub extra: Extra,
48}