tao-8k
更新时间:2025-02-27
tao-8k是由Huggingface开发者amu研发并开源的长文本向量表示模型,支持8k上下文长度,模型效果在C-MTEB上居前列,是当前最优的中文长文本embeddings模型之一。本文介绍了相关API。
功能介绍
根据输入内容生成对应的向量表示。
使用说明
支持通过Python SDK、Go SDK、Java SDK和Node.js SDK调用,调用流程请查看SDK安装及使用流程。
SDK调用
SDK 支持调用平台中的模型,将输入文本转化为用浮点数表示的向量形式。转化得到的语义向量可应用于文本检索、信息推荐、知识挖掘等场景。
请求示例
1import os
2import qianfan
3
4# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
5os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
6os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
7
8emb = qianfan.Embedding()
9
10resp = emb.do(model="tao-8k", texts=[
11 "推荐一些美食"
12])
13print(resp["body"])
1package main
2
3import (
4 "context"
5 "fmt"
6 "os"
7
8 "github.com/baidubce/bce-qianfan-sdk/go/qianfan"
9)
10
11func main() {
12 // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
13 os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
14 os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
15
16 embed := qianfan.NewEmbedding(
17 qianfan.WithModel("tao-8k"),
18 )
19 resp, _ := embed.Do(
20 context.TODO(),
21 &qianfan.EmbeddingRequest{
22 Input: []string{"你好啊"},
23 },
24 )
25 fmt.Println(resp.Data[0].Embedding)
26}
1import com.baidubce.qianfan.Qianfan;
2import com.baidubce.qianfan.model.embedding.EmbeddingData;
3import com.baidubce.qianfan.model.embedding.EmbeddingResponse;
4import java.util.Arrays;
5
6public class Demo {
7 public static void main(String[] args) {
8 // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
9 Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
10
11 EmbeddingResponse resp = qianfan.embedding()
12 .model("tao-8k")
13 .input(Arrays.asList("晚饭味道很不错"))
14 .execute();
15 for (EmbeddingData data : resp.getData()) {
16 System.out.println(data.getEmbedding());
17 }
18 }
19}
1import {Embedding} from "@baiducloud/qianfan";
2
3// 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
4const client = new Embedding({ QIANFAN_ACCESS_KEY: 'your_iam_ak', QIANFAN_SECRET_KEY: 'your_iam_sk' });
5async function main() {
6 const resp = await client.embedding({
7 input: ['晚饭味道很不错'],
8 }, 'tao-8k');
9 const rs = resp.data;
10 rs.forEach((data) => {
11 console.log(data.embedding);
12 })
13}
14
15main();
返回示例
1{
2 'id': 'as-671jysj753',
3 'object': 'embedding_list',
4 'created': 1718865925,
5 'data': [
6 {
7 'object': 'embedding',
8 'embedding': [-0.0088579673320055, -0.0038655658718198538, 0.003803160274401307,...],
9 'index': 0
10 }
11 ],
12 'usage': {
13 'prompt_tokens': 3,
14 'total_tokens': 3
15 }
16}
1[-0.009818156249821186 0.026906531304121017 -0.02890794165432453 ...]
1[0.03495601564645767, 0.01275318767875433, -0.02989528886973858,...]
1[0.03495601564645767, 0.01275318767875433, -0.02989528886973858,...]
请求参数
注意:以下为Python SDK参数说明,Go、Java、Node.js SDK参数相关说明请参考Go SDK-向量Embeddings参数相关说明、Java SDK参数相关说明、Node.js SDK参数相关说明。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
model | str | 否 | 模型名称,说明:调用本文API,该字段为固定值tao-8k |
texts | List[str] | 是 | 填写文本,说明: (1)文本数量只能为1 (2)文本token数不超过8192且长度不超过28000个字符 (3)输入文本不能为空,如果为空会报错 |
retry_count | int | 否 | 重试次数,默认1次 |
request_timeout | float | 否 | 请求超时时间,默认60秒 |
backoff_factor | float | 否 | 请求重试参数,用于指定重试的策略,默认为0 |
user_id | str | 否 | 表示最终用户的唯一标识符 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
id | str | 本轮对话的id |
object | str | 回包类型,固定值“embedding_list” |
created | int | 时间戳 |
data | List[EmbeddingData] | embedding信息,data成员数和文本数量保持一致 |
usage | Usage | token统计信息,token数 = 汉字数+单词数*1.3 (仅为估算逻辑) |
EmbeddingData说明
名称 | 类型 | 描述 |
---|---|---|
object | str | 固定值"embedding" |
embedding | List[float] | embedding 内容 |
index | int | 序号 |
Usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数(包含历史QA) |
total_tokens | int | tokens总数 |