Fix run object

This commit is contained in:
Dongri Jin
2024-11-20 08:44:58 +09:00
parent ec821434ac
commit 9acf04f816
3 changed files with 43 additions and 42 deletions

View File

@ -57,53 +57,13 @@ pub struct AssistantObject {
pub model: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub instructions: Option<String>,
pub tools: Vec<Tools>,
pub tools: Vec<types::Tools>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tool_resources: Option<ToolResource>,
pub metadata: Option<HashMap<String, String>>,
pub headers: Option<HashMap<String, String>>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
#[serde(tag = "type")]
#[serde(rename_all = "snake_case")]
pub enum Tools {
CodeInterpreter,
FileSearch(ToolsFileSearch),
Function(ToolsFunction),
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ToolsFileSearch {
#[serde(skip_serializing_if = "Option::is_none")]
pub file_search: Option<ToolsFileSearchObject>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ToolsFunction {
pub function: types::Function,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ToolsFileSearchObject {
pub max_num_results: Option<u8>,
pub ranking_options: Option<FileSearchRankingOptions>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct FileSearchRankingOptions {
pub ranker: Option<FileSearchRanker>,
pub score_threshold: Option<f32>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub enum FileSearchRanker {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default_2024_08_21")]
Default2024_08_21,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ToolResource {
#[serde(skip_serializing_if = "Option::is_none")]

View File

@ -3,6 +3,7 @@ use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;
use super::types;
use crate::impl_builder_methods;
#[derive(Debug, Serialize, Clone)]
@ -95,7 +96,7 @@ pub struct RunObject {
pub completed_at: Option<i64>,
pub model: String,
pub instructions: Option<String>,
pub tools: Vec<HashMap<String, String>>,
pub tools: Vec<types::Tools>,
pub metadata: HashMap<String, String>,
pub headers: Option<HashMap<String, String>>,
}

View File

@ -45,3 +45,43 @@ pub struct JSONSchemaDefine {
#[serde(skip_serializing_if = "Option::is_none")]
pub items: Option<Box<JSONSchemaDefine>>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
#[serde(tag = "type")]
#[serde(rename_all = "snake_case")]
pub enum Tools {
CodeInterpreter,
FileSearch(ToolsFileSearch),
Function(ToolsFunction),
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ToolsFileSearch {
#[serde(skip_serializing_if = "Option::is_none")]
pub file_search: Option<ToolsFileSearchObject>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ToolsFunction {
pub function: Function,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct ToolsFileSearchObject {
pub max_num_results: Option<u8>,
pub ranking_options: Option<FileSearchRankingOptions>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub struct FileSearchRankingOptions {
pub ranker: Option<FileSearchRanker>,
pub score_threshold: Option<f32>,
}
#[derive(Debug, Deserialize, Serialize, Clone)]
pub enum FileSearchRanker {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "default_2024_08_21")]
Default2024_08_21,
}