summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-12-13 06:04:08 +0800
committerGitHub <noreply@github.com>2024-12-13 06:04:08 +0800
commit1a4a2fcea157ce4ca26817bc19d2d214b8bd50dd (patch)
tree21b9c6251f57441c2779c469334a0331fd3e113c
parent1d8892ac7b8eb00af6ae529435b790e6c53c6c7c (diff)
downloadaichat-1a4a2fcea157ce4ca26817bc19d2d214b8bd50dd.tar.gz
refactor: add more fields to JSON schema (#1052)
-rw-r--r--src/function.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/function.rs b/src/function.rs
index f98bf09..70c1d62 100644
--- a/src/function.rs
+++ b/src/function.rs
@@ -106,17 +106,21 @@ pub struct FunctionDeclaration {
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JsonSchema {
- #[serde(rename = "type")]
- pub type_value: String,
+ #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
+ pub type_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub properties: Option<IndexMap<String, JsonSchema>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub items: Option<Box<JsonSchema>>,
+ #[serde(rename = "anyOf", skip_serializing_if = "Option::is_none")]
+ pub any_of: Option<Vec<JsonSchema>>,
#[serde(rename = "enum", skip_serializing_if = "Option::is_none")]
pub enum_value: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
+ pub default: Option<Value>,
+ #[serde(skip_serializing_if = "Option::is_none")]
pub required: Option<Vec<String>>,
}