Token计算API详情

您所在的位置:网站首页 问计算器 Token计算API详情

Token计算API详情

2024-06-02 18:05| 来源: 网络整理| 查看: 265

重要

在语言模型中,token是指将输入的文本分割成的最小单位;token可以是一个单词、一个词组、一个标点符号、一个字符等,不同模型可能有自己的切分方法;

Token计算API仅用于计量和计费的估计,调用不收取费用,请勿在生产环境依赖Token计算API。

Token计算说明

支持的领域 / 任务:aigc

Token计算API是帮助用户估算指定文本对应多少Token数目的API。在灵积平台中,包括通义千问、LLaMa2等在内的语言模型都是基于用户输入和输出的token数目来进行计量和计费的。在语言模型使用中,字符数目和Token数目并不一定是一一对应的,例如在通义千问开源7B模型中:

"苹果"对应1个token;

"my friends"对应3个token;

" 周"对应3个token。

故而,灵积平台提供Token计算API供用户参考。

您也可以通过灵积平台提供的token计算器页面,直接获取tokenize结果。

已支持模型列表说明

其它模型正在支持中,敬请期待。

模型分类

对应模型名称

通义千问

qwen-turbo

qwen-plus

qwen-7b-chat

qwen-14b-chat

LLaMa2系列

llama2-7b-chat-v2

llama2-13b-chat-v2

SDK使用前提条件

已开通服务并获得API-KEY:开通DashScope并创建API-KEY。

已安装最新版SDK:安装DashScope SDK。

文本生成

以下示例展示了调用qwen-turbo模型的tokenizer对一个用户指令进行编码的代码。

说明

需要使用您的API-KEY替换示例中的 YOUR_DASHSCOPE_API_KEY,代码才能正常运行。

设置API-KEY

export DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY

from http import HTTPStatus import dashscope def tokenizer(): response = dashscope.Tokenization.call(model='qwen-turbo', messages=[{'role': 'user', 'content': '你好?'}], ) if response.status_code == HTTPStatus.OK: print('Result is: %s' % response) else: print('Failed request_id: %s, status_code: %s, code: %s, message:%s' % (response.request_id, response.status_code, response.code, response.message)) if __name__ == '__main__': tokenizer() // Copyright (c) Alibaba, Inc. and its affiliates. import com.alibaba.dashscope.aigc.generation.models.QwenParam; import com.alibaba.dashscope.common.Message; import com.alibaba.dashscope.common.MessageManager; import com.alibaba.dashscope.common.Role; import com.alibaba.dashscope.exception.ApiException; import com.alibaba.dashscope.exception.InputRequiredException; import com.alibaba.dashscope.exception.NoApiKeyException; import com.alibaba.dashscope.tokenizers.Tokenization; import com.alibaba.dashscope.tokenizers.TokenizationResult; public class TokenizationQuickStart { public static void tokenizer() throws ApiException, NoApiKeyException, InputRequiredException { Tokenization tokenizer = new Tokenization(); MessageManager messageManager = new MessageManager(10); messageManager.add(Message.builder().role(Role.USER.getValue()).content("你好?").build()); QwenParam param = QwenParam.builder() .model(Tokenization.Models.QWEN_PLUS) .messages(messageManager.get()) .build(); TokenizationResult result = tokenizer.call(param); System.out.println(result); } public static void main(String[] args) { try { tokenizer(); } catch (ApiException | NoApiKeyException | InputRequiredException e) { System.out.println(String.format("Exception %s", e.getMessage())); } System.exit(0); } }

参数配置

参数

类型

默认值

说明

model

string

-

用户使用model参数指明对应的模型,目前可选的模型见“已支持模型列表”。

prompt

string

-

用户当前输入的期望模型执行指令。

messages

list

-

用户与模型的对话历史。list中的每个元素形式为{"role":角色, "content": 内容}。角色当前可选值:system、user、assistant,其中,仅messages[0]中支持role为system,user和assistant需要交替出现

返回结果

返回结果示例

{ "status_code": 200, "request_id": "2ecfce1f-b7af-9b3a-9482-01e4a5511e8f", "code": "", "message": "", "output": { "token_ids": [ 108386, 11319 ], "tokens": [ "你好", "?" ] }, "usage": { "input_tokens": 2 } }

返回参数说明

返回参数

类型

说明

status_code

int

200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。

request_Id

string

系统生成的标志本次调用的id。

code

string

表示请求失败,表示错误码,成功忽略。

message

string

失败,表示失败详细信息,成功忽略。

output

dict

调用结果信息。

output.token_ids

list[int]

本次输入文本对应的token_ids。

output.tokens

list[string]

本次输入文本对应的tokens。

usage.input_tokens

int

输入文本对应的token数目。

HTTP调用接口功能描述重要

为了方便用户的使用,灵积模型服务提供的Token计算API和具体模型的调用API几乎一致,唯一不同的地方是服务的url不同。用户完全可以复用之前调用模型的参数,更换接口的url即可。

Token计算API也同时提供了 HTTP 接口,客户可以根据自己的需求选择。

前提条件

已开通服务并获得API-KEY:开通DashScope并创建API-KEY。

提交接口调用

POST https://dashscope.aliyuncs.com/api/v1/tokenizer

入参描述

传参方式

字段

类型

必选

描述

示例值

Header

Content-Type

String

请求类型:application/json。

application/json

Authorization

String

API-Key,例如:Bearer d1**2a。

Bearer d1**2a

Body

model

String

指明需要调用的模型,目前可选的模型见“已支持模型列表”。

qwen-turbo

input.prompt

String

prompt和messages仅二选一

输入文本。为了避免用户调用模型API和Token API拼接不同的参数格式,Token API在参数上兼容了模型API的写法,prompt和messages均可作为输入文本。

hello, who are you?

inpussages

List

{

"messages":[{

"role":"user",

"content":"北京有哪些好玩地方?"

},{

"role":"assistant",

"content":"故宫、颐和园、天坛等都是可以去游玩的景点哦。"

},{

"role":"user",

"content":"帮我安排一些行程"

}]

}

inpussages.role

String

messages存在的时候不能缺省

inpussages.content

String

出参描述

字段

类型

描述

示例值

output.token_ids

List

本次输入文本对应的token_ids。

[68990,104719,108257,100371,11319,113508,5373,113085,33108,99354,5373,35727,101152,49567,100132,73670,85336,109280,9370,105869,104170,1773,108965,103956,101883,106318]

output.tokens

List

本次输入文本对应的tokens。

["北京","有哪些","好玩","地方","?","故宫","、","颐","和","园","、","天","坛","等","都是","可以","去","游玩","的","景点","哦","。","帮我","安排","一些","行程"]

usage.input_tokens

Integer

输入文本对应的token数目。

26

request_id

String

本次请求的系统唯一码

415018a6-4c64-95ea-8ec7-98436f4c16b6

请求示例

以下示例展示通过CURL命令来调用Token计算API的脚本。

说明

需要使用您的API-KEY替换示例中的 your-dashscope-api-key ,代码才能正常运行。

curl --location 'https://dashscope.aliyuncs.com/api/v1/tokenizer' \ --header 'Authorization: Bearer ' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen-plus", "input":{ "messages":[ { "role": "user", "content": "北京有哪些好玩地方?" }, { "role": "assistant", "content": "故宫、颐和园、天坛等都是可以去游玩的景点哦。" }, { "role": "user", "content": "帮我安排一些行程" } ] }, "parameters": { } }'响应示例{ "output":{ "token_ids":[68990,104719,108257,100371,11319,113508,5373,113085,33108,99354,5373,35727,101152,49567,100132,73670,85336,109280,9370,105869,104170,1773,108965,103956,101883,106318], "tokens":["北京","有哪些","好玩","地方","?","故宫","、","颐","和","园","、","天","坛","等","都是","可以","去","游玩","的","景点","哦","。","帮我","安排","一些","行程"] }, "usage":{ "input_tokens":26 }, "request_id":"415018a6-4c64-95ea-8ec7-98436f4c16b6" }

异常响应示例

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

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3