gproxy_protocol/protocol/openai/
conversation.rs1use 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, gproxy_protocol_macros::WireBuilder)]
12#[non_exhaustive]
13pub struct CreateConversationRequestBody {
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub items: Option<Vec<ResponseItem>>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub metadata: Option<Metadata>,
18 #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
19 pub extra: Extra,
20}
21
22#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
23#[non_exhaustive]
24pub struct ConversationObject {
25 pub id: String,
26 pub created_at: u64,
27 pub metadata: Metadata,
28 pub object: ConversationObjectType,
29 #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
30 pub extra: Extra,
31}