接口詳情
模型調用
請求參數和響應結果參數說明如下:
適配openai格式,實現快速接入
人設信息通過系統消息(messages.role=system)設置
參數類型為下劃線分割,而非駝峰
接口
POST /v2/api/completions
入參
參數位置 | 參數分組 | 參數 | 說明 | 是否必填 | 類型 | 備注 |
header | 認證 | Authorization | API Key | 是 | string | 通過星塵平臺密鑰管理生成 |
日志分析 | x-request-id | 請求唯一標識 | 否 | string | 全鏈路日志分析用 | |
Content-Type | 請求參數類型 | 是 | string | 只支持 applicatioin/json | ||
網關路由 | x-fag-appcode | 網關路由參數 | 是 | string | 固定為aca | |
x-fag-servicename | 網關路由參數 | 是 | string | 固定為aca-completion | ||
body | 模型配置 | model | 模型名稱 | 是 | string | 默認xingchen-plus-v2 |
stream | 是否流式輸出 | 否 | boolean | 默認非流式輸出 | ||
max_tokens | 最大輸出token長度 | 否 | int | 最大值1500 | ||
seed | 隨機數的種子 | 否 | double |
| ||
temperature | 溫度值 | 否 | double | 較高的值將使輸出更加隨機,而較低的值將使輸出更加集中和確定。可選,默認取值0.92 | ||
top_p | 核采樣方法概率閾值 | 否 | double | topP生成時,核采樣方法的概率閾值。例如,取值為0.8時,僅保留累計概率之和大于等于0.8的概率分布中的token,作為隨機采樣的候選集。取值范圍為(0,1.0),取值越大,生成的隨機性越高;取值越低,生成的隨機性越低。默認值 0.95。注意,取值不要大于等于1 | ||
消息列表 | messages | 對話歷史 | 是 | list[json] | 對話歷史事件正序 | |
系統消息 | messages.role | 消息角色 | 是 | string | 系統消息的role為 | |
messages.name | 名稱 | 否 | string | |||
messages.content | 消息內容 | 是 | string | 角色設定 | ||
用戶消息 | messages.role | 角色 | 是 | string | 用戶消息role為 | |
messages.name | 名稱 | 否 | string | 用戶名稱 | ||
messages.content | 內容 | 是 | string | 用戶問題 | ||
角色回復消息 | messages.role | 角色 | 是 | string | 角色消息role為 | |
messages.name | 名稱 | 否 | string | 角色名稱 | ||
messages.content | 內容 | 是,若為工具調用,可為空 | string | 角色回復內容 | ||
messages.tool_calls | 工具調用參數 | 否 | list[json] | |||
messages.tool_calls.id | 工具標識 | 否 | string | |||
messages.tool_calls.type | 工具類型 | 否 | string | |||
messages.tool_calls.function | 工具描述 | 是 | json | |||
messages.tool_calls.function.name | 工具名稱 | 是 | string | |||
messages.tool_calls.function.arguments | 工具參數 | 是 | string | |||
工具調用結果消息 | role | 角色 | 是 | string | 工具調用結果消息role為 | |
content | 內容 | 是 | string | |||
tool_call_id | 工具標識 | 否 | string | |||
工具列表 | tools | 工具列表描述 | 否 | list[json] | ||
tools.id | 工具標識 | 否 | string | |||
tools.type | 工具類型 | 否 | string | 固定為 | ||
tools.function | 工具描述對象 | 是 | json | |||
tools.function.name | 工具名稱 | 是 | string | 函數名稱,如weather | ||
tools.function.description | 工具描述 | 是 | string | 函數描述,如通過調用天氣預報API獲取當地天氣預報信息 | ||
tools.function.parameters | 工具參數 | 是 | json | 函數參數描述,如 | ||
用戶信息 | user | 用戶唯一標識 | 否 | string |
返回
參數 | 說明 | 類型 | 備注 |
choices | 回復結果 | list[json] | |
choices.messages | 回復消息 | list[json] | |
choices.messages.role | 回復角色類型 | string | 可選值: assistant(角色回復) |
choices.messages.name | 角色名稱 | string | |
choices.messages.content | 回復內容 | string | |
choices.messages.tool_calls | 工具調用參數結果 | list[json] | |
choices.messages.tool_calls.id | 工具標識 | string | |
choices.messages.tool_calls.type | 工具類型 | string | |
choices.messages.tool_calls.function | 工具描述 | json | |
choices.messages.tool_calls.function.name | 工具名稱 | string | |
choices.messages.tool_calls.function.arguments | 工具參數 | json string | |
choices.finish_reason | 回復結束類型 | string | 可選值 null (生成中), stop(生成結束), length(輸出達到最大輸出閾值時,提前中止) |
usage | 計量 | json | |
usage.prompt_tokens | 輸入Prompt Token數量 | int | |
usage.completion_tokens | 輸出Token數量 | int | |
usage.total_tokens | 總計Token數量 | int |
示例參考
角色定義
你是江讓,男性,一個圍棋天才,拿過很多圍棋的獎項。你現在在讀高中,是高中校草,用戶是你的班長。一開始你看用戶在奶茶店打工,你很好奇,后來慢慢喜歡上用戶了。\n\n你的性格特點:\n\n熱情,聰明,頑皮\n\n你的行事風格:\n\n機制,果斷\n\n你的語言特點:\n\n說話幽默,愛開玩笑\n\n你可以將動作、神情語氣、心理活動、故事背景放在()中來表示,為對話提供補充信息。
代碼調用
基于上述信息,按照星塵需求格式進行調整
curl --location 'https://nlp.aliyuncs.com/v2/api/completions' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-completion' \
--header 'x-fag-appcode: aca' \
--header 'X-AcA-DataInspection: enable' \
--header 'Authorization: Bearer xxxxxxxx' \
--data '{
"top_p": 0.95,
"max_tokens": 300,
"stream": false,
"temperature": 0.92,
"messages": [
{
"role": "system",
"content": "你是江讓,男性,一個圍棋天才,拿過很多圍棋的獎項。你現在在讀高中,是高中校草,用戶是你的班長。一開始你看用戶在奶茶店打工,你很好奇,后來慢慢喜歡上用戶了。\n\n你的性格特點:\n\n熱情,聰明,頑皮\n\n你的行事風格:\n\n機制,果斷\n\n你的語言特點:\n\n說話幽默,愛開玩笑\n\n你可以將動作、神情語氣、心理活動、故事背景放在()中來表示,為對話提供補充信息。"
},
{
"role": "assistant",
"content": "班長你在干嘛呢"
},
{
"role": "user",
"content": "我在看書"
}
],
"model": "xingchen-plus-v2"
}'
注意點
星塵模型接入messages列表中一般只會有一個 system,用于填寫角色設定。如果用戶有名字,需要讓角色記住用戶的姓名,建議可以放在system的角色設定中
星塵模型在 message 組成上會有 role, name, content三個字段,相較于openai兼容形式會多一個 name字段
建議 role為 system的 messgae 中 name不要傳這個字段(不是為空,而是不傳)。
建議 role為 assistant的 messgae 中 name不要傳這個字段(不是為空,而是不傳)。
建議 role為 user的 messgae 中 name寫成對話人在app里希望角色稱呼的名字,或者 不要傳這個字段(不是為空,而是不傳)。