gproxy_protocol/wire/openai/
memory.rs1use crate::Rest;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
8#[serde(rename_all = "snake_case")]
9#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
10#[derive(gproxy_protocol_macros::DeclaredFields)]
11#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12pub struct MemorySummarizeRequestBody {
13 pub model: String,
14 pub traces: Vec<RawMemory>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub reasoning: Option<Reasoning>,
17 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
18 pub rest: Rest,
19}
20pub type MemorySummarizeRequest = crate::WireRequest<MemorySummarizeRequestBody>;
21#[derive(
22 Debug, Clone, PartialEq, Eq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder,
23)]
24#[serde(rename_all = "snake_case")]
25#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
26#[derive(gproxy_protocol_macros::DeclaredFields)]
27#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
28pub struct RawMemory {
29 pub id: String,
30 pub metadata: RawMemoryMetadata,
31 pub items: Vec<serde_json::Value>,
32 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
33 pub rest: Rest,
34}
35#[derive(
36 Debug, Clone, PartialEq, Eq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder,
37)]
38#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
39#[derive(gproxy_protocol_macros::DeclaredFields)]
40#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
41pub struct RawMemoryMetadata {
42 pub source_path: String,
43 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
44 pub rest: Rest,
45}
46#[derive(
47 Debug, Clone, PartialEq, Eq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder,
48)]
49#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
50#[derive(gproxy_protocol_macros::DeclaredFields)]
51#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
52pub struct MemorySummarizeOutput {
53 #[serde(rename = "trace_summary", alias = "raw_memory")]
54 pub raw_memory: String,
55 pub memory_summary: String,
56 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
57 pub rest: Rest,
58}
59#[derive(
60 Debug, Clone, PartialEq, Eq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder,
61)]
62#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
63#[derive(gproxy_protocol_macros::DeclaredFields)]
64#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
65pub struct MemorySummarizeResponseBody {
66 pub output: Vec<MemorySummarizeOutput>,
67 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
68 pub rest: Rest,
69}
70pub type MemorySummarizeResponse = crate::WireResponse<MemorySummarizeResponseBody>;
71pub use super::codex::Reasoning;