async_dashscope/operation/image2image/
param.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3use crate::oss_util;
4#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
5pub struct Image2imageParam {
6 #[builder(setter(into, strip_option))]
7 pub model: String,
8
9 pub input: Input,
10}
11
12impl Image2imageParam {
13 pub(crate) async fn upload_file_to_oss(
14 mut self,
15 api_key: &str,
16 ) -> Result<Self, crate::error::DashScopeError> {
17 let oss_url =
18 oss_util::upload_file_and_get_url(api_key, &self.model, &self.input.image_url).await?;
19
20 self.input.image_url = oss_url;
21
22 Ok(self)
23 }
24}
25
26#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
27pub struct Input {
28 #[builder(setter(into))]
34 pub image_url: String,
35 #[builder(setter(into))]
41 pub source_lang: String,
42 #[builder(setter(into))]
48 pub target_lang: String,
49
50 #[builder(setter(into, strip_option))]
51 #[builder(default=None)]
52 pub ext: Option<Ext>,
53}
54
55#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
56pub struct Ext {
57 #[builder(setter(into, strip_option))]
60 #[builder(default=None)]
61 domain_hint: Option<String>,
62
63 #[builder(setter(into, strip_option))]
68 #[builder(default=None)]
69 sensitives: Option<Vec<String>>,
70
71 #[builder(setter(into, strip_option))]
73 #[builder(default=None)]
74 terminologies: Option<Vec<Terminology>>,
75 #[builder(setter(into, strip_option))]
76 #[builder(default=None)]
77 config: Option<Config>,
78}
79
80#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
81pub struct Terminology {
82 src: String,
83 tgt: String,
84}
85
86#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
87pub struct Config {
88 skip_img_segment: bool,
90}
91
92