学习笔记|百度文心千帆大模型平台测试及页面交互简易代码

目前百度文心一言的内测资格申请相当拉胯,提交申请快3个月,无任何音讯。不知道要等到什么时候。
百度适时开放了百度文心千帆大模型平台,目前可以提交申请测试,貌似通过的很快,已取得测试申请资格,可以用起来。
申请测试网址
获得测试资格后的页面时这样的:
在这里插入图片描述
点击立即使用,可以在线测试:
在这里插入图片描述

使用千帆大模型API

点击主页右上角,控制台,进入百度云控制台,创建应用:在这里插入图片描述
在这里插入图片描述
之后就可以得到调用API的 AppID,APIKey,SecretKey。API调用时,主要使用APIKey,SecretKey。

目前赠送代金券,测试用足够了,按调用次数收费。
在这里插入图片描述

API调用测试第一步:取得access_token

这里根据网友的代码用于测试,有修改。
原始代码参考-百度:文心千帆 网页搭建和示例测评
假设调用ERNIE-Bot-turbo
官方帮助文档见:ERNIE-Bot-turbo
请求地址: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant
请求方式: POST
access_token有效性测试(基于python):

# 填充API Key与Secret Key
import requests
import jsondef main(APIKey,SecretKey):url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id="+APIKey+"&client_secret="+SecretKeypayload = 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")if __name__ == '__main__':APIKey="6bWN69CoTBjgC**********"  # 填入平台申请的实际APIKeySecretKey="wy1nU8UrnePKWm0***************" # 填入平台申请的实际SecretKeyaccess_token = main(APIKey,SecretKey)print(access_token)

如果打印得到access_token,则证明相关参数无误:
在这里插入图片描述
可进行下一步对话测试。

大模型回答测试代码

import requests
import jsondef get_access_token(APIKey, SecretKey):"""使用 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="+APIKey+"&client_secret="+SecretKeypayload = 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(APIKey, SecretKey):url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token(APIKey, SecretKey)payload = json.dumps({"messages": [{"role": "user","content": "给我推荐一些北京周边的自驾游路线"}],"stream": True})headers = {'Content-Type': 'application/json'}response = requests.request("POST", url, headers=headers, data=payload)print(response.text)if __name__ == '__main__':APIKey="6bWN69CoTBjgC**********"  # 填入平台申请的实际APIKeySecretKey="wy1nU8UrnePKWm0***************" # 填入平台申请的实际SecretKeymain(APIKey, SecretKey)

大模型回复示例如下:
在这里插入图片描述

基于Flask轻量化工具测试

编写app.py

from flask import Flask, render_template, request, jsonify, make_response
import requests
import uuidapp = Flask(__name__)# 替换成您的API Key和Secret Key
API_KEY="6bWN69CoTBjgC**********"  # 填入平台申请的实际APIKey
SECRET_KEY="wy1nU8UrnePKWm0***************" # 填入平台申请的实际SecretKey# 获取access_token
TOKEN_URL = f"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={API_KEY}&client_secret={SECRET_KEY}"
response = requests.get(TOKEN_URL)
ACCESS_TOKEN = response.json()["access_token"]# 定义ERNIE-Bot聊天接口地址
CHAT_API_URL = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token={ACCESS_TOKEN}"
user_chat_histories = {}@app.route("/")
def index():sessionid = str(uuid.uuid4())[:16]resp = make_response(render_template("index.html"))resp.set_cookie("sessionid", sessionid)return resp@app.route("/chat", methods=["POST"])
def chat_with_ernie_bot():# 从前端获取用户输入的对话内容和sessioniduser_id = request.cookies.get("sessionid")user_input = request.json["user_input"]# 获取该用户的对话历史,如果用户是首次对话,则新建一个空列表作为其对话历史user_history = user_chat_histories.get(user_id, [])# 将用户输入添加到对话历史中user_history.append({"role": "user", "content": user_input})# 调用ERNIE-Bot聊天接口headers = {"Content-Type": "application/json"}data = {"messages": user_history}response = requests.post(CHAT_API_URL, headers=headers, json=data)result = response.json()["result"]print(result)user_history.append({"role": "assistant", "content": result})user_chat_histories[user_id] = user_historyreturn jsonify({"response": result})if __name__ == "__main__":app.run(host='0.0.0.0', port=1333, debug=False)

在app.py的同级目录下,建立目录templates,用来存放访问页面文件index.html。

index.html内容:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>百度千帆</title><style>body {font-family: Arial, sans-serif;}#chat-container {display: flex;flex-direction: column;height: 80vh;width: 50%;margin: auto;border: 1px solid #ddd;border-radius: 10px;padding: 10px;}#chat-history {flex-grow: 1;overflow-y: auto;margin-bottom: 10px;}#user-input {flex-grow: 0;margin-right: 10px;}h1 {text-align: center;}.send {text-align: center;}</style><script src="https://www.hyluz.cn/marked.min.js"></script>
</head>
<body>
<h1>百度千帆</h1>
<div id="chat-container"><div id="chat-history"></div><div class="send"><input type="text" id="user-input" placeholder="输入您的消息..."/><button id="send-button" onclick="sendMessage()">发送</button></div>
</div><script>const chatHistory = document.getElementById("chat-history");const userInput = document.getElementById("user-input");userInput.addEventListener("keydown", function (e) {if (e.key === "Enter") {e.preventDefault();sendMessage();}});function getCookie(name) {const value = "; " + document.cookie;const parts = value.split("; " + name + "=");if (parts.length === 2) return parts.pop().split(";").shift();}function addMessageToChatHistory(role, message) {const messageElement = document.createElement("div");messageElement.className = role;messageElement.innerHTML = marked.parse(message);chatHistory.appendChild(messageElement);chatHistory.scrollTop = chatHistory.scrollHeight;}function sendMessage() {const userMessage = userInput.value.trim();if (!userMessage) {return;}const userId = getCookie("sessionid");addMessageToChatHistory("user", "用户: " + userMessage);fetch("/chat", {method: "POST",headers: {"Content-Type": "application/json",},body: JSON.stringify({"user_id": userId, "user_input": userMessage}),}).then(response => response.json()).then(data => {const botResponse = data.response;addMessageToChatHistory("assistant", "百度AI: " + botResponse);}).catch(error => {console.error("Error:", error);});userInput.value = "";}
</script>
</body>
</html>

运行app.py,本地客户端运行,本地访问地址及端口:
在这里插入图片描述
浏览器中打开地址:http://127.0.0.1:1333/,打开index.html,显示交互界面:
在这里插入图片描述
可以输入信息,调用api进行交互。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/12215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle恢复删除的数据

不下心删除了生产库的数据或者不小心删除了一部分数据&#xff0c;如何恢复找回。 Oracle恢复删除数据的方法 方案一 利用oracle提供的闪回方法进行数据恢复&#xff0c;适用于delete删除方式 首先获取删除数据的时间点&#xff1a; select * from v$sql where sql_text l…

无线投屏手机(安卓)屏幕到 Linux(ubuntu 22.04)桌面

1.安装 scrcpy 安装 scrcpy会自动安装 adb. 这个版本的adb功能不是最全的&#xff0c;需要删掉&#xff0c;然后从链接 https://dl.google.com/android/repository/platform-tools-latest-darwin.zip 下载&#xff0c;解压安装即可。 2. 在手机上 打开开发者模式和 USB调试…

Unity UGUI的EventTrigger (事件监听器)组件的介绍及使用

Unity UGUI的EventTrigger (事件监听器)组件的介绍及使用 1. 什么是EventTrigger组件&#xff1f; EventTrigger是Unity UGUI中的一个组件&#xff0c;用于监听和响应UI元素的各种事件&#xff0c;例如点击、拖拽、进入、离开等。通过EventTrigger组件&#xff0c;我们可以方…

使用python爬取淘宝商品信息

要使用Python爬取淘宝商品信息&#xff0c;您可以按照以下步骤&#xff1a; 安装必要的库 您需要安装Python的requests库和BeautifulSoup库。 要使用Python爬取淘宝商品信息&#xff0c;您可以按照以下步骤&#xff1a;安装必要的库 您需要安装Python的requests库和Beautifu…

国内好用的企业级在线文档有哪些?

在当今数字化时代&#xff0c;企业级在线文档已经成为了现代办公环境中不可或缺的一部分。它不仅能够提高工作效率&#xff0c;还能够实现多人协同编辑&#xff0c;满足团队协作的需求。那么&#xff0c;在国内市场上&#xff0c;哪些企业级在线文档产品备受企业青睐呢&#xf…

Python(四十七)列表对象的创建

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

“深入理解Spring Boot:构建高效、可扩展的Java应用程序“

标题&#xff1a;深入理解Spring Boot&#xff1a;构建高效、可扩展的Java应用程序 摘要&#xff1a;Spring Boot是一个用于构建Java应用程序的开源框架&#xff0c;它提供了一种简单且高效的方式来创建独立的、生产级别的应用程序。本文将深入探讨Spring Boot的核心概念和特性…

Git工作中常用命令

模拟一个git完整命令流程 有一个名为 example.txt 的文本文件 Hello, this is some text.1、做一些修改并查看文件的差异&#xff1a; # 修改 example.txt 文件 echo "Hello, this is some updated text." > example.txt查看文件的差异 git diffgit diff 命令…

【【51单片机红外遥控小风车】】

51单片机红外遥控小风车 今天结束了51单片机的学习&#xff0c;明天开始学习stm32 我是学习江科大的视频一步一步完成的 &#xff0c;他讲的非常好&#xff0c;非常好 特别通俗易懂 学习复刻他的作品我也自己创作了一些 但是现在暂时脱离这块板子了 以后可能会更新一个应用51单…

ffmpeg最简单方式支持nvidia硬编解码

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、nvidia硬编解码是什么&#xff1f;二、使用步骤1.安装2.确认1.硬件解码器2.硬件编码器 3.测试 总结 前言 因为工作内容的需要&#xff0c;之前写过一篇文章…

使用SVM模型完成分类任务

SVM&#xff0c;即支持向量机&#xff08;Support Vector Machine&#xff09;&#xff0c;是一种常见的机器学习算法&#xff0c;用于分类和回归分析。SVM的基本思想是将数据集映射到高维空间中&#xff0c;在该空间中找到一个最优的超平面&#xff0c;将不同类别的数据点分开…

Jsp+Ssh+Mysql实现的简单的企业物资信息管理系统项目源码附带视频指导运行教程

由jspssh&#xff08;springstruts2mysql&#xff09;实现的企业物资信息管理系统&#xff0c;系统功能比较简单&#xff0c;实现了基本的管理员、操作员等用户管理、物品分类管理、物品管理、入库管理、出库管理、库存预警、客户管理、供应商管理等基本功能需要的可以联系我分…

接口参数设计原则

1. 不能太动态. 不相信客户端的原则 例如传递 filterFields , 推送一个表的某些字段给上游. 2. 可以服务端提供一些封装. 这个封装可以是写死的组合, 也可以是后端配置的. 最好的是 代码里的领域类bean 1,1对应一个名称. 可以是 classReference. 运营态有很多字段是给用户看的…

SpringMVC路径匹配

SpringMVC路径匹配 SpringMVC支持Ant风格的路径 Ant是Apache下的一个构建(编译、测试、部署等)工具。即Ant风格源于Ant这个构建工具。 关于如何配置SpringMVC的各种配置文件和其中的注解使用可以参考 种类 1、?&#xff1a;表示任意的单个字符 controller RequestMapping…

[JavaWeb]SQL介绍-DDL语句

SQL介绍-DDL语句 一.SQL简介1.简介2.SQL通用语法3.SQL语言的分类 二.DDL-操作数据库与表1.DDL操作数据库2.DDL操作表①.查询表(Retrieve)②.创建表(Create)③.修改表(Update)④.删除表(Delete) 一.SQL简介 1.简介 SQL: Structured Query Language–结构化查询语言用来操作关系…

prometheus和cAdvisor组合

文章目录 docker内部署PromethuesPrometheuscAdvisorPrometheus和cAdvisor关系配置 docker内部署Promethues Prometheus Prometheus是一个开源的系统监控和报警工具&#xff0c;由SoundCloud开发并在2012年捐赠给了Cloud Native Computing Foundation (CNCF)。它被广泛用于监…

打卡一个力扣题目

目录 一、问题 二、解题办法一 三、解题方法二 四、对比分析 关于 ARTS 的释义 —— 每周完成一个 ARTS&#xff1a; ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享一篇有观点…

视频转化为图片或灰度视频

1.视频转化为图片 import cv2video_pathr"D:\Dataset\video/7.mp4" capturecv2.VideoCapture(video_path) # print(capture.get(5))if capture.isOpened():ret,imgcapture.read()index0while ret:if index%200:imgidr"D:\Dataset\image/6/""%07d&quo…

dataTable转成对象、json、list

datatable转换成list集合 public static T TableToEntity<T>(DataTable dt, int rowindex 0, bool isStoreDB true){Type type typeof(T);T entity Activator.CreateInstance<T>();if (dt null){return entity;}DataRow row dt.Rows[rowindex];PropertyInfo…

List中交集的使用

前言 新增了一个需求&#xff0c;需要将所有药品和对应数量库存的药房查询出来&#xff0c;要求&#xff1a;‘所有药品该药房都要有&#xff0c;并且库存大于购药数量’&#xff1b; 这就得考虑一个问题&#xff0c;有的药房有该药品&#xff0c;有的药房没有该药品&#xf…