Skip to main content

objectiveai_sdk/vector/completions/cache/
request.rs

1use crate::agent;
2use objectiveai_sdk_macros::schema_override;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6/// Request body for retrieving completion votes by vector completion ID.
7#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
8#[schemars(rename = "vector.completions.cache.GetCompletionVotesRequest")]
9pub struct GetCompletionVotesRequest {
10    /// The vector completion ID.
11    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(
27        generator: &mut schemars::SchemaGenerator,
28    ) -> schemars::Schema {
29        CacheVoteRequestOwned::json_schema(generator)
30    }
31}
32
33impl<'de> serde::de::Deserialize<'de> for CacheVoteRequest<'static> {
34    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
35    where
36        D: serde::de::Deserializer<'de>,
37    {
38        let owned = CacheVoteRequestOwned::deserialize(deserializer)?;
39        Ok(CacheVoteRequest::Owned(owned))
40    }
41}
42
43#[schema_override(Ref)]
44#[derive(Debug, Clone, Serialize)]
45pub struct CacheVoteRequestRef<'a> {
46    pub agent: &'a agent::InlineAgentBaseWithFallbacksOrRemote,
47    pub messages: &'a [agent::completions::message::Message],
48    pub responses: &'a [agent::completions::message::RichContent],
49}
50
51#[schema_override(Owned)]
52#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
53#[schemars(rename = "vector.completions.cache.CacheVoteRequest")]
54pub struct CacheVoteRequestOwned {
55    pub agent: agent::InlineAgentBaseWithFallbacksOrRemote,
56    pub messages: Vec<agent::completions::message::Message>,
57    pub responses: Vec<agent::completions::message::RichContent>,
58}