objectiveai_sdk/vector/completions/cache/
request.rs1use crate::agent;
2use objectiveai_sdk_macros::schema_override;
3use serde::{Deserialize, Serialize};
4use schemars::JsonSchema;
5
6#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
8#[schemars(rename = "vector.completions.cache.GetCompletionVotesRequest")]
9pub struct GetCompletionVotesRequest {
10 pub id: String,
12}
13
14#[schema_override(RefOwnedEnum)]
15#[derive(Debug, Clone, Serialize)]
16#[serde(untagged)]
17pub enum CacheVoteRequest<'a> {
18 Ref(CacheVoteRequestRef<'a>),
19 Owned(CacheVoteRequestOwned),
20}
21
22impl schemars::JsonSchema for CacheVoteRequest<'static> {
23 fn schema_name() -> std::borrow::Cow<'static, str> {
24 CacheVoteRequestOwned::schema_name()
25 }
26 fn json_schema(generator: &mut schemars::SchemaGenerator) -> schemars::Schema {
27 CacheVoteRequestOwned::json_schema(generator)
28 }
29}
30
31impl<'de> serde::de::Deserialize<'de> for CacheVoteRequest<'static> {
32 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
33 where
34 D: serde::de::Deserializer<'de>,
35 {
36 let owned = CacheVoteRequestOwned::deserialize(deserializer)?;
37 Ok(CacheVoteRequest::Owned(owned))
38 }
39}
40
41#[schema_override(Ref)]
42#[derive(Debug, Clone, Serialize)]
43pub struct CacheVoteRequestRef<'a> {
44 pub agent: &'a agent::InlineAgentBaseWithFallbacksOrRemote,
45 pub messages: &'a [agent::completions::message::Message],
46 pub responses: &'a [agent::completions::message::RichContent],
47}
48
49#[schema_override(Owned)]
50#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
51#[schemars(rename = "vector.completions.cache.CacheVoteRequest")]
52pub struct CacheVoteRequestOwned {
53 pub agent: agent::InlineAgentBaseWithFallbacksOrRemote,
54 pub messages: Vec<agent::completions::message::Message>,
55 pub responses: Vec<agent::completions::message::RichContent>,
56}