async_dashscope/operation/embeddings/
param.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::operation::common::Parameters;
5use crate::operation::request::RequestTrait;
6
7#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
8pub struct EmbeddingsParam {
9 #[builder(setter(into))]
11 pub model: String,
12 pub input: EmbeddingsInput,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
15 #[builder(setter(into, strip_option))]
16 #[builder(default=None)]
17 pub parameters: Option<EmbeddingsParameters>,
18
19 #[serde(skip_serializing_if = "Option::is_none")]
23 #[builder(setter(into, strip_option))]
24 #[builder(default=None)]
25 pub text_type: Option<String>,
26}
27
28#[derive(Debug, Clone, Serialize, Builder, Deserialize, PartialEq)]
29pub struct EmbeddingsInput {
30 #[serde(skip_serializing_if = "Option::is_none")]
32 #[builder(setter(into, strip_option))]
33 #[builder(default=None)]
34 texts: Option<Vec<String>>,
35 #[serde(skip_serializing_if = "Option::is_none")]
37 #[builder(setter(into, strip_option))]
38 #[builder(default=None)]
39 image: Option<String>,
40 #[serde(skip_serializing_if = "Option::is_none")]
42 #[builder(setter(into, strip_option))]
43 #[builder(default=None)]
44 video: Option<String>,
45}
46
47#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
48
49pub struct EmbeddingsParameters {
50 dimension: u16,
52}
53
54impl RequestTrait for EmbeddingsParam {
55 fn model(&self) -> &str {
56 &self.model
57 }
58
59 fn parameters(&self) -> Option<&Parameters> {
60 None
62 }
63}