gproxy_protocol/openai/generate_content/responses/items/content/
input.rs1use 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}