Skip to main content

gproxy_protocol/openai/generate_content/responses/items/content/
input.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use super::{
5    ResponseInputAudio, ResponseInputFile, ResponseInputImage, ResponseInputText,
6    ResponseMessageOutputContentPart,
7};
8
9#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10#[serde(untagged)]
11#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
12pub enum ResponseEasyInputContent {
13    Text(String),
14    Parts(Vec<ResponseInputContentPart>),
15    OutputParts(Vec<ResponseMessageOutputContentPart>),
16    Unknown(Value),
17}
18
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20#[serde(tag = "type")]
21#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
22pub enum ResponseInputContentPart {
23    #[serde(rename = "input_text")]
24    InputText(ResponseInputText),
25    #[serde(rename = "input_image")]
26    InputImage(ResponseInputImage),
27    #[serde(rename = "input_file")]
28    InputFile(ResponseInputFile),
29    #[serde(rename = "input_audio")]
30    InputAudio(ResponseInputAudio),
31}
32
33#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
34#[serde(tag = "type")]
35#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
36pub enum PromptVariableInputContentPart {
37    #[serde(rename = "input_text")]
38    InputText(ResponseInputText),
39    #[serde(rename = "input_image")]
40    InputImage(ResponseInputImage),
41    #[serde(rename = "input_file")]
42    InputFile(ResponseInputFile),
43}