async_openai/types/chat/
api.rs

1use crate::error::OpenAIError;
2use derive_builder::Builder;
3use serde::{Deserialize, Serialize};
4
5/// Sort order for listing chat completions.
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
7#[serde(rename_all = "lowercase")]
8pub enum ListChatCompletionsOrder {
9    /// Ascending order
10    Asc,
11    /// Descending order
12    Desc,
13}
14
15/// Query parameters for listing chat completions.
16#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
17#[builder(name = "ListChatCompletionsQueryArgs")]
18#[builder(pattern = "mutable")]
19#[builder(setter(into, strip_option), default)]
20#[builder(derive(Debug))]
21#[builder(build_fn(error = "OpenAIError"))]
22pub struct ListChatCompletionsQuery {
23    /// The model used to generate the Chat Completions.
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub model: Option<String>,
26    /// A list of metadata keys to filter the Chat Completions by.
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub metadata: Option<serde_json::Value>,
29    /// Identifier for the last chat completion from the previous pagination request.
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub after: Option<String>,
32    /// Number of Chat Completions to retrieve.
33    #[serde(skip_serializing_if = "Option::is_none")]
34    pub limit: Option<u32>,
35    /// Sort order for Chat Completions by timestamp. Use `asc` for ascending order or `desc` for descending order. Defaults to `asc`.
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub order: Option<ListChatCompletionsOrder>,
38}
39
40/// Sort order for listing chat completion messages.
41#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
42#[serde(rename_all = "lowercase")]
43pub enum GetChatCompletionMessagesOrder {
44    /// Ascending order
45    Asc,
46    /// Descending order
47    Desc,
48}
49
50/// Query parameters for getting chat completion messages.
51#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
52#[builder(name = "GetChatCompletionMessagesQueryArgs")]
53#[builder(pattern = "mutable")]
54#[builder(setter(into, strip_option), default)]
55#[builder(derive(Debug))]
56#[builder(build_fn(error = "OpenAIError"))]
57pub struct GetChatCompletionMessagesQuery {
58    /// Identifier for the last message from the previous pagination request.
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub after: Option<String>,
61    /// Number of messages to retrieve.
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub limit: Option<u32>,
64    /// Sort order for messages by timestamp. Use `asc` for ascending order or `desc` for descending order. Defaults to `asc`.
65    #[serde(skip_serializing_if = "Option::is_none")]
66    pub order: Option<GetChatCompletionMessagesOrder>,
67}