async_dashscope/operation/
embeddings.rs

1use crate::error::Result;
2use crate::Client;
3pub use output::*;
4pub use param::*;
5
6mod output;
7mod param;
8
9pub struct Embeddings<'a> {
10    client: &'a Client,
11}
12
13impl<'a> Embeddings<'a> {
14    pub fn new(client: &'a Client) -> Self {
15        Self { client }
16    }
17
18    /// 异步调用文本嵌入服务
19    ///
20    /// 该函数通过POST请求向指定的服务端点发送文本嵌入请求,并返回处理结果
21    /// 主要用途是将输入的文本数据转换为高维向量表示,以便于后续的自然语言处理任务使用
22    ///
23    /// # 参数
24    ///
25    /// * `request` - 包含文本嵌入请求所有必要信息的结构体,包括但不限于文本内容和嵌入模型的选择
26    ///
27    /// # 返回值
28    ///
29    /// 返回一个结果类型,包含文本嵌入操作的成功与否
30    /// 如果操作成功,返回一个包含嵌入向量和其他相关信息的结构体
31    /// 如果操作失败,返回一个错误类型,便于错误处理和调试
32    pub async fn call(&self, request: param::EmbeddingsParam) -> Result<output::EmbeddingsOutput> {
33        // 发送POST请求到指定的服务端点,并传递请求参数
34        // 该行代码是异步执行的,允许在等待网络操作时继续执行其他任务,提高程序效率
35        self.client
36            .post(
37                "/services/embeddings/text-embedding/text-embedding",
38                request,
39            )
40            .await
41    }
42}