文心一言4.0(ERNIE-Bot-4)申请方法及简单调用代码示例
10月17日过后,估计很多人会看到类似的新闻,如图:
我看到这则新闻也是觉得非常感兴趣,于是本着“百闻不如一见”的实事求是的态度检索如何申请,没想到还真找到了ERNIE-Bot-4(俗称:文心一言4.0)的申请入口,如下:
-
体验地址
企业用户/个人开发者:填写表单申请开通:百度智能云千帆大模型平台邀您测试 审核通过后即可免费调用千帆文心4.0API
-
API文档
ERNIE-Bot-4 - 千帆大模型平台 | 百度智能云文档
我本人是填写表单申请一天左右收到了“百度智能云”的短信通知我通过了申请,老样子,先上图:
通过之后即使不是很擅长调用接口来测试模型质量,百度智能云也会提供在线测试的入口方便我们测试,如图:
也是可以外接知识库或者调整各种参数的,还算便利,也提供了prompt模板作为参考。
如果我们不想每次都打开网站去测试,也可以在本地进行调用来测试,下面以python为例:
先在百度智能云控制台“应用接入”里创建应用,内容自己发挥,主要是我们需要的AppID,API Key以及Secret Key。
当然,我们需要开通一下对应接口的付费,我这里是只开通了ERNIE-Bot-4的付费,0.12¥/千tokens,跟其他模型比可能有点小贵,自费开通,为爱发电哈哈。
好了,万事具备,下面就是一个简单的多轮对话代码示例:
import requests
import json
import os
import pickleclass WenXinYiYanChat:def __init__(self, api_key, secret_key, user_id="这里输入你的APPID", file_name="history.pkl"):# 初始化方法,用于设置API密钥、用户ID、文件名等self.api_key = api_keyself.secret_key = secret_keyself.user_id = user_idself.file_name = file_nameself.access_token = self.get_access_token()self.messages = []self.is_paused = Falsedef get_access_token(self):# 获取access_token,用于后续的API调用url = "https://aip.baidubce.com/oauth/2.0/token"params = {'grant_type': 'client_credentials','client_id': self.api_key,'client_secret': self.secret_key}headers = {'Content-Type': 'application/json','Accept': 'application/json'}response = requests.post(url, headers=headers, params=params)return response.json().get("access_token")def chat(self, user_message):# 进行对话的主要方法if self.is_paused:return "对话目前已暂停。请先恢复对话再继续。"self.messages.append({"role": "user", "content": user_message})payload = {"messages": self.messages,"user_id": self.user_id,"temperature": 0.95,"top_p": 0.8,"penalty_score": 1.0}url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token={self.access_token}"headers = {'Content-Type': 'application/json'}response = requests.post(url, headers=headers, data=json.dumps(payload))assistant_message = response.json().get("result")self.messages.append({"role": "assistant", "content": assistant_message})return assistant_messagedef clear_history(self):# 清除对话历史记录self.messages = []def get_chat_history(self):# 获取对话历史记录return self.messagesdef save_history(self):# 将对话历史记录保存到文件中with open(self.file_name, "wb") as f:pickle.dump(self.messages, f)def load_history(self):# 从文件中读取对话历史记录if os.path.exists(self.file_name):with open(self.file_name, "rb") as f:self.messages = pickle.load(f)def pause_chat(self):# 暂停对话,并保存对话历史记录self.is_paused = Trueself.save_history()def resume_chat(self):# 恢复对话,并加载对话历史记录self.is_paused = Falseself.load_history()if __name__ == "__main__":api_key = input("请输入您的API Key: ")secret_key = input("请输入您的Secret Key: ")'''如果不想每次都输入这两个KEY就把上面两行注释掉,去除下面两行的注释'''# api_key = "在这里输入你的API Key"# secret_key = "在这里输入你的Secret Key"chat_instance = WenXinYiYanChat(api_key, secret_key)while True:user_message = input("靓仔: ")# 添加控制语句,用于实现功能if user_message.lower() == "暂停":chat_instance.pause_chat()print("对话已暂停。")elif user_message.lower() == "恢复":chat_instance.resume_chat()print("对话已恢复。")elif user_message.lower() == "清除":chat_instance.clear_history()print("对话历史记录已清除。")elif user_message.lower() == "查看":history = chat_instance.get_chat_history()print("对话历史记录如下:")for message in history:print(message["role"] + ": " + message["content"])elif user_message.lower() == "载入":chat_instance.load_history()print("对话历史记录已载入。")elif user_message.lower() in ["exit", "退出"]:breakelse:response = chat_instance.chat(user_message)print("文心一言4.0: ", response)
以上是一个非常简陋的多轮对话代码示例,仅供测试接口,佬轻喷,虽然国外的模型质量很高,价格也便宜,国内模型开发的开源项目确实少之又少,但还是希望有更多人能够关注国内模型,众人拾柴火焰高,一同开发出更多更优秀的项目,最后,上效果图:
如果有友友开发出了更好的项目或者发现了更好的项目,记得踢我,一起学习!
相关文章:

文心一言4.0(ERNIE-Bot-4)申请方法及简单调用代码示例
10月17日过后,估计很多人会看到类似的新闻,如图: 我看到这则新闻也是觉得非常感兴趣,于是本着“百闻不如一见”的实事求是的态度检索如何申请,没想到还真找到了ERNIE-Bot-4(俗称:文心一言4.0&a…...

年终好价节买什么好?这些数码好物闭眼入
大家是不是都没听说过好价节?直截了当地说,这其实就是原先的双十二购物狂欢节,只不过给它起了个新名字。不过,今年毕竟是首次改名,因此淘宝年终好价节的各种优惠,仍然是我们值得期待的!作为年前…...
webpack对项目进行优化
对项目进行优化是提高性能和效率的关键,以下是一些实用的Webpack优化技巧: 代码拆分(Code Splitting):将代码拆分为多个小块,按需加载。通过配置splitChunks插件,可以将公共代码提取到单独的文件…...
Python edge-tts库全部声音模型一览表
下面是edge-tts的声音模型,zh-CN为中文语音模型 Name: af-ZA-AdriNeural Gender: Female Name: af-ZA-WillemNeural Gender: Male Name: am-ET-AmehaNeural Gender: Male Name: am-ET-MekdesNeural Gender: Female Name: ar-AE-FatimaNeural Gender: Female N…...
网络编程相关面试题
目录 1.请解释一下什么是TCP协议的三次握手?2.TCP协议使用什么机制确保数据包的顺序和完整性?3.什么是UDP协议?它与TCP协议有什么不同?4.请解释一下什么是IP地址?为什么需要它?5.请解释一下什么是端口&…...
TCP_NODELAY与TCP通信效率
最近做tcp通信速度测试:主要流程如下所示: //client: while() { send data... recv data... //阻塞 }//server: while() { recv data... send data... } 当每次send数据量较小时,速度极慢!而send数据量较大时速度尚可。两者速度…...

ZooKeeper的分布式锁---客户端命令行测试(实操课程)
本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读测试来学习zookeeper。阅读本文之前,请先阅读----zookeeper 单机伪集群搭建简单记录(实操课程系列)。 阅读本文之前,请先阅读…...
工业4.0时代:图像识别驱动制造业智能生产的未来
在数字化革命的大潮中,工业4.0的到来标志着制造业将迎来全新的智能化时代。其中,图像识别技术作为一项核心技术,正引领着制造业实现了前所未有的智能生产。本文将深入探讨工业4.0时代下,图像识别是如何驱动制造业实现智能生产&…...

ROS vscode使用基本配置
1、创建ros工作空间 2、启动 vscode 3、vscode 中编译 ros ctrl shift B 调用编译,选择:catkin_make:build 修改.vscode/tasks.json 文件 4、 创建 ROS 功能包 选定 src ---> create catkin package 依次设置包名、添加依赖 5、C 实现 在功能包的 src 下…...
Android、ESP32、ESP8266的mqtt通信
Android activity_main <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"xmlns:tools"http:/…...

Hive安装与配置
你需要掌握: 1.Hive的基本安装; 2.Mysql的安装与设置; 3.Hive 的配置。 注意:Hive的安装与配置建立在Hadoop已安装配置好的情况下。 hadopp安装与配置 Hive 的基本安装 从 官网 下载Hive二进制包,下载好放在/op…...
vuejs: 解决浏览器切换页面后setInterval计时器停止执行的问题
setInterval定时器是基于当前页面的,如果切换到其他页面,定时器会被暂停。这是浏览器的一种优化措施,以减少不必要的性能消耗。 如果需要在切换页面后继续执行定时器,可以使用Web Worker,它是在后台运行的程序…...

基于Web邮箱的邮件系统
题目: 基于web的邮件收发系统设计与实现 摘 要 计算机的应用已经越来越广泛,它从产生到完善已经差不多有50年左右的历史,更新换代速度非常快,在人们生活、工作中都发挥了不可替代的作用,几乎所有行业都离不开它,已经成…...

【Java学习笔记】75 - 算法优化入门 - 马踏棋盘问题
一、意义 1.算法是程序的灵魂,为什么有些程序可以在海量数据计算时,依然保持高速计算? 2.拿老韩实际工作经历来说,在Unix下开发服务器程序,功能是要支持上千万人同时在线,在上线前, 做内测,一…...

第二十章 多线程
20.2创建线程 20.2.1继承Thread类 Thread类是Java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建议Thread实例。 public class ThreadTest extedns Thread{} run方法格式: public void run(){} 20.1让线程循…...
vue2使用npm依赖包导出xlsx文件
1.下载依赖npm i xlsx 2.在根目录utils新建mergeXlxs.js /****/ import { utils, writeFile } from "xlsx";export default function mergeHeader(headers, data, datamerges, defaultTitle) {const ws utils.book_new();utils.sheet_add_aoa(ws, headers);//这里…...

java--多态
1.什么是多态 多态是在继承/实现的情况下的一种现象,表现为:对象多态、行为多态。 2.多态的具体代码体现 编译看左边,运行看右边 3.多态的前提 有继承/实现关系;存在父类引用子类对象;存在方法重写 4.多态的一个注…...
知识图谱06——将pdf中的表格(文字形式)保存至csv中
使用ubuntu22.04,anaconda 由于装环境装了一阵子,不确定装了哪些包了 可能的环境安装 conda install -c conda-forge pymupdf conda install -c conda-forge camelot-py conda install pandas #或者 pip install PyMuPDF pip install camelot-py[all] …...

一文教你使用Swagger---适合新手小白(结合实战)
1.什么是Swagger Swagger----在线自动生成接口文档,是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,可用于接口的文档在线自动生成以及功能测试。 2.Swagger与OpenAPI OpenAPI规范OpenAPI Specification以前叫…...

VC++调试QT源码
环境:vs2017 qt 5.14.2 1:首先我们需要选择我们的源码路径 右键解决方案-》属性-》通用属性-》调试源文件-》在窗口内添加QT下载时的源码**.src文件夹**,这里最好把源码 D:\software\QT\path\5.14.2\Src 源文件里面的Src文件做一个备份出来…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...