当前位置: 首页 > news >正文

One能聊天接入百度千帆AppBuilder

One能聊天介绍:基于ChatGPT实现的微信小程序,适配H5和WEB端。包含前后端,支持打字效果输出流式输出,支持AI聊天次数限制,支持分享增加次数等功能
One能聊天开源地址:https://github.com/oldinaction/ChatGPT-MP
One能聊天演示环境:可关注【阿壹族】公众号,并回复【One能聊天】查看
下文将介绍在One能聊天项目中接入百度千帆AppBuilder功能

千帆AppBuilder介绍

百度云千帆AppBuilder(以下简称AppBuilder)是基于大模型搭建AI原生应用的工作台,提供RAG、Agent、GBI等应用框架,文档问答、表格问答、对话、创作等应用组件,以及文生图、语音等传统AI组件,降低AI原生应用的开发门槛,赋能开发者快速实现应用搭建!
官方文档:https://cloud.baidu.com/doc/AppBuilder/s/6lq7s8lli

千帆AppBuilder是提供开发者基于文心大模型可以快速开发出一个AI应用
创建的应用可以集成一些官方的组件(如天气查询、快递查询等),也可以集成自定义组件(通过画布拖拽,自行编排组件逻辑,如调用企业内部API或调用大模型接口)
另外还可导入知识库供大模型使用(支持txt/pdf/doc/url等模式)
通过AppBuilder创建的应用官方提供一个访问链接供普通用户使用(界面是通用的AI聊天界面),开发者也可以通过SDK调用创建的AI应用从而集成到实际的业务系统中
AppBuilder产品地址 https://cloud.baidu.com/product/AppBuilder,点击立即使用进入主页,初次使用会赠送一定额度的大模型调用次数。如下图手动创建应用,或通过AI对话创建应用

创建应用

image.png
创建应用:填写应用名称和描述,角色指令(及prompt,可通过AI优化),也可以引用组件和知识库(后文做相关说明);右侧为预览界面,可在此处设置调用的大模型类型
image.png
试用一下
image.png

使用组件

创建的应用可以集成一些官方的组件(如天气查询、快递查询等),部分组件会按调用量进行额外收费,官方组件使用比较简单;此处主要说明下自定义组件
本应用目前还没有引入组件,下面自定义一个组件然后引入到本应用中
点击"个人空间 - 组件 - 创建组件"进行创建,此处预置画布选择空画布,也可选择其他画布类型(会自动创建一个画布案例)
image.png
画布逻辑说明:
如下图可创建多个逻辑节点,节点间通过连线进行关联。本画布的逻辑为:

  • (用户)输入内容放到question参数中
  • 分支器(判断):如果输入内容包含"笑话"则调用API节点,否则调用大模型节点
  • API节点调用的是一个互联网上的免费的API:通过GET访问http://api.qingyunke.com/api.php?key=free&appid=0&msg=讲个笑话,即可会返回一个笑话如{"result":0,"content":"★ 迫不得已{br}“妈妈,我刚刚把花园里的梯子碰倒了。”{br}“把这件事去跟父亲说一下。”{br}“他知道,他现在正抓着天窗,吊在墙上呢。”{br}提示:按分类看笑话请发送“笑话分类”"}(说明:这个接口的笑话都是以 “★” 开头,而且使用 “{br}” 进行文本换行,并且以"按分类看笑话请发送…"结束。后面可以看到大模型会对此接口返回的结果进行二次处理:自动去掉 {br} 换行符,并进行一定改写)
  • 大模型节点则定义了一个提示词你是我的女朋友,你很温柔,幽默。我现在说:{{question}} 你的回答是:(其中{{question}}为变量,会自动替换为输入内容)
  • 最后将结果做为组件的输出(并不一定是应用的输出,应用调用组件拿到组件的输出后,会调用再次调用应用默认大模型进行处理后再输出)

组件设置好后,需要通过调试按钮将每个分支调试通过才能引入到应用中
image.png
继续编辑应用信息,在组件处添加自定义的组件"闲聊",然后更新发布应用。此时我们再来测试应用
如下图可看到,当发送你今天干嘛了呀?,应用会自动调用"闲聊"组件,并且可能多次调用并对结果进行处理(相当于一个AI Agent),最后再返回给用户。从返回的还忙着想你哦!可看出组件的提示词你是我的女朋友,你很温柔,幽默。起到了一定的作用
image.png
当发送我想听个笑话,应用调用组件时自动做了API节点分支(调用笑话API接口),从返回结果中包含"按分类看笑话请发送"就可看出是触发了笑话API接口,而且还在后面加上了"希望你喜欢这个笑话…"的改写文本
image.png

引入SDK

2024年4月2日前发布的rag类应用可直接通过官方提供的API调用对应的应用,之后则推荐通过AppBuilder-SDK进行调用
官方提供Python、Java、Go等语言SDK:https://github.com/baidubce/app-builder
下文将结合One能聊天项目调用SDK为案例进行说明
pom.xml中引入依赖

<!-- 百度 AppBuilder -->
<dependency><groupId>com.baidubce</groupId><artifactId>appbuilder</artifactId><version>0.6.0</version>
</dependency>

简单SDK调用

@SneakyThrows
@RequestMapping("/baidu/appbuilder")
public Result baiduAppBuilder(@RequestBody Map<String, Object> params) {BaiduConfig baiduConfig = SpringU.getBean(BaiduConfig.class);// app-token获取:进入 https://console.bce.baidu.com/ai_apaas/secretKey 创建API秘钥System.setProperty("APPBUILDER_TOKEN", baiduConfig.getAppToken());// app-id获取:个人空间 - 应用 - 应用IDAgentBuilder agentBuilder = new AgentBuilder</

相关文章:

  • 六西格玛助力便携式产品功耗大降:打造绿色节能新标杆!
  • Spring MVC详解(上)
  • 描述React中的key属性的作用,为什么它对于列表渲染很重要?
  • Spring事务管理与Spring AOP详解
  • 大学课设项目,Windows端基于UDP的网络聊天程序的服务端和客户端
  • 五大维度大比拼:ChatGPT比较文心一言,你的AI助手选择指南
  • [深度学习]基于C++和onnxruntime部署yolov10的onnx模型
  • 神经网络 torch.nn---nn.LSTM()
  • 知识库的创建(1) - KnowledgeFile文件加载和分割
  • 震坤行与洛轴集团展开深化合作 以满足客户不断变化的需求
  • AI写代码,CS还有前途吗?加州大学伯克利分校:CDSS申请人数激增48%!
  • CesiumJS【Basic】- #006 浏览器控制台查看位置角度
  • “Redis中的持久化:深入理解RDB与AOF机制“
  • 深度学习训练——batch_size参数设置过大反而训练更耗时的原因分析
  • HCIA6以太网基础基于MAC划分VLAN
  • Go 语言编译器的 //go: 详解
  • hadoop集群管理系统搭建规划说明
  • input实现文字超出省略号功能
  • JAVA SE 6 GC调优笔记
  • java中具有继承关系的类及其对象初始化顺序
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • MySQL数据库运维之数据恢复
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Travix是如何部署应用程序到Kubernetes上的
  • webpack+react项目初体验——记录我的webpack环境配置
  • 对JS继承的一点思考
  • 精彩代码 vue.js
  • 入手阿里云新服务器的部署NODE
  • 一文看透浏览器架构
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #ifdef 的技巧用法
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (23)Linux的软硬连接
  • (27)4.8 习题课
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (libusb) usb口自动刷新
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (四)Controller接口控制器详解(三)
  • (转)视频码率,帧率和分辨率的联系与区别
  • .gitignore文件_Git:.gitignore
  • .naturalWidth 和naturalHeight属性,
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 提取注释生成API文档 帮助文档
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .Net6使用WebSocket与前端进行通信
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET值类型变量“活”在哪?
  • /etc/fstab和/etc/mtab的区别
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [AR]Vumark(下一代条形码)
  • [bzoj1324]Exca王者之剑_最小割
  • [C#] 如何调用Python脚本程序
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)
  • [CentOs7]iptables防火墙安装与设置