Skip to main content

gproxy_protocol/protocol/openai/
conversation.rs

1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::common::*;
6use super::generate_content::ResponseItem;
7
8pub type CreateConversationWireModel =
9    OpenAiWireModel<CreateConversationRequestBody, ConversationObject>;
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12pub struct CreateConversationRequestBody {
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub items: Option<Vec<ResponseItem>>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub metadata: Option<Metadata>,
17    #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
18    pub extra: Extra,
19}
20
21#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
22pub struct ConversationObject {
23    pub id: String,
24    pub created_at: u64,
25    pub metadata: Metadata,
26    pub object: ConversationObjectType,
27    #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
28    pub extra: Extra,
29}