async_dashscope/operation/embeddings/
param.rs

1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
5pub struct EmbeddingsParam {
6    /// 调用模型名称,可以选择text-embedding-v1,text-embedding-v2或者text-embedding-v3
7    #[builder(setter(into))]
8    pub model: String,
9    pub input: EmbeddingsInput,
10
11    #[serde(skip_serializing_if = "Option::is_none")]
12    #[builder(setter(into, strip_option))]
13    #[builder(default=None)]
14    pub parameters: Option<EmbeddingsParameters>,
15
16    /// 文本转换为向量后可以应用于检索、聚类、分类等下游任务,
17    /// 对检索这类非对称任务为了达到更好的检索效果建议区分查询文本(query)和底库文本(document)类型,
18    ///  聚类、分类等对称任务可以不用特殊指定,采用系统默认值document即可。
19    #[serde(skip_serializing_if = "Option::is_none")]
20    #[builder(setter(into, strip_option))]
21    #[builder(default=None)]
22    pub text_type: Option<String>,
23}
24
25#[derive(Debug, Clone, Serialize, Builder, Deserialize, PartialEq)]
26pub struct EmbeddingsInput {
27    /// 文本列表
28    #[serde(skip_serializing_if = "Option::is_none")]
29    #[builder(setter(into, strip_option))]
30    #[builder(default=None)]
31    texts: Option<Vec<String>>,
32    /// 图片地址或者图片 base64
33    #[serde(skip_serializing_if = "Option::is_none")]
34    #[builder(setter(into, strip_option))]
35    #[builder(default=None)]
36    image: Option<String>,
37    /// 视频地址
38    #[serde(skip_serializing_if = "Option::is_none")]
39    #[builder(setter(into, strip_option))]
40    #[builder(default=None)]
41    video: Option<String>,
42}
43
44#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
45
46pub struct EmbeddingsParameters {
47    /// 向量维度,可选值:768、1024、1536、2048
48    dimension: u16,
49}