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, 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}