gproxy_protocol/openai/compact_response/
response.rs1use http::StatusCode;
2use serde::{Deserialize, Serialize};
3
4use crate::openai::compact_response::types::{
5 CompactedResponseOutputItem, OpenAiApiErrorResponse, OpenAiResponseHeaders, ResponseUsage,
6};
7
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10pub struct ResponseBody {
11 pub id: String,
13 pub created_at: u64,
15 pub object: OpenAiCompactedResponseObject,
17 pub output: Vec<CompactedResponseOutputItem>,
19 pub usage: ResponseUsage,
21}
22
23#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
25pub enum OpenAiCompactedResponseObject {
26 #[serde(rename = "response.compaction")]
27 ResponseCompaction,
28}
29
30#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
32#[serde(untagged)]
33pub enum OpenAiCompactResponse {
34 Success {
35 #[serde(with = "crate::openai::types::status_code_serde")]
37 stats_code: StatusCode,
38 headers: OpenAiResponseHeaders,
40 body: ResponseBody,
42 },
43 Error {
44 #[serde(with = "crate::openai::types::status_code_serde")]
46 stats_code: StatusCode,
47 headers: OpenAiResponseHeaders,
49 body: OpenAiApiErrorResponse,
51 },
52}