type
status
date
slug
summary
tags
category
icon
password
数字分身搭建
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!
GitHub地址:https://github.com/labring/FastGPT
体验地址:https://fastgpt.run/
AI知识库原理
核心流程图如下:
- 把私有数据进行切分后,使用模型进行向量化,然后存储到向量库中。
- 用户提问时先在向量库中进行向量搜索,匹配相关联的n条数据。
- 把用户的问题和向量库匹配结果格式化成一个Prompt,发送给大模型,得到最终结果。
知识库搭建
- 创建知识库
默认使用GPT的embedding模型把文本转成向量(不懂什么是向量也不影响使用哈)。
还可以设置标签,方便知识库进行分类
- 导入私有数据
支持丰富的导入方式。
可以手动输入QA,也可以从网络/本地文件中提取文本的方式导入
- 测试向量搜索
可以输入文本测试向量库的搜索,下面0.8884就是文本和知识库片段的相似度。
应用搭建
- 创建应用
我们选知识库+对话引导这个最经典的场景
- 关联知识库
关联刚创建的知识库,填写Prompt控制GPT的输出。
想要用好GPT,重之重就是Prompt。由于篇幅限制后续逐渐展开
- 测试知识库问答
这里就跟我们正常使用GPT一样,通过文本的方式对话,也支持聊天上下文。
同时还会显示向量搜索的结果,上下文情况,token消耗,完整响应日志,帮助我们优化应用。
飞书集成
所以可以很方便的把fastgpt的对话能力通过API,对接到飞书机器人中。
- 获取API秘钥
依次选择应用 -> 「API访问」,然后点击「API 密钥」来创建密钥。
利用刚复制的 API 秘钥加上 AppId 组合成一个新的秘钥,格式为:
API 秘钥-AppId
,例如:fastgpt-z51pkjqm9nrk03a1rx2funoy-642adec15f04d67d4613efdb
。- 服务部署
推荐使用Railway一键部署:https://railway.app/template/10D-TF?referralCode=oMcVS2
参考配置文件:
fastgpt集成重点参数:
- 创建飞书机器人
- 前往开发者平台创建应用,并获取到 APPID 和 Secret
- 前往
应用功能-机器人
, 创建机器人 - 从 cpolar、serverless 或 Railway 获得公网地址,在飞书机器人后台的
事件订阅
板块填写。例如, http://xxxx.r6.cpolar.top
为 cpolar 暴露的公网地址/webhook/event
为统一的应用路由- 最终的回调地址为
http://xxxx.r6.cpolar.top/webhook/event
- 在飞书机器人后台的
机器人
板块,填写消息卡片请求网址。例如, http://xxxx.r6.cpolar.top
为 cpolar 暴露的公网地址/webhook/card
为统一的应用路由- 最终的消息卡片请求网址为
http://xxxx.r6.cpolar.top/webhook/card
- 在事件订阅板块,搜索三个词
机器人进群
、接收消息
、消息已读
, 把他们后面所有的权限全部勾选。 进入权限管理界面,搜索图片
, 勾选获取与上传图片或文件资源
。 最终会添加下列回调事件 - im:resource(获取与上传图片或文件资源)
- im:message
- im:message.group_at_msg(获取群组中所有消息)
- im:message.group_at_msg:readonly(接收群聊中@机器人消息事件)
- im:message.p2p_msg(获取用户发给机器人的单聊消息)
- im:message.p2p_msg:readonly(读取用户发给机器人的单聊消息)
- im:message:send_as_bot(获取用户在群组中@机器人的消息)
- im:chat:readonly(获取群组信息)
- im:chat(获取与更新群组信息)
- 测试机器人问答
私聊机器人,或者群里艾特它,就可以基于导入的知识库进行回答啦。nice
总结
使用高级编排功能可以做出非常复杂应用,后续会出教程敬请期待
联系我
公众号:
微信:
- 作者:鹤涵
- 链接:https://www.hehanwang.com/article/fastgpt1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。