gproxy_protocol/openai/
conversation.rs1use serde::{Deserialize, Serialize};
2
3use super::common::{ConversationObjectType, Metadata, Rest};
4use super::generate_content::ResponseItem;
5
6#[derive(
7 Debug, Clone, PartialEq, Serialize, Deserialize, Default, gproxy_protocol_macros::WireBuilder,
8)]
9#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
10pub struct CreateConversationRequest {
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub items: Option<Vec<ResponseItem>>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub metadata: Option<Metadata>,
15 #[serde(default, flatten)]
16 pub rest: Rest,
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
20#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
21pub struct Conversation {
22 pub id: String,
23 pub created_at: u64,
24 pub metadata: Metadata,
25 pub object: ConversationObjectType,
26 #[serde(default, flatten)]
27 pub rest: Rest,
28}
29
30pub type CreateConversationRequestBody = CreateConversationRequest;
31pub type ConversationObject = Conversation;
32pub type CreateConversationWireModel =
33 super::common::OpenAiWireModel<CreateConversationRequest, Conversation>;