Files
baibot-withmcp/src/agent/provider/entity/image.rs

64 lines
1.4 KiB
Rust
Raw Normal View History

use mxlink::mime;
#[derive(Default)]
pub struct ImageGenerationParams {
pub smallest_size_possible: bool,
pub cheaper_model_switching_allowed: bool,
pub cheaper_quality_switching_allowed: bool,
}
impl ImageGenerationParams {
pub fn with_smallest_size_possible(mut self, value: bool) -> Self {
self.smallest_size_possible = value;
self
}
pub fn with_cheaper_model_switching_allowed(mut self, value: bool) -> Self {
self.cheaper_model_switching_allowed = value;
self
}
pub fn with_cheaper_quality_switching_allowed(mut self, value: bool) -> Self {
self.cheaper_quality_switching_allowed = value;
self
}
}
pub struct ImageGenerationResult {
pub bytes: Vec<u8>,
pub mime_type: mime::Mime,
pub revised_prompt: Option<String>,
}
#[derive(Default)]
2025-05-10 11:47:50 +03:00
pub struct ImageEditParams {}
pub struct ImageEditResult {
pub bytes: Vec<u8>,
pub mime_type: mime::Mime,
}
pub struct ImageSource {
pub filename: String,
pub bytes: Vec<u8>,
pub mime_type: mime::Mime,
}
impl ImageSource {
pub fn new(filename: String, bytes: Vec<u8>, mime_type: mime::Mime) -> Self {
2025-05-10 11:47:50 +03:00
Self {
filename,
bytes,
mime_type,
}
}
}
impl From<ImageSource> for async_openai::types::images::ImageInput {
fn from(value: ImageSource) -> Self {
async_openai::types::images::ImageInput::from_vec_u8(value.filename, value.bytes)
}
}