资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

对话Chat V2

本文介绍了对话Chat V2版本相关API及使用。

功能介绍

调用本接口,发起一次对话请求。

支持模型列表

模型名称 模型版本 model 参数值 是否支持function call功能
ERNIE 4.0 ERNIE-4.0-8K-Latest ernie-4.0-8k-latest
ERNIE 4.0 ERNIE-4.0-8K-Preview ernie-4.0-8k-preview
ERNIE 4.0 ERNIE-4.0-8K ernie-4.0-8k
ERNIE 4.0 Turbo ERNIE-4.0-Turbo-8K-Latest ernie-4.0-turbo-8k-latest
ERNIE 4.0 Turbo ERNIE-4.0-Turbo-8K-Preview ernie-4.0-turbo-8k-preview
ERNIE 4.0 Turbo ERNIE-4.0-Turbo-8K ernie-4.0-turbo-8k
ERNIE 4.0 Turbo ERNIE-4.0-Turbo-128K ernie-4.0-turbo-128k
ERNIE 3.5 ERNIE-3.5-8K-Preview ernie-3.5-8k-preview
ERNIE 3.5 ERNIE-3.5-8K ernie-3.5-8k
ERNIE 3.5 ERNIE-3.5-128K ernie-3.5-128k
ERNIE Speed ERNIE-Speed-8K ernie-speed-8k
ERNIE Speed ERNIE-Speed-128K ernie-speed-128k
ERNIE Speed ERNIE-Speed-Pro-128K ernie-speed-pro-128k
ERNIE Lite ERNIE-Lite-8K ernie-lite-8k
ERNIE Lite ERNIE-Lite-Pro-128K ernie-lite-pro-128k
ERNIE Tiny ERNIE-Tiny-8K ernie-tiny-8k
ERNIE Character ERNIE-Character-8K ernie-char-8k
ERNIE Character ERNIE-Character-Fiction-8K ernie-char-fiction-8k
ERNIE-Novel-8K ERNIE-Novel-8K ernie-novel-8k



鉴权说明

  • 调用本文API,需使用API Key鉴权方式。使用API Key鉴权调用API流程,具体调用流程,请查看认证鉴权

请求结构

POST /v2/chat/completions HTTP/1.1
Host: qianfan.baidubce.com
Authorization: authorization string
{
    "model": "ernie-3.5-8k",
    "messages": [
        {
            "role": "system",
            "content": "平台助手"
        },
        {
            "role": "user",
            "content": "你好"
        }
    ]
}

请求头域

名称 类型 必填 描述
Content-Type string 固定值application/json
Authorization string 用于验证请求合法性的认证信息,说明:
(1)该字段值,需通过字符串BearerAPI KeyBearerToken值拼接组成,示例值如Bearer bce-v3/ALTAK-*********/614fb**********
(2)【推荐】API Key值使用说明:
· 通过在控制台-系统管理与统计-API Key管理页面,创建并获取API Key
· API Key值永久有效
(3)BearerToken使用说明:
· 通过调用创建BearerToken接口获取,示例值如bce-v3/ALTAK-*********/614fb**********
· BearerToken值有效期最小为5分钟,最长有效期为30天;如果设置超过该值,有效期最大值仍为30天,即在调用创建BearerToken接口时,最大设置expireInSeconds=25920000;如果不设置有效期,默认为30分钟,即expireInSeconds=1800
appid string V2版本接口对应的应用ID,说明:
(1)可以通过控制台-模型服务-应用接入页面,在应用列表查看应用ID,如下图所示:
image.png
(2)如果无应用,需要先创建V2版本服务对应的应用,在控制台-模型服务-应用接入页面创建应用。
X-Request-Id string 用户入参X-Request-Id,则返回的X-Request-Id头是用户的入参值

请求参数

名称 类型 必填 描述
model string 模型ID,可选值参考本文支持模型列表
messages List<message> 聊天上下文信息。说明:
(1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话,例如:
· 1个成员示例,"messages": [ {"role": "user","content": "你好"}]
· 3个成员示例,"messages": [ {"role": "user","content": "你好"},{"role":"assistant","content":"需要什么帮助"},{"role":"user","content":"自我介绍下"}]
(2) 最后一个message为当前请求的信息,前面的message为历史对话信息
(3)messages的role说明:
① 第一条message的role必须是user或system
② 最后一条message的role必须是user或tool
③ 如果未使用function call功能:
· 当第一条message的role为user,role值需要依次为user -> assistant -> user...,即奇数位message的role值必须为user或function,偶数位message的role值为assistant,例如:示例中message中的role值分别为user、assistant、user、assistant、user;奇数位(红框)message中的role值为user,即第1、3、5个message中的role值为user;偶数位(蓝框)值为assistant,即第2、4个message中的role值为assistant
image.png
· 当第一条message的role为system,role值需要依次为system -> user-> assistant -> user...
④ 如果使用function call功能
· 当第一条message的role为user,role值需要依次为user -> assistant -> user/tool ...
· 当第一条message的role为system,role值需要依次为system -> user/tool -> assistant -> user/tool ...
· 注意,支持连续多条role=tool的消息。当开启函数并行调用即parallel_tool_calls=true时,可能会返回多个tool_call,每个tool_call需要对应到一条role=tool的消息来提供函数调用结果。例如:示例中message中的role值分别为user、assistant、user、assistant、tool、tool;第4个message中的role值为assistant,触发了函数并行调用,返回了两个tool_call,需要连续两条role=tool的消息提供函数调用结果,即第5、6个消息message中的role值为tool
image.png
(4)message中的content总长度不能超过对应model的输入字符限制和输入tokens限制,请查看各模型上下文长度说明
stream bool 是否以流式接口的形式返回数据,说明:
(1)beam search模型只能为false
(2)默认false
stream_options stream_options 流式响应的选项,当字段stream为true时,该字段生效
temperature float 说明:
(1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定
(2)默认0.95,范围 (0, 1.0],不能为0
top_p float 说明:
(1)影响输出文本的多样性,取值越大,生成文本的多样性越强
(2)默认0.7,取值范围 [0, 1.0]
penalty_score float 通过对已生成的token增加惩罚,减少重复生成的现象。说明:
(1)值越大表示惩罚越大
(2)默认1.0,取值范围:[1.0, 2.0]
max_completion_tokens int 指定模型最大输出token数,说明:
(1)取值范围[2, 2048]
seed int 说明:
(1)取值范围: (0,2147483647‌),会由模型随机生成,默认值为空
(2)如果指定,系统将尽最大努力进行确定性采样,以便使用相同seed和参数的重复请求返回相同的结果
stop List<string> 生成停止标识,当模型生成结果以stop中某个元素结尾时,停止文本生成。说明:
(1)每个元素长度不超过20字符
(2)最多4个元素
user string 表示最终用户的唯一标识符
frequency_penalty float 说明:
(1)正值根据迄今为止文本中的现有频率对新token进行惩罚,从而降低模型逐字重复同一行的可能性
(2)取值范围:[-2.0, 2.0]
(3)支持以下模型:
· ernie-speed-8k
· ernie-speed-128k
· ernie-speed-pro-128k
· ernie-lite-8k
· ernie-lite-pro-128k
· ernie-tiny-8k
· ernie-char-8k
· ernie-char-fiction-8k
presence_penalty float 说明:
(1)正值根据token记目前是否出现在文本中来对其进行惩罚,从而增加模型谈论新主题的可能性
(2)取值范围:[-2.0, 2.0]
(3)支持以下模型:
· ernie-speed-8k
· ernie-speed-128k
· ernie-speed-pro-128k
· ernie-lite-8k
· ernie-lite-pro-128k
· ernie-tiny-8k
· ernie-char-8k
· ernie-char-fiction-8k
tools List(Tool) 一个可触发函数的描述列表,支持模型请参考本文支持模型列表-是否支持function call功能
tool_choice string / tool_choice 说明:
(1)支持模型请参考本文支持模型列表-是否支持function call功能
(2)string类型,可选值如下:
· none:不希望模型调用任何function,只生成面向用户的文本消息
· auto:模型会根据输入内容自动决定是否调用函数以及调用哪些function
· required:希望模型总是调用一个或多个function
(3)当为tool_choice类型,指在函数调用场景下,提示大模型选择指定的函数,指定的函数名必须在tools中存在
parallel_tool_calls bool 说明:
(1)支持模型请参考本文支持模型列表-是否支持function call功能
(2)可选值:
· true:表示开启函数并行调用,默认开启
· false:表示关闭函数并行调用
web_search web_search 搜索增强的选项,说明:
(1)默认不传关闭
(2)支持以下模型:
· ernie-4.0-8k-latest
· ernie-4.0-8k-preview
· ernie-4.0-8k
· ernie-4.0-turbo-8k-latest
· ernie-4.0-turbo-8k-preview
· ernie-4.0-turbo-8k
· ernie-4.0-turbo-128k
· ernie-3.5-8k-preview
· ernie-3.5-8k
· ernie-3.5-128k
response_format response_format 指定响应内容的格式
metadata map<string,string> 说明:
(1)元素个数最大支持16个
(2)key和value必须都是string类型

响应头域

部分如下。

名称 描述
X-Ratelimit-Limit-Requests 一分钟内允许的最大请求次数
X-Ratelimit-Limit-Tokens 一分钟内允许的最大tokens消耗,包含输入tokens和输出tokens
X-Ratelimit-Remaining-Requests 达到RPM速率限制前,剩余可发送的请求数配额,如果配额用完,将会在0-60s后刷新
X-Ratelimit-Remaining-Tokens 达到TPM速率限制前,剩余可消耗的tokens数配额,如果配额用完,将会在0-60s后刷新

响应参数

名称 类型 描述
id string 本次请求的唯一标识,可用于排查问题
object string 回包类型 chat.completion:多轮对话返回
created int 时间戳
model string 说明:
(1)如果是预置服务,返回模型ID
(2)如果是sft后部署的服务,该字段返回model:modelversionID,model与请求参数相同,是本次请求使用的大模型ID;modelversionID用于溯源
choices choices stream=false时,返回内容
choices sse_choices stream=true时,返回内容
usage usage token统计信息,说明:
(1)同步请求默认返回
(2)流式请求默认不返回,当开启stream_options.include_usage=true时,会在最后一个chunk返回实际内容,其他chunk返回null
search_results search_results 搜索结果列表

请求示例

curl --location 'https://qianfan.baidubce.com/v2/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
--data '{
    "model": "ernie-3.5-8k",
    "messages": [
        {
            "role": "system",
            "content": "平台助手"
        },
        {
            "role": "user",
            "content": "你好"
        }
    ]
}'
import requests
import json

def main():
    url = "https://qianfan.baidubce.com/v2/chat/completions"
    
    payload = json.dumps({
        "model": "ernie-3.5-8k",
        "messages": [
            {
                "role": "system",
                "content": "平台助手"
            },
            {
                "role": "user",
                "content": "你好"
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer bce-v3/ALTAK-*********/614fb**********'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.text)
    

if __name__ == '__main__':
    main()

响应示例

{
    "id":"as-9ki4hm6kkp",
    "object":"chat.completion",
    "created":1731318503,
    "model":"ernie-3.5-8k",
    "choices":[
        {
            "index":0,
            "message":{
                "role":"assistant",
                "content":"您好!很高兴与您交流。您提到的“平台助手”可能指的是多种不同的工具或应用程序,它们通常旨在帮助用户更有效地使用某个平台或完成特定任务。\n\n例如,在某些电商平台上,平台助手可能是一个提供自动化客服、订单管理、数据分析等功能的工具,旨在帮助卖家提高运营效率。在社交媒体平台上,平台助手可能是一个用于管理多个账号、发布内容、监测趋势等的工具。\n\n如果您对某个特定平台的助手有更具体的兴趣或问题,请提供更多上下文或详细信息,以便我能给出更准确的回答。\n\n此外,如果您是在寻找一个能够帮助您管理多个平台账号、整合不同平台信息的通用型助手,那么市场上确实存在一些这样的工具,它们通常被称为“社交媒体管理工具”、“多平台管理工具”等。这些工具可以帮助您节省时间和精力,提高工作效率。\n\n总之,“平台助手”是一个比较宽泛的概念,其具体含义和功能取决于您所指的特定平台和应用场景。如有需要,请随时向我提问。"
            },
            "finish_reason":"normal",
            "flag":0
       }
    ],
    "usage":{
        "prompt_tokens":1,
        "completion_tokens":196,
        "total_tokens":197
    }
 }

function call示例

  • 第一次请求
curl --location 'https://qianfan.baidubce.com/v2/chat/completions' \
--header 'Authorization: Bearer bce-v3/ALTAK-CM0****SU/a8cfadb****8' \
--header 'Content-Type: application/json' \
--data '{
	"model": "ernie-4.0-8k",
	"messages": [{
		"role": "user",
		"content": "查一下上海和北京现在的天气"
	}],
	"tools": [{
		"type": "function",
		"function": {
			"name": "get_current_weather",
			"description": "天气查询工具",
			"parameters": {
				"properties": {
					"location": {
						"description": "地理位置,精确到区县级别",
						"type": "string"
					},
					"time": {
						"description": "时间,格式为YYYY-MM-DD",
						"type": "string"
					}
				},
                "required": ["location", "time"],
				"type": "object"
			}
		}
	}],
	"stream": false,
	"tool_choice": "auto"
}'
  • 第一次响应
{
	"id": "as-0zapnuh7b4",
	"object": "chat.completion",
	"created": 1731502789,
	"model": "ernie-4.0-8k",
	"choices": [{
		"index": 0,
		"message": {
			"role": "assistant",
			"content": "",
			"tool_calls": [{
				"id": "19c443b42d3f3000",
				"type": "function",
				"function": {
					"name": "get_current_weather",
					"arguments": "{\"location\": \"上海\", \"time\": \"2024-11-13\"}"
				}
			}, {
				"id": "19c443b42d3f3001",
				"type": "function",
				"function": {
					"name": "get_current_weather",
					"arguments": "{\"location\": \"北京\", \"time\": \"2024-11-13\"}"
				}
			}]
		},
		"finish_reason": "tool_calls",
		"flag": 0
	}],
	"usage": {
		"prompt_tokens": 5,
		"completion_tokens": 52,
		"total_tokens": 57
	}
}
  • 第二次请求
curl --location 'https://qianfan.baidubce.com/v2/chat/completions' \
--header 'Authorization: Bearer bce-v3/ALTAK-CBb******U/a8cfa******a468' \
--header 'Content-Type: application/json' \
--data '{
    "model": "ernie-4.0-8k",
	"messages": [
		{
			"role": "user",
			"content": "查一下上海和北京现在的天气"
		}, 
        {
			"role": "assistant",
			"content": "",
			"tool_calls": [
                {
    				"id": "19c443b42d3f3000",
    				"type": "function",
    				"function": {
    					"name": "get_current_weather",
    					"arguments": "{\"location\": \"上海\", \"time\": \"2024-11-13\"}"
    				}
			     }, 
                 {
    				"id": "19c443b42d3f3001",
    				"type": "function",
    				"function": {
    					"name": "get_current_weather",
    					"arguments": "{\"location\": \"北京\", \"time\": \"2024-11-13\"}"
    				}
			    }
             ]
		}, 
        {
			"role": "tool",
			"tool_call_id": "19c443b42d3f3000",
			"name": "get_current_weather",
			"content": "{\"temperature\": \"25\", \"unit\": \"摄氏度\", \"description\": \"上海\"}"
		}, 
        {
			"role": "tool",
			"tool_call_id": "19c443b42d3f3001",
			"name": "get_current_weather",
			"content": "{\"temperature\": \"20\", \"unit\": \"摄氏度\", \"description\": \"北京\"}"
		}
	],
	"tools": [{
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "天气查询工具",
            "parameters": {
                "properties": {
                    "location": {
                        "description": "地理位置,精确到区县级别",
                        "type": "string"
                    },
                    "time": {
                        "description": "时间,格式为YYYY-MM-DD",
                        "type": "string"
                    }
                },
                "required": ["location", "time"],
                "type": "object"
            }
        }
    }],
	"stream": false,
    "tool_choice" : "auto"
}'
  • 第二次响应
{
    "id":"as-t7xfiqidm7",
    "object":"chat.completion",
    "created":1731502895,
    "model":"ernie-4.0-8k",
    "choices":[{
        "index":0,
        "message":
            {
                "role":"assistant",
                "content":"根据您提供的信息,当前上海的天气温度为25摄氏度,而北京的天气温度为20摄氏度。如果您需要更详细的天气描述或其他相关信息,请随时告诉我。"
            },
         "finish_reason":"normal","flag":0
    }],
    "usage":{
        "prompt_tokens":44,
        "completion_tokens":33,
        "total_tokens":77
    }
}

错误码

如果请求错误,服务器返回的JSON文本包含以下参数。

名称 描述
code 错误码
msg 错误描述信息,帮助理解和解决发生的错误
type 错误类型

更多相关错误码,请查看推理服务V2版本错误码说明

上一篇
认证鉴权
下一篇
阅读助手插件