type
status
date
slug
summary
tags
category
icon
password
数字分身搭建
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!
GitHub地址:https://github.com/labring/FastGPT
体验地址:https://fastgpt.run/
AI知识库原理
核心流程图如下:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2F5300ec12-2773-4735-ba6f-aab406975d87%2FUntitled.png?table=block&id=1fc5c9d2-98cf-4c0c-ae8c-0ecfb8f0deba&t=1fc5c9d2-98cf-4c0c-ae8c-0ecfb8f0deba&width=2274&cache=v2)
- 把私有数据进行切分后,使用模型进行向量化,然后存储到向量库中。
- 用户提问时先在向量库中进行向量搜索,匹配相关联的n条数据。
- 把用户的问题和向量库匹配结果格式化成一个Prompt,发送给大模型,得到最终结果。
知识库搭建
- 创建知识库
默认使用GPT的embedding模型把文本转成向量(不懂什么是向量也不影响使用哈)。
还可以设置标签,方便知识库进行分类
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2Fe36934a2-d714-43a3-8728-855a2bfac1ea%2FUntitled.png?table=block&id=f2be6c83-7a28-4ca9-8a3e-11137c847fdd&t=f2be6c83-7a28-4ca9-8a3e-11137c847fdd&width=2780&cache=v2)
- 导入私有数据
支持丰富的导入方式。
可以手动输入QA,也可以从网络/本地文件中提取文本的方式导入
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2F20a319bb-f83e-467a-8a86-9580e1dcc7f1%2FUntitled.png?table=block&id=c342d8d4-9639-4f7a-afd7-d3ef2bc0f473&t=c342d8d4-9639-4f7a-afd7-d3ef2bc0f473&width=2836&cache=v2)
- 测试向量搜索
可以输入文本测试向量库的搜索,下面0.8884就是文本和知识库片段的相似度。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2Fc02168d9-2698-4d32-b36a-3cba05ff1eb0%2FUntitled.png?table=block&id=c7f91644-f8d9-4325-92cf-2ed50c25b290&t=c7f91644-f8d9-4325-92cf-2ed50c25b290&width=2698&cache=v2)
应用搭建
- 创建应用
我们选知识库+对话引导这个最经典的场景
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2F8490e17b-ddd7-4a1d-8c20-2dcc23f74239%2FUntitled.png?table=block&id=80ce4039-54a6-4666-8e7b-ea27cbe390f1&t=80ce4039-54a6-4666-8e7b-ea27cbe390f1&width=2808&cache=v2)
- 关联知识库
关联刚创建的知识库,填写Prompt控制GPT的输出。
想要用好GPT,重之重就是Prompt。由于篇幅限制后续逐渐展开
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2Ff28dba97-d1fb-46c1-a6f5-3a73aa4e63d9%2FUntitled.png?table=block&id=d783eea1-8278-4c51-98c7-c51760156d9e&t=d783eea1-8278-4c51-98c7-c51760156d9e&width=2800&cache=v2)
- 测试知识库问答
这里就跟我们正常使用GPT一样,通过文本的方式对话,也支持聊天上下文。
同时还会显示向量搜索的结果,上下文情况,token消耗,完整响应日志,帮助我们优化应用。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2F2435a554-633f-4e05-9202-bfc60c7d7311%2FUntitled.png?table=block&id=a673c34e-d563-4467-86e4-1df55c6fd14d&t=a673c34e-d563-4467-86e4-1df55c6fd14d&width=2826&cache=v2)
飞书集成
所以可以很方便的把fastgpt的对话能力通过API,对接到飞书机器人中。
- 获取API秘钥
依次选择应用 -> 「API访问」,然后点击「API 密钥」来创建密钥。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2F271ff267-1209-470d-b644-0db074709577%2FUntitled.png?table=block&id=8e56ebdf-8ab1-4316-9575-52604f1f6ce3&t=8e56ebdf-8ab1-4316-9575-52604f1f6ce3&width=3840&cache=v2)
利用刚复制的 API 秘钥加上 AppId 组合成一个新的秘钥,格式为:
API 秘钥-AppId
,例如:fastgpt-z51pkjqm9nrk03a1rx2funoy-642adec15f04d67d4613efdb
。- 服务部署
推荐使用Railway一键部署:https://railway.app/template/10D-TF?referralCode=oMcVS2
参考配置文件:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2Fc93e0215-8470-498c-85b9-232903006e76%2FUntitled.png?table=block&id=a1dfb530-eff3-48dd-972f-c3382a06abb8&t=a1dfb530-eff3-48dd-972f-c3382a06abb8&width=1310&cache=v2)
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
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5fdde3cf-8f5c-4292-84e6-0bb16a36f7d7%2F9e626c9d-7c11-460b-a24c-4c1ef3dbabc9%2FUntitled.png?table=block&id=abc99904-898c-4fb1-9429-9811cea8205a&t=abc99904-898c-4fb1-9429-9811cea8205a&width=800&cache=v2)
总结
使用高级编排功能可以做出非常复杂应用,后续会出教程敬请期待
联系我
公众号:
![notion image](https://s2.loli.net/2023/09/07/GY7HnaNqf1eKtyd.png?t=d98e29db-6ea0-43b4-96eb-4ae2f0bca52a)
微信:
![notion image](https://s2.loli.net/2023/09/07/vfFCGmnzsbMTupy.png?t=75e2d278-7a3a-4602-8b62-63018107ba48)
- 作者:鹤涵
- 链接:https://www.hehanwang.com/article/fastgpt1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。