当前位置:AIGC资讯 > AIGC > 正文

百度文心一言api Python调用ERNIE-Lite-8K-0922具体教程

ERNIE Lite是百度自研的轻量级大语言模型,兼顾优异的模型效果与推理性能,适合低算力AI加速卡推理使用。ERNIE-Lite-8K-0922(原ERNIE-Bot-turbo-0922)是模型的一个模版,本文介绍了相关API及应用。

创建chat

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

注意事项

本文API,支持2种鉴权方式。不同鉴权方式,调用方式不同,使用Header、Query参数不同,详见本文请求说明。开发者可以选择以下任一种方式进行鉴权。

访问凭证access_token鉴权 基于安全认证AK/SK进行签名计算鉴权

在线调试

百度智能云千帆提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用,更多内容请查看API在线调试介绍。❤ TXB2196

请求说明

基本信息

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

请求方式: POST

Header参数

根据不同鉴权方式,查看对应Header参数。

访问凭证access_token鉴权 名称 类型 必填 描述 Content-Type string 是 固定值application/json 基于安全认证AK/SK进行签名计算鉴权 名称 类型 必填 描述 Content-Type string 是 固定值application/json x-bce-date string 否 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z Authorization string 是 用于验证请求合法性的认证信息,更多内容请参考鉴权认证机制,签名工具可参考IAM签名工具

Query参数

只有访问凭证access_token鉴权方式,需使用Query参数。

访问凭证access_token鉴权 名称 类型 必填 描述 access_token string 是 通过API Key和Secret Key获取的access_token,参考Access Token获取

Body参数

名称 类型 必填 描述 messages List(message) 是 聊天上下文信息。说明:
(1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话
(2)最后一个message为当前请求的信息,前面的message为历史对话信息
(3)必须为奇数个成员,成员中message的role必须依次为user、assistant
(4)message中的content总长度和system字段总内容不能超过11200个字符,且不能超过7168 tokens stream bool 否 是否以流式接口的形式返回数据,默认false 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] system string 否 模型人设,主要用于人设设定,例如:你是xxx公司制作的AI助手,说明:
(1)长度限制,message中的content总长度和system字段总内容不能超过11200个字符,且不能超过7168 tokens stop List(string) 否 生成停止标识,当模型生成结果以stop中某个元素结尾时,停止文本生成。说明:
(1)每个元素长度不超过20字符
(2)最多4个元素 max_output_tokens int 否 指定模型最大输出token数,说明:
(1)如果设置此参数,范围[2, 1024]
(2)如果不设置此参数,最大输出token数为1024 user_id string 否 表示最终用户的唯一标识符

message说明

名称 类型 描述 role string 当前支持以下:
user: 表示用户
assistant: 表示对话助手 content string 对话内容,不能为空

响应说明

响应头Header参数

部分参数如下。

名称 描述 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 本轮对话的id object string 回包类型
chat.completion:多轮对话返回 created int 时间戳 sentence_id int 表示当前子句的序号。只有在流式接口模式下会返回该字段 is_end bool 表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段 is_truncated bool 当前生成的结果是否被截断 result string 对话返回结果 need_clear_history bool 表示用户输入是否存在安全风险,是否关闭当前会话,清理历史会话信息。
true:是,表示用户输入存在安全风险,建议关闭当前会话,清理历史会话信息。
false:否,表示用户输入无安全风险 ban_round int 当need_clear_history为true时,此字段会告知第几轮对话有敏感信息,如果是当前问题,ban_round=-1 usage usage token统计信息

usage说明

名称 类型 描述 prompt_tokens int 问题tokens数 completion_tokens int 回答tokens数 total_tokens int tokens总数

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

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

示例

以访问凭证access_token鉴权方式为例,说明如何调用API,示例如下。

请求示例(单轮) 

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/eb-instant?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.headers)
    print(response.text)
    

if __name__ == '__main__':
    main()

响应示例(单轮

HTTP/1.1 200 OK
Date: Fri, 19 Jan 2024 09:23:15 GMT
Content-Type: application/json;charset=utf-8
Statement: AI-generated
X-Ratelimit-Limit-Requests: 300
X-Ratelimit-Limit-Tokens: 300000 
X-Ratelimit-Remaining-Requests: 299
X-Ratelimit-Remaining-Tokens: 299999

{
  "id": "as-xnsww6ujwi",
  "object": "chat.completion",
  "created": 1709712430,
  "result": "你好,有什么我可以帮助你的吗?",
  "is_truncated": false,
  "need_clear_history": false,
  "usage": {
    "prompt_tokens": 1,
    "completion_tokens": 8,
    "total_tokens": 9
  }
}

请求示例(多轮)


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/eb-instant?access_token=" + get_access_token()
    
    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": "你好"
            },
            {
                "role": "assistant",
                "content": "你好,有什么我可以帮助你的吗?"
            },
            {
                "role": "user",
                "content": "我在上海,周末可以去哪里玩?"
            },
            {
                "role": "assistant",
                "content": "上海是一个充满活力和文化氛围的城市,有很多适合周末游玩的地方。以下是几个值得推荐的地方:

1. 上海科技馆:上海科技馆是中国大陆最大的科技馆之一,有许多互动展览和科学实验室,可以让您了解科技的发展历史和最新成果。
2. 上海博物馆:上海博物馆是一座集艺术、历史和文化于一体的博物馆,有许多精美的艺术品和文物,可以让您深入了解中国和世界的文化历史。
3. 外滩:外滩是上海的标志性景点之一,有许多高楼大厦和繁华的商业街区,是欣赏黄浦江美景和城市风貌的好去处。
4. 上海迪士尼乐园:上海迪士尼乐园是世界上最大的迪士尼主题公园之一,有许多精彩的游乐项目和演出,可以让您尽情享受娱乐和欢乐。
5. 上海野生动物园:上海野生动物园是一个以自然保护为主题的野生动物园,有许多珍稀动物和植物,可以让您近距离接触大自然。

这些地方都是上海周末游玩的好去处,可以根据自己的兴趣和需求选择合适的行程。"
            },
            {
                "role": "user",
                "content": "上海有哪些美食"
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.headers)
    print(response.text)
    

if __name__ == '__main__':
    main()

响应示例(多轮)

HTTP/1.1 200 OK
Date: Fri, 19 Jan 2024 09:23:15 GMT
Content-Type: application/json;charset=utf-8
Statement: AI-generated
X-Ratelimit-Limit-Requests: 300
X-Ratelimit-Limit-Tokens: 300000
X-Ratelimit-Remaining-Requests: 299
X-Ratelimit-Remaining-Tokens: 299762

{
  "id": "as-65za5jt3zc",
  "object": "chat.completion",
  "created": 1709712698,
  "result": "上海是一个美食之都,拥有许多特色美食。以下是几个值得推荐的美食:\n\n1. 小笼包:上海的小笼包皮薄馅大,口感鲜美,是必尝之选。\n2. 生煎包:上海的生煎包底部煎得酥脆,肉馅鲜美,汤汁浓郁。\n3. 蟹壳黄:这是一种特色油炸饼,外表金黄,口感酥脆,馅料有甜的和咸的两种。\n4. 糟卤:这是一种独特的烹饪工艺,可以保持食物的原汁原味,味道醇厚而清香。\n5. 鱼丸:上海的鱼丸肉质鲜嫩,口感Q弹,是一道美味的汤菜。\n6. 糖醋里脊:这是一道经典的上海菜,外酥里嫩,酸甜可口。\n7. 葱油饼:上海的葱油饼香气扑鼻,口感酥脆,是一道受欢迎的小吃。\n\n除此之外,上海还有许多其他美食,如糟卤鸡爪、冷面、牛肉面、羊肉串等等。您可以根据自己的口味和喜好选择合适的菜品。",
  "is_truncated": false,
  "need_clear_history": false,
  "usage": {
    "prompt_tokens": 238,
    "completion_tokens": 238,
    "total_tokens": 476
  }
}

请求示例(流式)

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/eb-instant?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)
    
    print(response.headers)
    for line in response.iter_lines():
        print(line.decode("UTF-8"))
    

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
X-Ratelimit-Limit-Requests: 300
X-Ratelimit-Limit-Tokens: 300000
X-Ratelimit-Remaining-Requests: 298
X-Ratelimit-Remaining-Tokens: 299732

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}}

错误码

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

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

例如Access Token失效返回以下内容,需要重新获取新的Access Token再次请求。

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

更新时间 2024-06-02