ERNIE-Bot-4是百度自行研发的大语言模型,覆盖海量中文数据,具有更强的对话问答、内容创作生成等能力。本文介绍了千帆相关API及应用。

创建chat

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

注意事项

本文接口返回不支持图片内容。

请求说明

基本信息

请求地址: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro

请求方式: POST

Header参数

名称
Content-Typeapplication/json

Query参数

名称类型必填描述
access_tokenstring通过API Key和Secret Key获取的access_token,参考Access Token获取

Body参数

名称类型必填描述
messagesList(message)聊天上下文信息。说明:
(1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话
(2)最后一个message为当前请求的信息,前面的message为历史对话信息
(3)必须为奇数个成员,成员中message的role必须依次为user(or function)、assistant
(4)最后一个message的content长度(即此轮对话的问题)不能超过3000 token;如果messages中content总长度大于3000 token,系统会依次遗忘最早的历史会话,直到content的总长度不超过3000 token
functionsList(function)一个可触发函数的描述列表
temperaturefloat说明:
(1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定
(2)默认0.95,范围 (0, 1.0],不能为0
(3)建议该参数和top_p只设置1个
(4)建议top_p和temperature不要同时更改
top_pfloat说明:
(1)影响输出文本的多样性,取值越大,生成文本的多样性越强
(2)默认0.8,取值范围 [0, 1.0]
(3)建议该参数和temperature只设置1个
(4)建议top_p和temperature不要同时更改
penalty_scorefloat通过对已生成的token增加惩罚,减少重复生成的现象。说明:
(1)值越大表示惩罚越大
(2)默认1.0,取值范围:[1.0, 2.0]
streambool是否以流式接口的形式返回数据,默认false
systemstring模型人设,主要用于人设设定,例如,你是xxx公司制作的AI助手,说明:
(1)长度限制1024个字符
(2)如果使用functions参数,不支持设定人设system
user_idstring表示最终用户的唯一标识符,可以监视和检测滥用行为,防止接口恶意调用

message说明

名称类型必填描述
rolestring当前支持以下:
user: 表示用户
assistant: 表示对话助手
function: 表示函数
contentstring对话内容,当前message存在function_call时可以为空,其他场景不能为空
namestringmessage作者;当role=function时,必填,且是响应内容中function_call中的name
function_callfunction_call函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入

function说明

名称类型必填描述
namestring函数名
descriptionstring函数描述
parametersobject函数请求参数,说明:
(1)JSON Schema 格式,参考JSON Schema描述
(2)如果函数没有请求参数,parameters值格式如下:
{"type": "object","properties": {}}
responsesobject函数响应参数,JSON Schema 格式,参考JSON Schema描述
examplesList(example)function调用的一些历史示例

example说明

名称类型必填描述
rolestring当前支持以下:
user: 表示用户
assistant: 表示对话助手
function: 表示函数
contentstring对话内容,当前message存在function_call时可以为空,其他场景不能为空
namestringmessage作者;当role=function时,必填,且是响应内容中function_call中的name
function_callfunction_call函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入

function_call说明

名称类型必填描述
namestring触发的function名
argumentsstring请求参数
thoughtsstring模型思考过程

响应说明

名称类型描述
idstring本轮对话的id
objectstring回包类型
chat.completion:多轮对话返回
createdint时间戳
sentence_idint表示当前子句的序号。只有在流式接口模式下会返回该字段
is_endbool表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段
is_truncatedbool当前生成的结果是否被截断
resultstring对话返回结果
need_clear_historybool表示用户输入是否存在安全,是否关闭当前会话,清理历史会话信息
true:是,表示用户输入存在安全风险,建议关闭当前会话,清理历史会话信息
false:否,表示用户输入无安全风险
ban_roundint当need_clear_history为true时,此字段会告知第几轮对话有敏感信息,如果是当前问题,ban_round=-1
usageusagetoken统计信息,token数 = 汉字数+单词数*1.3 (仅为估算逻辑)
function_callfunction_call由模型生成的函数调用,包含函数名称,和调用参数

usage说明

名称类型描述
prompt_tokensint问题tokens数
completion_tokensint回答tokens数
total_tokensinttokens总数
pluginsList(plugin_usage)plugin消耗的tokens

plugin_usage说明

名称类型描述
namestringplugin名称,chatFile:chatfile插件消耗的tokens
parse_tokensint解析文档tokens
abstract_tokensint摘要文档tokens
search_tokensint检索文档tokens
total_tokensint总tokens

function_call说明

名称类型描述
namestring触发的function名
thoughtsstring模型思考过程
argumentsstring请求参数

注意 :同步模式和流式模式,响应参数返回不同,详细内容参考示例描述。

  • 同步模式下,响应参数为以上字段的完整json包。
  • 流式模式下,各字段的响应参数为 data: {响应参数}。

示例

请求示例(单轮)


```bash label=bash

# 步骤一,获取access_token,替换下列示例中的API Key与Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]'

# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的”调用接口获取的access_token“
curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=[步骤一调用接口获取的access_token]' -d '{
   "messages": [
    {"role":"user","content":"介绍一下你自己"}
   ]
}' | iconv -f utf-8 -t utf-8
```

```Python label=Python
import requests
import json

def get_access_token():
    """
    使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
    """
        
    url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
    
    payload = json.dumps("")
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    return response.json().get("access_token")

def main():
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + get_access_token()
    
    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": "介绍一下你自己"
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.text)
    

if __name__ == '__main__':
    main()

```

响应示例(单轮)

```JSON label=JSON
HTTP/1.1 200 OK
Date: Thu, 23 Mar 2023 03:12:03 GMT
Content-Type: application/json;charset=utf-8
Statement: AI-generated

{
  "id": "as-bcmt5ct4iy",
  "object": "chat.completion",
  "created": 1680167072,
  "result": "您好,我是百度研发的知识增强大语言模型,中文名是文心一言,我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。",
  "is_truncated":false,
  "need_clear_history": false,
  "usage": {
    "prompt_tokens": 7,
    "completion_tokens": 67,
    "total_tokens": 74
  }
}
```

请求示例(多轮)


```bash label=bash
# 步骤一,获取access_token,替换下列示例中的API Key与Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]'

# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的”调用接口获取的access_token“
curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=[步骤一调用接口获取的access_token]' -d '{
  "messages": [
    {"role":"user","content":"请介绍一下你自己"},
    {"role":"assistant","content":"我是百度公司开发的人工智能语言模型,我的中文名是文心一言,可以协助您完成范围广泛的任务并提供有关各种主题的信息,比如回答问题,提供定义和解释及建议。如果您有任何问题,请随时向我提问。"},
    {"role":"user","content": "我在上海,周末可以去哪里玩?"},
    {"role":"assistant","content": "上海是一个充满活力和文化氛围的城市,有很多适合周末游玩的地方。以下是几个值得推荐的地方:\n\n1. 上海科技馆:上海科技馆是中国大陆最大的科技馆之一,有许多互动展览和科学实验室,可以让您了解科技的发展历史和最新成果。\n2. 上海博物馆:上海博物馆是一座集艺术、历史和文化于一体的博物馆,有许多精美的艺术品和文物,可以让您深入了解中国和世界的文化历史。\n3. 外滩:外滩是上海的标志性景点之一,有许多高楼大厦和繁华的商业街区,是欣赏黄浦江美景和城市风貌的好去处。\n4. 上海迪士尼乐园:上海迪士尼乐园是世界上最大的迪士尼主题公园之一,有许多精彩的游乐项目和演出,可以让您尽情享受娱乐和欢乐。\n5. 上海野生动物园:上海野生动物园是一个以自然保护为主题的野生动物园,有许多珍稀动物和植物,可以让您近距离接触大自然。\n\n这些地方都是上海周末游玩的好去处,可以根据自己的兴趣和需求选择合适的行程。"},
    {"role":"user","content": "上海有哪些美食?"}
  ]
}'  | iconv -f utf-8 -t utf-8
```

```Python label=Python
import requests
import json

def get_access_token():
    """
    使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
    """
        
    url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
    
    payload = json.dumps("")
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    return response.json().get("access_token")


def main():
        
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + get_access_token()
    
    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": "请介绍一下你自己"
            },
            {
                "role": "assistant",
                "content": "我是百度公司开发的人工智能语言模型,我的中文名是文心一言,可以协助您完成范围广泛的任务并提供有关各种主题的信息,比如回答问题,提供定义和解释及建议。如果您有任何问题,请随时向我提问。"
            },
            {
                "role": "user",
                "content": "我在上海,周末可以去哪里玩?"
            },
            {
                "role": "assistant",
                "content": "上海是一个充满活力和文化氛围的城市,有很多适合周末游玩的地方。以下是几个值得推荐的地方:\n\n1. 上海科技馆:上海科技馆是中国大陆最大的科技馆之一,有许多互动展览和科学实验室,可以让您了解科技的发展历史和最新成果。\n2. 上海博物馆:上海博物馆是一座集艺术、历史和文化于一体的博物馆,有许多精美的艺术品和文物,可以让您深入了解中国和世界的文化历史。\n3. 外滩:外滩是上海的标志性景点之一,有许多高楼大厦和繁华的商业街区,是欣赏黄浦江美景和城市风貌的好去处。\n4. 上海迪士尼乐园:上海迪士尼乐园是世界上最大的迪士尼主题公园之一,有许多精彩的游乐项目和演出,可以让您尽情享受娱乐和欢乐。\n5. 上海野生动物园:上海野生动物园是一个以自然保护为主题的野生动物园,有许多珍稀动物和植物,可以让您近距离接触大自然。\n\n这些地方都是上海周末游玩的好去处,可以根据自己的兴趣和需求选择合适的行程。"
            },
            {
                "role": "user",
                "content": "上海有哪些美食?"
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.text)
    

if __name__ == '__main__':
    main()


```

响应示例(多轮)

```JSON label=JSON
HTTP/1.1 200 OK
Date: Mon, 12 Apr 2021 06:27:55 GMT
Content-Type: application/json;charset=utf-8
Statement: AI-generated

{
  "id": "as-1tbbc0x5af",
  "object": "chat.completion",
  "created": 1680166551,
  "result": "2023年4月2日上海气温13~21℃,多云转阴,东风3-4级,空气质量良,空气质量指数55。\n\n\n\n近7日天气信息:\n\n2023-03-29:阴转小雨,11~17℃,东北风<3级,空气质量良。\n\n2023-03-30:小雨转阴,10~14℃,东风3-4级,空气质量良。\n\n2023-03-31:多云,12~18℃,东风3-4级,空气质量优。\n\n2023-04-01:多云转晴,11~20℃,东南风3-4级,空气质量良。\n\n2023-04-02:多云转阴,13~21℃,东风3-4级,空气质量良。\n\n2023-04-03:阴转中雨,15~18℃,东南风4-5级,空气质量良。\n\n2023-04-04:中雨转小雨,10~17℃,南风5-6级,空气质量优。\n\n2023-04-05:阴,9~14℃,西北风3-4级,空气质量优。",
  "is_truncated":false,
  "need_clear_history": false,
  "usage": {
    "prompt_tokens": 470,
    "completion_tokens": 198,
    "total_tokens": 668
  }
}
```

请求示例(流式)


```bash label=bash
# 步骤一,获取access_token,替换下列示例中的API Key与Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]'

# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的”调用接口获取的access_token“
curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=[步骤一调用接口获取的access_token]' -d '{
  "messages": [
    {"role":"user", "content": "给我推荐一些自驾游路线"}
  ],
  "stream": true
}'
```

```bash label=Python
import requests
import json

def get_access_token():
    """
    使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
    """
        
    url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
    
    payload = json.dumps("")
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    return response.json().get("access_token")


def main():
        
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + get_access_token()
    
    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": "给我推荐一些自驾游路线"
            }
        ],
         "stream": True
    })
    headers = {
        'Content-Type': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload, stream=True)
    
    for line in response.iter_lines():
        print(line)
    

if __name__ == '__main__':
    main()

```

响应示例(流式)

HTTP/1.1 200 OK
Date: Mon, 12 Apr 2021 06:27:55 GMT
Content-Type: text/event-stream;charset=utf-8
Cache-Control: no-cache
Statement: AI-generated

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166793,"sentence_id":0,"is_end":false,is_truncated":false,"result":"以下是一些适合自驾游的路线推荐:\n\n1.","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":16,"total_tokens":27}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166794,"sentence_id":1,"is_end":false,is_truncated":false,"result":" 中国大陆最美的景观大道:川藏线,从成都出发,沿着川藏公路一路向西,经过稻城亚丁、理塘、巴塘、芒康等美景,最终到达拉萨。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":50,"total_tokens":77}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166795,"sentence_id":2,"is_end":false,"is_truncated":false,"result":"\n2. 丝绸之路:这是一条贯穿中国东西部的公路,从上海出发,经过西安、兰州、乌鲁木齐等城市,最终到达喀什。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":43,"total_tokens":120}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166796,"sentence_id":3,"is_end":false,"is_truncated":false,"result":"沿途可以欣赏到中国北方和南方的不同景色。\n3. 西北大环线:从成都出发,经过都江堰、青城山、丹巴、塔公草原、新都桥等景点,最终到达西宁。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":56,"total_tokens":176}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166799,"sentence_id":4,"is_end":false,"is_truncated":false,"result":"这条路线可以领略到中国西北地区的壮美风光。\n4. 东北环线:从沈阳出发,经过长春、吉林、延吉等城市,最终到达哈尔滨。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":48,"total_tokens":224}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166800,"sentence_id":5,"is_end":false,"is_truncated":false,"result":"沿途可以欣赏到中国东北地区的广阔草原和森林。\n5. 西南环线:从成都出发,经过雅安、康定、理塘、稻城亚丁等景点,最终到达香格里拉。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":54,"total_tokens":278}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166802,"sentence_id":6,"is_end":false,"is_truncated":false,"result":"这条路线可以领略到中国西南地区的高山峡谷和民族文化。\n6. 海南环线:从三亚出发,经过海口、文昌、万宁等城市,最终到达三亚。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":52,"total_tokens":330}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166803,"sentence_id":7,"is_end":false,"is_truncated":false,"result":"这条路线可以欣赏到中国南方的海岸线和热带雨林。\n7. 滇藏线:从昆明出发,经过大理、丽江、香格里拉等景点,最终到达西藏拉萨。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":52,"total_tokens":382}}

data: {"id":"as-ywwpgx4dt7","object":"chat.completion","created":1680166804,"sentence_id":8,"is_end":true,"is_truncated":false,"result":"这条路线可以领略到中国西南地区和西藏地区的自然风光和人文景观。","need_clear_history":false,"usage":{"prompt_tokens":11,"completion_tokens":30,"total_tokens":412}}

function call示例

第一轮请求

```bash label=bash

# 步骤一,获取access_token,替换下列示例中的API Key与Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]'

# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的”调用接口获取的access_token“

curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=[步骤一调用接口获取的access_token]' -d '{
        "messages": [
      {"role":"user","content":"上海市今天的天气"}
    ],
   "functions": [
        {
            "name": "get_current_weather",
            "description": "获得指定地点的天气",
            "parameters": {
                "type": "object",
                "properties": {
                "location": {
                    "type": "string",
                    "description": "省,市名,例如:河北省,石家庄"
                },
                "unit": {
                    "type": "string",
                    "enum": ["摄氏度", "华氏度"]
                }
                },
                "required": ["location"]
            }
    },
        {
            "name": "get_current_price",
            "description": "获得指定公司的股价",
            "parameters": {
                "type": "object",
                "properties": {
                "company": {
                    "type": "string",
                    "description": "公司名,例如:腾讯,阿里巴巴"
                },
                "exchange": {
                    "type": "string",
                    "enum": ["纳斯达克", "上海证券交易所","香港证券交易所"]
                }
                },
                "required": ["company", "exchange"]
            },
            "responses": {
                "type": "object",
                "properties": {
                "price": {
                    "type": "int",
                    "description": "当日股票价格"
                },
                "unit": {
                    "type": "string",
                    "enum": ["人民币", "美元","港币"],
                    "description": "股票价格货币类型"
                },
                "change": {
                    "type": "string",
                    "description": "当日股票价格变化,如下跌3%,上涨0.5%"
                }
                }
            },
    "examples": [
      {"role":"user","content":"What is the weather like in Boston?"},
      {"role": "assistant", "content": null, "function_call": {"name": "get_current_weather", "arguments": "{ \"location\": \"Boston\"}"}},
      {"role": "function", "name": "get_current_weather", "content": "{\"temperature\": \"25\", \"unit\": \"centigrade\", \"description\": \"cloud\"}"}
    ]
        }
    ],
    "stream":true
}' | iconv -f utf-8 -t utf-8
```
第一轮响应
HTTP/1.1 200 OK
Date: Mon, 12 Apr 2021 06:27:55 GMT
Content-Type: text/event-stream;charset=utf-8
Cache-Control: no-cache
Statement: AI-generated

data: {"id":"as-rtpw9dcmef","object":"chat.completion","created":1693449832,"sentence_id":0,"is_end":true,"is_truncated":false,"result":"","need_clear_history":false,"function_call":{"name":"get_current_weather","thoughts":"用户提到了天气,需要调用API来获取天气信息。","arguments":"{\"unit\":\"摄氏度\",\"location\":\"上海市\"}"},"is_safe":0,"usage":{"prompt_tokens":8,"completion_tokens":46,"total_tokens":54}}
函数调用

```bash label=bash
curl -X POST 'http://0.0.0.0:80/get_current_weather' -d '{
   "unit": "摄氏度",
   "location": "上海市"
}' | iconv -f utf-8 -t utf-8
```
函数响应
HTTP/1.1 200 OK

{
    "temperature": "25", 
    "unit": "摄氏度", 
    "description": "晴朗"
}
第二轮请求

```bash label=bash

# 步骤一,获取access_token,替换下列示例中的API Key与Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]'

# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的”调用接口获取的access_token“

curl -X POST 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=[步骤一调用接口获取的access_token]' -d '{
    "messages": [
      {"role":"user","content":"上海市今天天气如何?"},
      {"role": "assistant", "content": null, "function_call": {"name": "get_current_weather", "arguments": "{ \"location\": \"上海市\"}"}},
      {"role": "function", "name": "get_current_weather", "content": "{\"temperature\": \"25\", \"unit\": \"摄氏度\", \"description\": \"晴朗\"}"}],
   "functions": [
        {
            "name": "get_current_weather",
            "description": "获得指定地点的天气",
            "parameters": {
                "type": "object",
                "properties": {
                "location": {
                    "type": "string",
                    "description": "省,市名,例如:河北省,石家庄"
                },
                "unit": {
                    "type": "string",
                    "enum": ["摄氏度", "华氏度"]
                }
                },
                "required": ["location"]
            }
	},
        {
            "name": "get_current_price",
            "description": "获得指定公司的股价",
            "parameters": {
                "type": "object",
                "properties": {
                "company": {
                    "type": "string",
                    "description": "公司名,例如:腾讯,阿里巴巴"
                },
                "exchange": {
                    "type": "string",
                    "enum": ["纳斯达克", "上海证券交易所","香港证券交易所"]
                }
                },
                "required": ["company", "exchange"]
            },
            "responses": {
                "type": "object",
                "properties": {
                "price": {
                    "type": "int",
                    "description": "当日股票价格"
                },
                "unit": {
                    "type": "string",
                    "enum": ["人民币", "美元","港币"],
                    "description": "股票价格货币类型"
                },
                "change": {
                    "type": "string",
                    "description": "当日股票价格变化,如下跌3%,上涨0.5%"
                }
                }
            }
        }
    ],
"stream":true
}' | iconv -f utf-8 -t utf-8
```
第二轮响应
HTTP/1.1 200 OK
Date: Mon, 12 Apr 2021 06:27:55 GMT
Content-Type: text/event-stream;charset=utf-8
Cache-Control: no-cache
Statement: AI-generated

data: {"id":"as-kf6e9thk0f","object":"chat.completion","created":1693450180,"sentence_id":0,"is_end":false,"is_truncated":false,"result":"上海市今天天气是:","need_clear_history":false,"is_safe":0,"usage":{"prompt_tokens":26,"completion_tokens":8,"total_tokens":34}}

data: {"id":"as-kf6e9thk0f","object":"chat.completion","created":1693450180,"sentence_id":1,"is_end":false,"is_truncated":false,"result":"气温25摄氏度,晴朗。","need_clear_history":false,"is_safe":0,"usage":{"prompt_tokens":26,"completion_tokens":8,"total_tokens":42}}

data: {"id":"as-kf6e9thk0f","object":"chat.completion","created":1693450180,"sentence_id":2,"is_end":true,"is_truncated":false,"result":"","need_clear_history":false,"is_safe":0,"usage":{"prompt_tokens":26,"completion_tokens":0,"total_tokens":42}}

错误码

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

名称描述
error_code错误码
error_msg错误描述信息,帮助理解和解决发生的错误

例如Access Token失效返回:

{
  "error_code": 110,
  "error_msg": "Access token invalid or no longer valid"
}

需要重新获取新的Access Token再次请求。

错误码错误信息描述
1Unknown error服务器内部错误,请再次请求,如果持续出现此类错误,请在百度云控制台内提交工单反馈
2Service temporarily unavailable服务暂不可用,请再次请求,如果持续出现此类错误,请在百度云控制台内提交工单反馈
3Unsupported openapi method调用的API不存在,请检查请求URL后重新尝试,一般为URL中有非英文字符,如”-“,可手动输入重试
4Open api request limit reached集群超限额,请再次请求,如果持续出现此类错误,请在百度云控制台内提交工单反馈
6No permission to access data无接口调用权限,创建应用时未勾选相关千帆接口,请登录百度云控制台,找到对应的应用,编辑应用,勾选上相关接口后重新调用,也可使用权限额度诊断工具完成自助诊断
13Get service token failed获取token失败
14IAM Certification failedIAM鉴权失败,建议用户参照文档自查生成sign的方式是否正确,或换用控制台中ak sk的方式调用
15app not exists or create failed应用不存在或者创建失败
17Open api daily request limit reachedAPI未开通付费,或者当前账户已欠费,导致请求失败。每天请求量超限额,已上线计费的接口,请直接在控制台开通计费,调用量不受限制,按调用量阶梯计费;未上线计费的接口,请在百度云控制台内提交工单反馈
18Open api qps request limit reachedQPS超限额,已上线计费的接口,请直接在控制台开通计费,调用量不受限制,按调用量阶梯计费;未上线计费的接口,请在百度云控制台内提交工单反馈
19Open api total request limit reached请求总量超限额,已上线计费的接口,请直接在控制台开通计费,调用量不受限制,按调用量阶梯计费;未上线计费的接口,请在百度云控制台内提交工单反馈
100Invalid parameter无效的access_token参数,token拉取失败,您可以参考“Access Token获取”文档重新获取
110Access token invalid or no longer validaccess_token无效
111Access token expiredaccess token过期
336000Internal error服务内部错误
336001Invalid Argument入参格式有误,比如缺少必要参数
336002Invalid JSON入参body不是标准的JSON格式
336003{参数校验不合法的具体原因}说明:参数不同,返回错误信息不同参数校验不合法,error_msg中会给出具体原因
336004{权限控制出错的具体原因}权限控制出错
336005API name not exist定制化模型服务apiname不存在
336100人工智能是一项革命性的技术。与我互动的人过多,请您稍后重新向我提问。人工智能是一项革命性的技术。与我互动的人过多,请您稍后重新向我提问
336101Invalid HTTP Method非法的HTTP Method, 当前仅支持POST请求
336104system is invalidsystem内容不合法