🚢飞书数字分身:小白也能轻松上手!
00 分钟
2023-9-14
2023-11-20
type
status
date
slug
summary
tags
category
icon
password

数字分身搭建

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

AI知识库原理

核心流程图如下:
notion image
  1. 把私有数据进行切分后,使用模型进行向量化,然后存储到向量库中。
  1. 用户提问时先在向量库中进行向量搜索,匹配相关联的n条数据。
  1. 把用户的问题和向量库匹配结果格式化成一个Prompt,发送给大模型,得到最终结果。

知识库搭建

  1. 创建知识库
    1. 默认使用GPT的embedding模型把文本转成向量(不懂什么是向量也不影响使用哈)。
      还可以设置标签,方便知识库进行分类
      notion image
  1. 导入私有数据
    1. 支持丰富的导入方式。 可以手动输入QA,也可以从网络/本地文件中提取文本的方式导入
      notion image
  1. 测试向量搜索
    1. 可以输入文本测试向量库的搜索,下面0.8884就是文本和知识库片段的相似度。
      notion image

应用搭建

  1. 创建应用
    1. 我们选知识库+对话引导这个最经典的场景
      notion image
  1. 关联知识库
    1. 关联刚创建的知识库,填写Prompt控制GPT的输出。
      想要用好GPT,重之重就是Prompt。由于篇幅限制后续逐渐展开
      notion image
  1. 测试知识库问答
    1. 这里就跟我们正常使用GPT一样,通过文本的方式对话,也支持聊天上下文。
      同时还会显示向量搜索的结果,上下文情况,token消耗,完整响应日志,帮助我们优化应用。
      notion image

飞书集成

由于 FastGPT 的 OpenAPI 功能和 GPT 的对齐,可以无需变更原来的应用即可使用 FastGPT 上编排好的应用。API 使用,可 参考这篇文章。编排示例,可参考 高级编排介绍
 
所以可以很方便的把fastgpt的对话能力通过API,对接到飞书机器人中。
  1. 获取API秘钥
    1. 依次选择应用 -> 「API访问」,然后点击「API 密钥」来创建密钥。
      notion image
      利用刚复制的 API 秘钥加上 AppId 组合成一个新的秘钥,格式为:API 秘钥-AppId,例如:fastgpt-z51pkjqm9nrk03a1rx2funoy-642adec15f04d67d4613efdb
  1. 服务部署
    1. 参考配置文件:
      notion image
      fastgpt集成重点参数:
  1. 创建飞书机器人
    1. 前往开发者平台创建应用,并获取到 APPID 和 Secret
    2. 前往应用功能-机器人, 创建机器人
    3. 从 cpolar、serverless 或 Railway 获得公网地址,在飞书机器人后台的 事件订阅 板块填写。例如,
        • http://xxxx.r6.cpolar.top为 cpolar 暴露的公网地址
        • /webhook/event为统一的应用路由
        • 最终的回调地址为 http://xxxx.r6.cpolar.top/webhook/event
    4. 在飞书机器人后台的 机器人 板块,填写消息卡片请求网址。例如,
        • http://xxxx.r6.cpolar.top为 cpolar 暴露的公网地址
        • /webhook/card为统一的应用路由
        • 最终的消息卡片请求网址为 http://xxxx.r6.cpolar.top/webhook/card
    5. 在事件订阅板块,搜索三个词机器人进群、 接收消息、 消息已读, 把他们后面所有的权限全部勾选。 进入权限管理界面,搜索图片, 勾选获取与上传图片或文件资源。 最终会添加下列回调事件
        • 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(获取与更新群组信息)
  1. 测试机器人问答
    1. 私聊机器人,或者群里艾特它,就可以基于导入的知识库进行回答啦。nice
      notion image

总结

使用高级编排功能可以做出非常复杂应用,后续会出教程敬请期待

联系我

公众号:
notion image
微信:
notion image
 
 

评论
  • Utterance