async_dashscope/operation/embeddings/
param.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::operation::request::RequestTrait;
5
6#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
7pub struct EmbeddingsParam {
8 #[builder(setter(into))]
10 pub model: String,
11 pub input: EmbeddingsInput,
12
13 #[serde(skip_serializing_if = "Option::is_none")]
14 #[builder(setter(into, strip_option))]
15 #[builder(default=None)]
16 pub parameters: Option<EmbeddingsParameters>,
17
18 #[serde(skip_serializing_if = "Option::is_none")]
22 #[builder(setter(into, strip_option))]
23 #[builder(default=None)]
24 pub text_type: Option<String>,
25}
26
27#[derive(Debug, Clone, Serialize, Builder, Deserialize, PartialEq)]
28pub struct EmbeddingsInput {
29 #[serde(skip_serializing_if = "Option::is_none")]
31 #[builder(setter(into, strip_option))]
32 #[builder(default=None)]
33 pub texts: Option<Vec<String>>,
34 #[serde(skip_serializing_if = "Option::is_none")]
36 #[builder(setter(into, strip_option))]
37 #[builder(default=None)]
38 pub image: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 #[builder(setter(into, strip_option))]
42 #[builder(default=None)]
43 pub video: Option<String>,
44}
45
46#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
47pub struct EmbeddingsParameters {
48 #[builder(setter(into, strip_option))]
51 #[builder(default=None)]
52 pub dimension: Option<u16>,
53 #[builder(setter(into, strip_option))]
55 #[builder(default=None)]
56 pub output_type: Option<String>,
57 #[builder(setter(into, strip_option))]
59 #[builder(default=None)]
60 pub instruct: Option<String>,
61}
62
63impl RequestTrait for EmbeddingsParam {
64 type P = EmbeddingsParameters;
65 fn model(&self) -> &str {
66 &self.model
67 }
68
69 fn parameters(&self) -> Option<&Self::P> {
70 self.parameters.as_ref()
71 }
72}