Skip to main content

gproxy_protocol/openai/
conversation.rs

1use 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>;