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)]
14#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15pub struct CreateConversationRequestBody {
16 #[serde(
17 default,
18 deserialize_with = "super::responses::input::present_nullable",
19 skip_serializing_if = "Option::is_none"
20 )]
21 pub items: Option<Option<Vec<InputItem>>>,
22 #[serde(
23 default,
24 deserialize_with = "super::responses::input::present_nullable",
25 skip_serializing_if = "Option::is_none"
26 )]
27 pub metadata: Option<Option<BTreeMap<String, String>>>,
28 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
29 pub rest: Rest,
30}
31pub type CreateConversationRequest = crate::WireRequest<CreateConversationRequestBody>;
32#[derive(
33 Debug, Clone, PartialEq, Eq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder,
34)]
35#[serde(rename_all = "snake_case")]
36#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
37#[derive(gproxy_protocol_macros::DeclaredFields)]
38#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
39pub struct ConversationResponseBody {
40 pub id: String,
41 pub created_at: i64,
42 pub metadata: serde_json::Value,
43 pub object: ConversationObject,
44 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
45 pub rest: Rest,
46}
47pub type CreateConversationResponse = crate::WireResponse<ConversationResponseBody>;
48#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
49#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
50#[derive(gproxy_protocol_macros::DeclaredFields)]
51#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
52pub enum ConversationObject {
53 #[serde(rename = "conversation")]
54 Conversation,
55}