mirror of
https://github.com/mii443/openai-api-rs.git
synced 2025-08-22 15:15:34 +00:00
162 lines
4.7 KiB
Rust
162 lines
4.7 KiB
Rust
use super::thread::CreateThreadRequest;
|
|
use serde::{Deserialize, Serialize};
|
|
use serde_json::Value;
|
|
use std::collections::HashMap;
|
|
|
|
use super::types;
|
|
use crate::impl_builder_methods;
|
|
|
|
#[derive(Debug, Serialize, Clone)]
|
|
pub struct CreateRunRequest {
|
|
assistant_id: String,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub model: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub instructions: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub tools: Option<Vec<HashMap<String, String>>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub metadata: Option<HashMap<String, String>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub response_format: Option<Value>, // 1: json!("auto"), 2: json!({"type": "json_object"})
|
|
}
|
|
|
|
impl CreateRunRequest {
|
|
pub fn new(assistant_id: String) -> Self {
|
|
Self {
|
|
assistant_id,
|
|
model: None,
|
|
instructions: None,
|
|
tools: None,
|
|
metadata: None,
|
|
response_format: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl_builder_methods!(
|
|
CreateRunRequest,
|
|
model: String,
|
|
instructions: String,
|
|
tools: Vec<HashMap<String, String>>,
|
|
metadata: HashMap<String, String>,
|
|
response_format: Value
|
|
);
|
|
|
|
#[derive(Debug, Serialize, Clone)]
|
|
pub struct ModifyRunRequest {
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub metadata: Option<HashMap<String, String>>,
|
|
}
|
|
|
|
impl ModifyRunRequest {
|
|
pub fn new() -> Self {
|
|
Self { metadata: None }
|
|
}
|
|
}
|
|
|
|
impl Default for ModifyRunRequest {
|
|
fn default() -> Self {
|
|
Self::new()
|
|
}
|
|
}
|
|
|
|
impl_builder_methods!(
|
|
ModifyRunRequest,
|
|
metadata: HashMap<String, String>
|
|
);
|
|
|
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
|
pub struct LastError {
|
|
pub code: String,
|
|
pub message: String,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize, Serialize)]
|
|
pub struct RunObject {
|
|
pub id: String,
|
|
pub object: String,
|
|
pub created_at: i64,
|
|
pub thread_id: String,
|
|
pub assistant_id: String,
|
|
pub status: String,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub required_action: Option<HashMap<String, String>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub last_error: Option<LastError>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub expires_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub started_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub cancelled_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub failed_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub completed_at: Option<i64>,
|
|
pub model: String,
|
|
pub instructions: Option<String>,
|
|
pub tools: Vec<types::Tools>,
|
|
pub metadata: HashMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize, Serialize)]
|
|
pub struct ListRun {
|
|
pub object: String,
|
|
pub data: Vec<RunObject>,
|
|
pub first_id: String,
|
|
pub last_id: String,
|
|
pub has_more: bool,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Clone)]
|
|
pub struct CreateThreadAndRunRequest {
|
|
pub assistant_id: String,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub thread: Option<CreateThreadRequest>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub model: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub instructions: Option<String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub tools: Option<Vec<HashMap<String, String>>>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub metadata: Option<HashMap<String, String>>,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
|
pub struct RunStepObject {
|
|
pub id: String,
|
|
pub object: String,
|
|
pub created_at: i64,
|
|
pub assistant_id: String,
|
|
pub thread_id: String,
|
|
pub run_id: String,
|
|
#[serde(rename = "type")]
|
|
pub run_step_type: String,
|
|
pub status: String,
|
|
pub step_details: HashMap<String, String>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub last_error: Option<LastError>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub expires_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub started_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub cancelled_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub failed_at: Option<i64>,
|
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
pub completed_at: Option<i64>,
|
|
pub metadata: HashMap<String, String>,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
|
pub struct ListRunStep {
|
|
pub object: String,
|
|
pub data: Vec<RunStepObject>,
|
|
pub first_id: String,
|
|
pub last_id: String,
|
|
pub has_more: bool,
|
|
}
|