调用大模型API-文心一言

调用大模型API-文心一言

    正在检查是否收录...
一言准备中...

一、准备工作

进入百度智能云千帆大模型平台,点击应用接入-创建应用;按提默认完成创建

二、开始使用

单轮调用

进入API列表 - ModelBuilder以第一个ERNIE-4.0-8K为例,选择“HTTP请求调用”,把第一步创建应用的 应用API Key、应用Secret Key替换到代码中,即可进行单轮对话。

 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()

多轮调用

每次请求调用5轮之前的会话,并且把response保存在会话记录参与到下一轮的调用。

import time import pandas as pd import json import requests API_KEY="API_KEY" SECRET_KEY="SECRET_KEY" menu=['query1','query2','query3','query4'] #上下文初始化 context=[] context_prefix="文本的内容是:" context_suffix="。文本中内容区分开便于后期做embedding" #initial_question="你好,能帮我描述系统菜单吗?" all_responses=[] def get_access_token(): """ 使用AK,SK生成鉴权签名(AccessToken) :return:access_token,或是None(如果错误) """ url="https://aip.baidubce.com/oauth/2.0/token" params={"grant_type":"client_credentials","client_id":API_KEY,"client_secret":SECRET_KEY} returnstr(requests.post(url,params=params).json().get("access_token")) #Functiontoaddanewmessagetothecontextandmaintainthelatest5rounds def update_context(new_assistant_response): #添加用户的新提问 #context.append({"role":"user","content":new_user_input}) #添加模型的新回答 context.append({"role":"assistant","content":new_assistant_response}) #保持上下文的最新五轮对话(即10条消息) if len(context)>9: context.pop(0) context.pop(0) def get_desc_by_api(context): url="https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro? access_token="+get_access_token() payload=json.dumps({ "messages":context }) headers={ 'Content-Type':'application/json' } response=requests.request("POST",url,headers=headers,data=payload) returnresponse definitialize_context(): context.extend([ { "role":"user", "content":"query1" },{ "role":"assistant", "content":"response1" },{ "role":"user", "content":"query2" },{ "role":"assistant", "content":"response2" } ]) #context=context[0] initialize_context() print("context",context) #模拟多轮对话 for i in range(len(menu)): current_menu_item=menu[i] #生成用户提问 new_user_input=context_prefix+current_menu_item+context_suffix context.append({"role":"user","content":new_user_input}) #发送请求 api_response=get_desc_by_api(context) print("status_code:",api_response.text) ifapi_response.status_code==200: new_assistant_response=api_response.json().get("result") #更新上下文 update_context(new_assistant_response) print(f"对话轮次{i+1},当前上下文:{context}") response_entry={ "menu_item":current_menu_item, "response":new_assistant_response } all_responses.append(response_entry) #将所有回答存储到一个JSON文件中 with open('responses.json','w',encoding='utf-8') as f: json.dump(all_responses,f,ensure_ascii=False,indent=4) 

总结

本文介绍了如何在百度智能云千帆大模型平台上接入并使用ERNIE-4.0-8K模型进行单轮与多轮对话的详细步骤与代码实现。
### 准备工作
1. **进入平台**:首先,用户需登录百度智能云千帆大模型平台。
2. **创建应用**:在应用接入页面选择“创建应用”,并按默认设置完成应用创建,获取应用API Key和应用Secret Key。
### 开始使用
#### 单轮调用
- **选取模型**:在API列表中,选择ERNIE-4.0-8K模型。
- **替换代码中的密钥**:将创建应用时获得的应用API Key和应用Secret Key替换到示例代码中,用于获取access_token进行API请求。
- **发起请求**:通过HTTP POST请求,向指定URL发送JSON格式的请求体,包括用户发言的内容。
#### 示例代码(单轮对话)
- 代码展示了如何定义函数`get_access_token()`获取access_token,并在`main()`函数中构造请求体、发送请求,并打印响应结果。
#### 多轮调用
- **会话保持**:每次调用API时,请求中包含前5轮会话的记录,即用户提问与模型回答的交替记录。
- **会话记录更新**:每次请求将模型的最新回答添加到会话记录中,并保持只保留最新的5轮对话,以避免数据过度累积。
- **发起多轮请求**:通过一个循环,模拟多次用户与模型之间的对话,并将对话结果保存到文件中。
#### 示例代码(多轮对话)
- 代码展示了如何初始化会话记录,并定义一个循环来不断发送用户提问并更新会话记录,同时将对话数据保存在JSON文件中。此外,代码还包含获取access_token、更新会话记录、发送请求和处理响应等功能。
### 总体说明
本文通过清晰的步骤和示例代码,帮助开发者快速了解如何在百度智能云千帆大模型平台上使用ERNIE模型实现单轮与多轮对话功能,涵盖了从准备阶段到具体代码实现的全过程。 apitokenjsonurlassistantappcli会话记录大模型baidu多轮对话上下文百度智能fixchat代码展示codeoauthcodingdefi
  • 本文作者:WAP站长网
  • 本文链接: https://wapzz.net/post-21123.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.7W+
9
1
2
WAP站长官方

Unsloth 教程 - 如何微调 Llama-3并导出到 Ollama

上一篇

OpenAI开发者大会推出四大创新:提示词缓存可减少50%输入token成本

下一篇
  • 复制图片
按住ctrl可打开默认菜单