async_openai/types/responses/
api.rs

1use crate::error::OpenAIError;
2use derive_builder::Builder;
3use serde::{Deserialize, Serialize};
4
5use super::conversation::{IncludeParam, ListOrder};
6
7/// Query parameters for listing conversation items.
8#[derive(Clone, Serialize, Default, Debug, Deserialize, Builder, PartialEq)]
9#[builder(name = "ListConversationItemsQueryArgs")]
10#[builder(pattern = "mutable")]
11#[builder(setter(into, strip_option), default)]
12#[builder(derive(Debug))]
13#[builder(build_fn(error = "OpenAIError"))]
14pub struct ListConversationItemsQuery {
15    /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub limit: Option<u32>,
18    /// The order to return the input items in. Default is `desc`.
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub order: Option<ListOrder>,
21    /// An item ID to list items after, used in pagination.
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub after: Option<String>,
24    /// Specify additional output data to include in the model response.
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub include: Option<Vec<IncludeParam>>,
27}
28
29/// Sort order for listing input items.
30#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
31#[serde(rename_all = "lowercase")]
32pub enum ListInputItemsOrder {
33    /// Ascending order
34    Asc,
35    /// Descending order
36    Desc,
37}
38
39/// Query parameters for getting a response.
40#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
41#[builder(name = "GetResponseQueryArgs")]
42#[builder(pattern = "mutable")]
43#[builder(setter(into, strip_option), default)]
44#[builder(derive(Debug))]
45#[builder(build_fn(error = "OpenAIError"))]
46pub struct GetResponseQuery {
47    /// Additional fields to include in the response.
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub include: Option<Vec<String>>,
50    /// If set to true, the model response data will be streamed to the client as it is generated using server-sent events.
51    #[serde(skip_serializing_if = "Option::is_none")]
52    pub stream: Option<bool>,
53    /// The sequence number of the event after which to start streaming.
54    #[serde(skip_serializing_if = "Option::is_none")]
55    pub starting_after: Option<u32>,
56    /// When true, stream obfuscation will be enabled.
57    #[serde(skip_serializing_if = "Option::is_none")]
58    pub include_obfuscation: Option<bool>,
59}
60
61/// Query parameters for listing input items.
62#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
63#[builder(name = "ListInputItemsQueryArgs")]
64#[builder(pattern = "mutable")]
65#[builder(setter(into, strip_option), default)]
66#[builder(derive(Debug))]
67#[builder(build_fn(error = "OpenAIError"))]
68pub struct ListInputItemsQuery {
69    /// A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub limit: Option<u32>,
72    /// The order to return the input items in. Default is `desc`.
73    #[serde(skip_serializing_if = "Option::is_none")]
74    pub order: Option<ListInputItemsOrder>,
75    /// An item ID to list items after, used in pagination.
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub after: Option<String>,
78    /// Additional fields to include in the response.
79    #[serde(skip_serializing_if = "Option::is_none")]
80    pub include: Option<Vec<String>>,
81}
82
83/// Query parameters for getting a conversation item.
84#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
85#[builder(name = "GetConversationItemQueryArgs")]
86#[builder(pattern = "mutable")]
87#[builder(setter(into, strip_option), default)]
88#[builder(derive(Debug))]
89#[builder(build_fn(error = "OpenAIError"))]
90pub struct GetConversationItemQuery {
91    /// Additional fields to include in the response.
92    #[serde(skip_serializing_if = "Option::is_none")]
93    pub include: Option<Vec<IncludeParam>>,
94}
95
96/// Query parameters for creating conversation items.
97#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
98#[builder(name = "CreateConversationItemsQueryArgs")]
99#[builder(pattern = "mutable")]
100#[builder(setter(into, strip_option), default)]
101#[builder(derive(Debug))]
102#[builder(build_fn(error = "OpenAIError"))]
103pub struct CreateConversationItemsQuery {
104    /// Additional fields to include in the response.
105    #[serde(skip_serializing_if = "Option::is_none")]
106    pub include: Option<Vec<IncludeParam>>,
107}