gproxy_protocol/wire/openai/
conversation.rs1use super::responses::input::InputItem;
4use crate::Rest;
5use serde::{Deserialize, Serialize};
6use std::collections::BTreeMap;
7
8#[derive(
9 Debug, Clone, PartialEq, Eq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder,
10)]
11#[serde(rename_all = "snake_case")]
12#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
13#[derive(gproxy_protocol_macros::DeclaredFields)]
14pub struct CreateConversationRequestBody {
15 #[serde(
16 default,
17 deserialize_with = "super::responses::input::present_nullable",
18 skip_serializing_if = "Option::is_none"
19 )]
20 pub items: Option<Option<Vec<InputItem>>>,
21 #[serde(
22 default,
23 deserialize_with = "super::responses::input::present_nullable",
24 skip_serializing_if = "Option::is_none"
25 )]
26 pub metadata: Option<Option<BTreeMap<String, String>>>,
27 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
28 pub rest: Rest,
29}
30pub type CreateConversationRequest = crate::WireRequest<CreateConversationRequestBody>;
31#[derive(
32 Debug, Clone, PartialEq, Eq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder,
33)]
34#[serde(rename_all = "snake_case")]
35#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
36#[derive(gproxy_protocol_macros::DeclaredFields)]
37pub struct ConversationResponseBody {
38 pub id: String,
39 pub created_at: i64,
40 pub metadata: serde_json::Value,
41 pub object: ConversationObject,
42 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
43 pub rest: Rest,
44}
45pub type CreateConversationResponse = crate::WireResponse<ConversationResponseBody>;
46#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
47#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
48#[derive(gproxy_protocol_macros::DeclaredFields)]
49pub enum ConversationObject {
50 #[serde(rename = "conversation")]
51 Conversation,
52}