Dolly模型API调用需"申请体验"并通过后才可使用,否则API调用将返回错误状态码。
Dolly
支持的领域 / 任务:aigc
Dolly模型是由Databricks出品的大规模语言模型,它在DashScope上中模型名称为"dolly-12b-v2"。该模型是在pythia-12b的基础上,使用databricks-dolly-15k数据集微调得到的。数据集包括头脑风暴、分类、生成、问答、信息抽取等任务的语料。更多信息可以参考Dolly的开源repo。
Dolly以用户文本形式输入的指令(prompt)作为输入,返回模型生成的回复作为输出。在这一过程中,文本将被转换为语言模型可以处理的token序列。
由于模型调用的计算量与token序列长度相关,输入或输出token数量越多,模型的计算时间越长,我们将根据模型输入和输出的token数量计费。可以从API返回结果的usage字段中了解到您每次调用时使用的token数量。
模型概览
模型名 | 模型简介 |
dolly-12b-v2 | Dolly超大规模语言模型,支持多语言输入,V2版本是Databricks在pythia-12b的基础上微调得到的12B参数规模大模型。 |
SDK使用
前提条件
已开通服务并获得API-KEY:API-KEY的获取与配置。
已安装最新版SDK:安装DashScope SDK。
文本生成
以下示例展示了调用Dolly模型对一个用户指令进行响应的代码。
需要使用您的API-KEY替换示例中的 YOUR_DASHSCOPE_API_KEY,代码才能正常运行。
设置API-KEY
export DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
# For prerequisites running the following sample, visit https://help.aliyun.com/document_detail/611472.html
import dashscope
from dashscope import Generation
from http import HTTPStatus
import json
response=Generation.call(
model='dolly-12b-v2',
prompt='翻译一下:春天来了,花朵都开了。'
)
if response.status_code==HTTPStatus.OK:
print(json.dumps(response.output, indent=4, ensure_ascii=False))
else:
print('Code: %d, status: %s, message: %s' % (response.status_code, response.code, response.message))
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.models.DollyParam;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
public static void dollyQuickStart()
throws NoApiKeyException, ApiException, InputRequiredException {
Generation gen = new Generation();
DollyParam param = DollyParam.builder().model(Generation.Models.DOLLY_12B_V2).prompt("如何做土豆炖猪脚?").build();
GenerationResult result = gen.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args){
try {
dollyQuickStart();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
参数配置
参数 | 类型 | 默认值 | 说明 |
model | string | - | dolly-12b-v2。 |
prompt | string | - | 用户当前输入的期望模型执行指令。 |
返回结果
返回结果示例
{
"status_code": 200,
"request_id": "39a41abe-1bed-430a-b9b5-277130c7eb82",
"code": "",
"message": "",
"output": {
"text": "Spring has come, flowers blossomed."
},
"usage": {
"input_tokens": 0,
"output_tokens": 0
}
}
返回参数说明
返回参数 | 类型 | 说明 |
status_code | int | 200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。 |
request_Id | string | 系统生成的标志本次调用的id。 |
code | string | 表示请求失败,表示错误码,成功忽略。 |
message | string | 失败,表示失败详细信息,成功忽略。 |
output | dict | 调用结果信息,对于千问模型,包含输出text。 |
usage | dict | 计量信息,表示本次请求计量数据。 |
text | string | 模型生成回复。 |
input_tokens | int | 用户输入文本转换成Token后的长度。 |
output_tokens | int | 模型生成回复转换为Token后的长度。 |
HTTP调用接口
功能描述
Dolly模型同时支持 HTTP 调用来完成客户的响应,目前提供普通 HTTP 和 HTTP SSE 两种协议,您可根据自己的需求自行选择。
前提条件
已开通服务并获得API-KEY:API-KEY的获取与配置。
提交任务接口调用
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
入参描述
字段 | 类型 | 传参方式 | 必选 | 描述 | 示例值 |
version-id | string | Url Path | 是 | API 版本,此处用 v1 | v1 |
task-group | string | Url Path | 是 | 任务组,此处用 aigc | aigc |
task | string | Url Path | 是 | 推理任务名称,此处用 text-generation | text-generation |
function-call | string | Url Path | 是 | 调用模型特定功能,此处用 generation | generation |
Content-Type | string | Header | 是 | 请求类型:application/json 或者text/event-stream(开启 SSE 响应) | application/json |
Accept | String | Header | 否 | */*,选择text/event-stream则会开启 SSE 响应,默认无设置 | text/event-stream |
Authorization | string | Header | 是 | API-Key,例如:Bearer d1**2a | Bearer d1**2a |
X-DashScope-SSE | string | Header | 否 | 跟Accept: text/event-stream 二选一即可启用SSE响应 | enable |
X-DashScope-DataInspection | string | Header | 否 | 接口输入和输出的信息是否通过绿网过滤。 | enable/disable |
model | string | Body | 是 | 指明需要调用的模型。 | dolly-12b-v2 |
input.prompt | string | Body | 是 | 文本内容,支持中英文。 | 就当前的海洋污染的情况,写一份限塑的倡议书提纲,需要有理有据地号召大家克制地使用塑料制品 |
出参描述
字段 | 类型 | 描述 | 示例值 |
output.text | string | 本次请求的算法输出内容。 | "output":{"text": "xxxxxxx"} |
usage.output_tokens | int | 本次请求算法输出内容的 token 数目。 | 380 |
usage.input_tokens | int | 本次请求输入内容的 token 数目。在打开了搜索的情况下,输入的 token 数目因为还需要添加搜索相关内容支持,所以会超出客户在请求中的输入。 | 633 |
request_id | string | 本次请求的系统唯一码 | 7574ee8f-38a3-4b1e-9280-11c33ab46e51 |
请求示例(SSE关闭)
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'Authorization: Bearer <your-dashscope-api-key>' \
--header 'Content-Type: application/json' \
--data '{
"model": "dolly-12b-v2",
"input": {
"prompt": "就当前的海洋污染的情况,写一份限塑的倡议书提纲,需要有理有据地号召大家克制地使用塑料制品"
},
"parameters": {
}
}'
响应示例(SSE关闭)
{
"output":{
"text":"好的,以下是限塑的倡议书提纲... ... ... 让我们共同努力,限制塑料污染,为美丽的海洋贡献自己的力量!"
},
"usage":{
"output_tokens":380,
"input_tokens":633
},
"request_id":"d89c06fb-46a1-47b6-acb9-bfb17f814969"
}
请求示例(SSE开启)
如果需要的话,客户可以选择使用 HTTP SSE 接口方式得到返回结果,则服务端会将输出的内容多次推送到客户请求端。
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation' \
--header 'Authorization: Bearer <your-dashscope-api-key>' \
--header 'Content-Type: application/json' \
--header 'X-DashScope-SSE: enable' \
--data '{
"model": "dolly-12b-v2",
"input": {
"prompt": "就当前的海洋污染的情况,写一份限塑的倡议书提纲,需要有理有据地号召大家克制地使用塑料制品"
},
"parameters": {
}
}'
响应示例(SSE开启)
id:1
event:result
data:{"output":{"text":"好的,以下是一份"},"usage":{"input_tokens":633,"output_tokens":9},"request_id":"92f2d134-f662-4f1b-9229-693dcc806eab"}
id:2
event:result
data:{"output":{"text":"好的,以下是一份限塑的倡议书提纲"},"usage":{"input_tokens":633,"output_tokens":17},"request_id":"92f2d134-f662-4f1b-9229-693dcc806eab"}
... ... ... ...
... ... ... ...
id:42
event:result
data:{"output":{"text":"好的,以下是一份限塑的倡议书提纲:... ... 希望大家能够共同努力,保护海洋生态"},"usage":{"input_tokens":633,"output_tokens":337},"request_id":"92f2d134-f662-4f1b-9229-693dcc806eab"}
异常响应示例
在访问请求出错的情况下,输出的结果中会通过 code 和 message 指明出错原因。
{
"output":{
"text":"好的,以下是限塑的倡议书提纲... ... ... 让我们共同努力,限制塑料污染,为美丽的海洋贡献自己的力量!"
},
"usage":{
"output_tokens":380,
"input_tokens":633
},
"request_id":"d89c06fb-46a1-47b6-acb9-bfb17f814969"
}
状态码说明
DashScope通用状态码请查阅:返回状态码说明