Skip to main content

linger_openai_sdk/
models.rs

1use crate::RequestId;
2use serde::{Deserialize, Serialize};
3
4/// EN: Model object returned by the Models API.
5/// 中文:Models API 返回的模型对象。
6#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
7#[non_exhaustive]
8pub struct Model {
9    /// EN: Model id.
10    /// 中文:模型 ID。
11    pub id: String,
12    /// EN: API object type.
13    /// 中文:API 对象类型。
14    pub object: String,
15    /// EN: Unix timestamp for model creation.
16    /// 中文:模型创建时间的 Unix 时间戳。
17    pub created: u64,
18    /// EN: Organization or owner of the model.
19    /// 中文:模型所属组织或所有者。
20    pub owned_by: String,
21    /// EN: OpenAI request id from response headers.
22    /// 中文:响应头中的 OpenAI 请求 ID。
23    #[serde(skip)]
24    request_id: Option<RequestId>,
25}
26
27impl Model {
28    pub(crate) fn with_request_id(mut self, request_id: Option<RequestId>) -> Self {
29        self.request_id = request_id;
30        self
31    }
32
33    /// EN: Returns the OpenAI request id, when present.
34    /// 中文:返回 OpenAI 请求 ID,如存在。
35    pub fn request_id(&self) -> Option<&RequestId> {
36        self.request_id.as_ref()
37    }
38}
39
40/// EN: Deletion result returned by the Models API.
41/// 中文:Models API 返回的删除结果。
42#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
43#[non_exhaustive]
44pub struct ModelDeletion {
45    /// EN: Deleted model id.
46    /// 中文:已删除的模型 ID。
47    pub id: String,
48    /// EN: API object type.
49    /// 中文:API 对象类型。
50    pub object: String,
51    /// EN: Whether the model was deleted.
52    /// 中文:模型是否已删除。
53    pub deleted: bool,
54    /// EN: OpenAI request id from response headers.
55    /// 中文:响应头中的 OpenAI 请求 ID。
56    #[serde(skip)]
57    request_id: Option<RequestId>,
58}
59
60impl ModelDeletion {
61    pub(crate) fn with_request_id(mut self, request_id: Option<RequestId>) -> Self {
62        self.request_id = request_id;
63        self
64    }
65
66    /// EN: Returns the OpenAI request id, when present.
67    /// 中文:返回 OpenAI 请求 ID,如存在。
68    pub fn request_id(&self) -> Option<&RequestId> {
69        self.request_id.as_ref()
70    }
71}
72
73/// EN: List response returned by `GET /v1/models`.
74/// 中文:`GET /v1/models` 返回的列表响应。
75#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
76#[non_exhaustive]
77pub struct ModelsPage {
78    /// EN: API list object type.
79    /// 中文:API 列表对象类型。
80    pub object: String,
81    /// EN: Model objects in the list.
82    /// 中文:列表中的模型对象。
83    #[serde(default)]
84    pub data: Vec<Model>,
85    /// EN: OpenAI request id from response headers.
86    /// 中文:响应头中的 OpenAI 请求 ID。
87    #[serde(skip)]
88    request_id: Option<RequestId>,
89}
90
91impl ModelsPage {
92    pub(crate) fn with_request_id(mut self, request_id: Option<RequestId>) -> Self {
93        self.request_id = request_id;
94        self
95    }
96
97    /// EN: Returns the OpenAI request id, when present.
98    /// 中文:返回 OpenAI 请求 ID,如存在。
99    pub fn request_id(&self) -> Option<&RequestId> {
100        self.request_id.as_ref()
101    }
102}