文档

API详情

更新时间:

前言

通用文本向量,是达摩院基于LLM底座的多语言文本统一向量模型,面向全球多个主流语种,提供高水准的向量服务,帮助开发者将文本数据快速转换为高质量的向量数据。

模型中文名

模型英文名

支持语种

通用文本向量

text-embedding-v1

中文、英语、西班牙语、法语、葡萄牙语、印尼语。

调用前准备

调用前需要开通服务并获取API-KEY:开通DashScope并创建API-KEY

说明

本文档提供了SDK和HTTP两种调用方式,均需要填入API-KEY才能进行调用,请在下方示例代码或请求参数中将<your-dashscope-api-key>替换成创建好的API_KEY。

SDK调用

安装

调用前需安装SDK:安装DashScope SDK

参数详解

  1. 请求参数

    参数名称

    必选

    示例值

    描述

    model

    text-embedding-v1

    • 取值:该值是固定值,无需更改

    • 说明:代表模型的英文名称

    input

    衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买

    • 取值:input可以是字符串,字符串列表, 或者打开的文件(需要embedding的内容,1行一条)

    • 说明:

      • input是字符串时最长支持2048tokens

      • input是字符串列表时最多支持10条,每条最长支持2048tokens

      • input是文件时最多支持10条,每条最长支持2048tokens

    text_type

    query

    • 取值:query 或者 document,默认值为 document

    • 说明:文本转换为向量后可以应用于检索、聚类、分类等下游任务,对检索这类非对称任务为了达到更好的检索效果建议区分查询文本(query)和底库文本(document)类型, 聚类、分类等对称任务可以不用特殊指定,采用系统默认值"document"即可

  2. 响应参数

    字段

    类型

    描述

    示例值

    output.embeddings

    Array

    本次请求的算法输出内容,是一个由结构组成的数组,每一个数组中包含一个对应的输入 text 的算法输出内容。

    {
      "embeddings": [
        {
          "text_index": 0,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ... 省略
          ]
        },
        {
          "text_index": 1,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ... 省略
          ]
        },
        {
          "text_index": 2,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ... 省略
          ]
        },
        {
          "text_index": 3,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ... 省略
          ]
        }
      ]
    }

    output.embeddings.text_index

    Integer

    本结构中的算法结果对应的输入文字在输入数组中的索引值。

    0,1,2,3...

    output.embeddings.embedding

    Array

    对应字符串的算法输出 embedding。

    [
      -0.006929283495992422,
      -0.005336422007530928,
      ... 省略
    ]

    usage.input_tokens

    Integer

    本次请求输入内容的 token 数目,算法的计量是根据用户输入字符串被模型tokenizer解析之后对应的token 数目来进行。

    12

    request_id

    String

    本次请求的系统唯一码

    7574ee8f-38a3-4b1e-9280-11c33ab46e51

调用示例

说明

SDK支持三种输入,分别是字符串、字符串列表和文件

  1. 输入字符串

    import dashscope
    from http import HTTPStatus
    from dashscope import TextEmbedding
    
    dashscope.api_key = 'your-dashscope-api-key'
    
    
    def embed_with_str():
        resp = TextEmbedding.call(
            model=TextEmbedding.Models.text_embedding_v1,
            # 最长支持2048tokens
            input='衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买')
        if resp.status_code == HTTPStatus.OK:
            print(resp)
        else:
            print(resp)
    
    
    if __name__ == '__main__':
        embed_with_str()
  2. 输入字符串列表

    import dashscope
    from http import HTTPStatus
    from dashscope import TextEmbedding
    
    dashscope.api_key = 'your-dashscope-api-key'
    
    
    def embed_with_list_of_str():
        resp = TextEmbedding.call(
            model=TextEmbedding.Models.text_embedding_v1,
            # 最多支持10条,每条最长支持2048tokens
            input=['风急天高猿啸哀', '渚清沙白鸟飞回', '无边落木萧萧下', '不尽长江滚滚来'])
        if resp.status_code == HTTPStatus.OK:
            print(resp)
        else:
            print(resp)
    
    
    if __name__ == '__main__':
        embed_with_list_of_str()
    
  3. 输入文件

    示例文件如下(文件名称:texts_to_embedding.txt,其中每一行对应一个embedding)

    很不错的一款产品,送人的额,非常喜欢,很不错,好评哦,以后还会多多支持的
    已经吃了,感觉不错。第二次购买,这个价格很实惠,卖家还赠送了美容器和尺子,很愉悦的一次购物。
    衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买,我一次买了四件不到200块钱,真好
    用了一段时间了,感觉比传统的风扇好用,广度大,档数多,静音效果也不错,关键是还很漂亮!
    这个热量低,比意面还低,关键是口感还好,挺好吃,多煮一会一级棒,我的减脂早餐就靠它了
    整体评价:好 使用效果:好 包装与外观:好 三好商品
    电视机很好,我给老爸买的,老人很喜欢,图像清晰,音质很好,老人喜欢我满意。
    宝贝很轻巧,打的时候网弹力很足,儿子非常喜欢,五分好评,还送了羽毛球噢!
    终于装上,风很大,热的还可以,排风声音不小,安装的师傅说不能直吹,安装的时候非常满意,最后还帮忙把棚顶给擦干净了,非常感谢。
    颜色很美。就是别人的盒子都是平整的,唯独我的盒子有很严重的压痕。本来想直接用这个盒子装胶带的..现在这个样子强迫症看着实在很糟心。压成这样要么包装有问题,要么本来产品就有问题。而卖家一直在甩锅快递。由于包裹是被家里人拆开的,所以我也不知道是什么样子的,不好跟卖家掰扯。但我看别的人都是纸盒装的,想来我这个也是纸盒装的。那么排除包装的原因的话,很可能就是寄过来的就是个瑕疵品。比起同样今天到货的另一家,有个小瑕疵立马给我补寄了一个,这家的处理方式真的..换货..或者直接道歉说疏忽我都接受的。甩锅真的不能忍。本来还给好几个人推了这家店...就挺失望的 以后应该不会来了。这坚定的甩锅态度我也不点退换了..请不要给我打电话改评,谢谢。

    代码如下:

    import dashscope
    from http import HTTPStatus
    from dashscope import TextEmbedding
    
    dashscope.api_key = 'your-dashscope-api-key'
    
    
    def embed_with_file_content():
        # 文件中最多支持10条,每条最长支持2048tokens
        with open('tests_to_embedding.txt', 'r', encoding='utf-8') as f:
            resp = TextEmbedding.call(
                model=TextEmbedding.Models.text_embedding_v1,
                input=f)
            if resp.status_code == HTTPStatus.OK:
                print(resp)
            else:
                print(resp)
    
    
    if __name__ == '__main__':
        embed_with_file_content()
    

输出示例

{
    "status_code": 200, // 200 indicate success otherwise failed.
    "request_id": "fd564688-43f7-9595-b986-737c38874a40", // The request id.
    "code": "", // If failed, the error code.
    "message": "", // If failed, the error message.
    "output": {
        "embeddings": [ // embeddings
            {
                "embedding": [ // one embedding output
                    -3.8450357913970947, ...,
                    3.2640624046325684
                ],
                "text_index": 0 // the input index.
            }
        ]
    },
    "usage": {
        "total_tokens": 3 // the request tokens.
    }
}

HTTP调用

说明

本模型还可通过HTTP的方式进行调用,以适用更灵活的业务开发,下方示例提供了CURL命令,其中用POST方式请求了接口:https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding

参数详解

  1. 请求参数

    字段

    类型

    传参方式

    必选

    示例值

    描述

    version-id

    String

    Url Path

    v1

    • 取值:固定值,暂无需更改

    • 说明:API 版本

    task-group

    String

    Url Path

    embeddings

    • 取值:固定值,无需更改

    • 说明:任务组

    task

    String

    Url Path

    text-embedding

    • 取值:固定值,无需更改

    • 说明:推理任务名称

    function-call

    String

    Url Path

    text-embedding

    • 取值:固定值,无需更改

    • 说明:调用模型特定功能

    Content-Type

    String

    Header

    application/json

    • 取值:固定值,无需更改

    • 说明:请求类型

    Authorization

    String

    Header

    Bearer d1**2a

    • 取值:需要填入您的API-KEY

    • 说明:API-KEY的获取方式参考上方文档中的调用前准备

    model

    String

    Body

    text-embedding-v1

    • 取值:固定值,无需更改

    • 说明:指明需要调用的模型。

    input.texts

    Array

    Body

    ["风急天高猿啸哀",

    "渚清沙白鸟飞回",

    "无边落木萧萧下",

    "不尽长江滚滚来"]

    • 取值:文本内容,需要计算的输入字符串,支持中英文。

    • 说明:支持多条文本输入,每次请求最多 10 条;每一条最长支持 2048 tokens。

    parameters.text_type

    String

    Body

    "text_type": "query"

    • 取值:query 或者 document,默认值为 document

    • 说明:文本转换为向量后可以应用于检索、聚类、分类等下游任务,对检索这类非对称任务为了达到更好的检索效果建议区分查询文本(query)和底库文本(document)类型, 聚类、分类等对称任务可以不用特殊指定,采用系统默认值"document"即可

  2. 响应参数

    字段

    类型

    描述

    示例值

    output.embeddings

    Array

    本次请求的算法输出内容,是一个由结构组成的数组,每一个数组中包含一个对应的输入 text 的算法输出内容。

    {
      "embeddings": [
        {
          "text_index": 0,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ...省略
          ]
        },
        {
          "text_index": 1,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ...省略
          ]
        },
        {
          "text_index": 2,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ...省略
          ]
        },
        {
          "text_index": 3,
          "embedding": [
            -0.006929283495992422,
            -0.005336422007530928,
            ...省略
          ]
        }
      ]
    }

    output.embeddings.text_index

    Integer

    本结构中的算法结果对应的输入文字在输入数组中的索引值。

    0,1,2,3...

    output.embeddings.embedding

    Array

    对应字符串的算法输出 embedding。

    [
      -0.006929283495992422,
      -0.005336422007530928,
      ... 省略
    ]

    usage.total_tokens

    Integer

    本次请求输入内容的 token 数目,算法的计量是根据用户输入字符串被模型tokenizer解析之后对应的token 数目来进行。

    12

    request_id

    String

    本次请求的系统唯一码

    7574ee8f-38a3-4b1e-9280-11c33ab46e51

Curl示例

curl --location 'https://dashscope.aliyuncs.com/api/v1/services/embeddings/text-embedding/text-embedding' \
--header 'Authorization: Bearer <your-dashscope-api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v1",
    "input": {
        "texts": [
        "风急天高猿啸哀",
        "渚清沙白鸟飞回", 
        "无边落木萧萧下", 
        "不尽长江滚滚来"
        ]
    },
    "parameters": {
    		"text_type": "query"
    }
}'

响应示例

  1. 调用成功示例

    {
        "output":{
            "embeddings": [
              {
                 "text_index": 0,
                 "embedding": [-0.006929283495992422,-0.005336422007530928, ...]
              }, 
              {
                 "text_index": 1,
                 "embedding": [-0.006929283495992422,-0.005336422007530928, ...]
              },
              {
                 "text_index": 2,
                 "embedding": [-0.006929283495992422,-0.005336422007530928, ...]
              },
              {
                 "text_index": 3,
                 "embedding": [-0.006929283495992422,-0.005336422007530928, ...]
              }
            ]
        },
        "usage":{
            "total_tokens":12
        },
        "request_id":"d89c06fb-46a1-47b6-acb9-bfb17f814969"
    }
  2. 调用异常示例

    {
        "code":"InvalidApiKey",
        "message":"Invalid API-key provided.",
        "request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
    }

    注:在访问请求出错的情况下,输出的结果中会通过 code 和 message 指明出错原因。

状态码说明

DashScope灵积模型服务通用状态码请查阅:返回状态码说明

  • 本页导读 (0)
文档反馈