历史文档仅适用于阿里云百炼1.0版本的API和SDK调用,鉴于旧版功能已停止迭代更新,强烈建议您升级至最新版API和SDK,具体详情请参考新版本升级说明。
功能描述
本文主要介绍如何使用API调用阿里云百炼的插件和流程编排应用,包括从应用广场中创建的插件应用(如插件调用、插件调度应用、检索&插件调度增强)、流程编排中创建的应用和自然语言转SQL应用。
首先,请参考文档获取 AccessKey 与 AgentKey获取AK/SK、Agent Key和AppId。如果是RAM账号,请参考文档RAM子账号使用方式和授权操作进行授权操作。
其次, 调用API需要获取到临时Token,请参照创建Token。
API详情
请求地址: https://bailian.aliyuncs.com/v2/app/completions
请求方式:POST
请求数据格式:JSON
请求参数
|
参数名 |
参数类型 |
是否必填 |
说明 |
示例值 |
|
请求头 |
||||
|
Content-Type |
string |
是 |
请求类型 |
application/json; charset=utf-8 |
|
Accept |
string |
否 |
流式响应时,需要携带此请求头,非流式响应不需要携带。 |
text/event-stream |
|
Authorization |
string |
是 |
API临时Token。 |
Bearer cc*******m3 |
|
请求Body |
||||
|
RequestId |
string |
是 |
请求唯一标识,请确保RequestId不重复。 |
30**********869 |
|
SessionId |
string |
否 |
对话历史的会话唯一标识, 传入sessionId后,将在云端进行对话历史进行记录,调用大模型将自动携带存储的对话历史。请确保SessionId不重复,并且SessionId和History二选一即可。 |
40**********213 |
|
AppId |
string |
是 |
阿里云百炼应用唯一标识。 |
ea*****541 |
|
Stream |
boolean |
否 |
是否流式输出, 默认为否。 |
false |
|
Prompt |
string |
否 |
提示词 |
中国封建王朝经历多少年? |
|
History |
否 |
对话历史。SessionId和History二选一即可,如果同时传入SessionId和History,则只有History会生效。 |
[{"User": "太阳是恒星吗?", "Bot": "是的"}] |
|
|
History[x].User |
string |
是 |
对话历史的用户消息。 |
太阳是恒星吗? |
|
History[x].Bot |
string |
是 |
对话历史大的模型消息。 |
是的 |
|
TopP |
float |
否 |
生成时,核采样方法的概率阈值。例如,取值为0.8时,仅保留累计概率之和大于等于0.8的概率分布中的token,作为随机采样的候选集。取值范围为(0,1.0),取值越大,生成的随机性越高;取值越低,生成的随机性越低。默认值为0.8。注意,取值不要大于等于1 |
0.8 |
|
Parameters |
Parameter |
否 |
模型参数设置。 |
|
|
Parameters.TopK |
int |
否 |
生成时,采样候选集的大小。例如,取值为50时,仅将单次生成中得分最高的50个token组成随机采样的候选集。取值越大,生成的随机性越高;取值越小,生成的确定性越高。注意:如果top_k参数为空或者top_k的值大于100,表示不启用top_k策略,此时仅有top_p策略生效,默认是空。 |
50 |
|
Parameters.Seed |
int |
否 |
生成时使用的随机数种子,用户控制模型生成内容的随机性。seed支持无符号64位整数,默认值为1234。在使用seed时,模型将尽可能生成相同或相似的结果,但目前不保证每次生成的结果完全相同。 |
65535 |
|
Parameters.Temperature |
float |
否 |
用于控制随机性和多样性的程度。具体来说,temperature值控制了生成文本时对每个候选词的概率分布进行平滑的程度。较高的temperature值会降低概率分布的峰值,使得更多的低概率词被选择,生成结果更加多样化;而较低的temperature值则会增强概率分布的峰值,使得高概率词更容易被选择,生成结果更加确定。 取值范围: [0, 2),系统默认值1.0。不建议取值为0,无意义。 |
1.0 |
|
HasThoughts |
boolean |
否 |
是否输出插件或流程编排调用和模型推理过程相关信息。 |
true或false |
|
BizParams |
object |
否 |
业务api使用的参数,可以直接进行透传。当调用侧在调用插件或者流程编排应用时,需要将业务参数传递给业务方的api时,可以使用此参数,比如userId、token等。 |
{"userId": "123"} |
响应参数
|
字段名 |
字段类型 |
说明 |
|
|
公共响应参数 |
|||
|
Success |
boolean |
是否成功(true:成功,false:失败)。 |
|
|
Code |
string |
错误代码。 |
|
|
Message |
string |
错误消息。 |
|
|
RequestId |
string |
请求唯一标识。 |
|
|
Data |
object |
文本生成结果。 |
|
|
响应数据 |
|||
|
ResponseId |
string |
大模型的responseId。 |
|
|
SessionId |
string |
对话历史的会话唯一标识。 |
|
|
Text |
string |
本次模型调用的输出内容。 |
|
|
Usage |
list |
应用级别的token消耗 |
|
|
Usage[x].InputTokens |
int |
本次请求输入内容的token数。 |
|
|
Usage[x].OutputTokens |
int |
本次请求输出内容的token数。 |
|
|
Thoughts |
list |
插件或流程调用处理和模型推理过程信息。 |
|
|
Thoughts[x].Thought |
string |
大模型思考结果。 |
|
|
Thoughts[x].ActionType |
string |
大模型返回的执行步骤类型 api:执行API插件,response:返回最终结果。 |
|
|
Thoughts[x].ActionName |
string |
执行的action名称,比如文档检索、API插件。 |
|
|
Thoughts[x].Action |
string |
执行的步骤。 |
|
|
Thoughts[x].ActionInputStream |
string |
入参的流式结果。 |
|
|
Thoughts[x].ActionInput |
string |
插件的输入参数。 |
|
|
Thoughts[x].Response |
string |
大模型返回的结果。 |
|
|
Thoughts[x].Observation |
string |
检索或插件的返回结果。 |
|
示例
请求示例
curl -X "POST" "https://bailian.aliyuncs.com/v2/app/completions" \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'Authorization: Bearer <Token>' \
-H 'Accept-charset: utf-8' \
-d '{
"RequestId": "<RequestId>",
"AppId": "<AppId>",
"Prompt": "今天杭州的天气怎么样",
"HasThoughts": true,
"BizParams": {"userId": "123"}
}' --verbose
响应示例
{
"Success": true,
"Data": {
"ResponseId": "3c59d91**********37e98135f",
"Text": "今天杭州晴转多云。",
"Thoughts": [],
"Usage": [
{
"InputTokens": 10,
"OutputTokens": 9,
"ModelId": "bailian-plugin"
}
]
},
"RequestId": "f0a953cc-*************-f32e606985d7"
}
请求示例(流式SSE)
curl -X "POST" "https://bailian.aliyuncs.com/v2/app/completions" \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'Authorization: Bearer <Token>' \
-H 'Accept: text/event-stream' \
-H 'Accept-charset: utf-8' \
-d '{
"RequestId": "<RequestId>",
"AppId": "<AppId>",
"Prompt": "今天杭州的天气怎么样",
"HasThoughts": true,
"BizParams": {"userId": "123"}
}' --verbose
响应示例(流式SSE)
data: {
"Success": true,
"Data": {
"ResponseId": "3c59d91**********37e98135f",
"Text": "今天杭州晴转多云。",
"Thoughts": [],
"Usage": [
{
"InputTokens": 10,
"OutputTokens": 9,
"ModelId": "bailian-plugin"
}
]
},
"RequestId": "f0a953cc-*************-f32e606985d7"
}
请求示例(自然语言转SQL)
curl -X "POST" "https://bailian.aliyuncs.com/v2/app/completions" \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'Authorization: Bearer <Token>' \
-H 'Accept-charset: utf-8' \
-d '{
"RequestId": "<RequestId>",
"AppId": "<AppId>",
"Prompt": "浙江近五年GNP总和是多少",
"BizParams": {
"sqlInput": {
"synonym_infos": "国民生产总值: GNP|Gross National Product",
"schema_infos": [
{
"columns": [
{
"col_caption": "地区",
"col_name": "region"
},
{
"col_caption": "年份",
"col_name": "year"
},
{
"col_caption": "国民生产总值",
"col_name": "gross_national_product"
}
],
"table_id": "t_gross_national_product_1",
"table_desc": "国民生产总值表"
}
]
}
}
}' --verbose
响应示例(自然语言转SQL)
{
"Success": true,
"Data": {
"ResponseId": "1b595831****************4733ef5d41",
"Text": "SELECT SUM(gross_national_product) AS 浙江近五年国民生产总值总和 FROM t_gross_national_product_1 WHERE region = '浙江' AND year >= YEAR(CURDATE()) - 5;",
"Usage": [
{
"InputTokens": 194,
"OutputTokens": 45,
"ModelId": "bailian_nl2sql"
}
]
},
"RequestId": "f0a953cc-*************-f32e606985d7"
}
在调用自然语言转SQL应用时,您可以在阿里云百炼控制台测试窗使用“表模式”来编辑数据库Schema信息,然后点击“Code模式”生成JSON格式数据,然后将内容替换到sqlInput中。测试窗生成的JSON格式的Scahema, 在传递到BizParams时,需要添加一层“sqlInput”的JSON数据结构。