从开发到部署:一站式指南创建个性化 Slack App 问答机器人

从开发到部署:一站式指南创建个性化 Slack App 问答机器人

介绍 - 开场白

  • 自我介绍:介绍你自己,包括你的背景和经验,以便观众了解你的资质。
  • 说明视频的目的和主题:明确说明你要录制这个视频的目的,例如教观众如何开发 Slack App 问答机器人。
    • 为知识付费值得,但是为免费的知识付费就不值得了
      • 当然这里其实别人把免费的整理起来还是可以的,但是⬇
    • 拒绝割韭菜,从我做起
      • 割其实我不反对,我也想。但是好多大佬都把小白当成白痴来割,让人不爽。
      • 明明有的大佬分享干货,各种解答疑惑,才赚那么点钱
      • 而有的人拿着免费的东西,却能大割特割
    • 通过Chat GPT开发Slack App问答机器人 语音识别+gpt3.5+gpt4
      • 回复速度挺慢的,api生成速度比较缓慢再加上网络问题

Slack App 问答机器人简介

  • 解释什么是 Slack App:介绍 Slack App 的概念和功能,以及它如何为用户提供沟通和协作的平台。

    • slack类似于一个全端聊天工具,是一款企业级的团队协作和沟通工具。提供了bot接口,可以让开发者自己开发应用。

    • 利用slack的app来实现gpt问答功能

    • 增加语音对话,其实没什么东西,使用slack的app会有发送语音的功能,然后机器人将语音->文本->gpt->语音即可

      • 这个其实是看微信公众号的一个人割韭菜发的,然后简单实现了一下,理论上讲功能差距应该不大。

        image-20230525163101755

    • 文案机器人,各种不同的对话。没啥乱用,直接用Chat GPT也可以实现

  • 说明问答机器人的用途和好处:阐述为什么开发一个问答机器人对于团队或组织来说是有价值的,例如提高效率、解答常见问题等。

    • 这里其实只是单纯看不惯别人割韭菜,虽然我也想割。
    • 没有什么好的中文参考资料
    • 简单分享

准备工作

  • Slack 工作区的创建和设置:演示如何创建一个新的 Slack 工作区,并设置所需的频道和权限。

  • 创建一个新的 Slack App:步骤展示如何创建一个新的 Slack App,并选择适当的权限和功能。

    • 这里我简单演示一下

      image-20230525151056272

      • 点击From scratch

      image-20230525151148255

  • 生成认证令牌和安装应用到工作区:演示如何生成用于认证的令牌,并将应用程序安装到 Slack 工作区中。

    • 弄好权限后点击install App即可

编写问答机器人的代码

  • 选择适合的编程语言和开发环境:介绍一些常用的编程语言和开发环境,让观众了解可选项。
    • 这里选择的是python,然后用到的库有
      • slack_bolt
      • logging
      • gtts
      • whisper
      • openai
      • json
      • io
      • requests
      • redis
      • re
      • time
    • 开发其实主要依靠Chat GPT写大概,然后通过我来补全详细功能
      • 利用slack_bolt接入bot
      • 接收用户信息
      • 单独回复
      • 接入openai
      • 获取语音消息
      • 文本转换
      • 流式输出
    • 用到的工具有:
      • Pycharm
      • Chat GPT
      • Google
      • Redis
  • 初始化一个新的项目:演示如何创建一个新的项目,并设置必要的依赖项。
    • pip install -i https://mirrrors.cloud.tencent.com/pypi/simple
    • pip install --proxy http://127.0.0.1:7890
    • 通过Chat GPT写初始代码
    • 写语音转文本,文本转语音代码
    • 流式输出回答
  • 引入 Slack App 相关的库或 SDK:介绍可用的 Slack App 开发库或 SDK,并演示如何导入和配置它们。
    • 利用到的方法有
      • chat_update 更新文本–流式输出(很丑陋,没有Claude的优雅)
      • chat_postMessage 发送消息
      • files_upload_v2 上传文件
      • conversations_replies 读取历史文本(可选)
  • 创建问答机器人的基本结构和功能:展示如何创建问答机器人的基本代码结构,并解释每个组件的作用。
    • chat
      • 调用openai
    • download
      • 下载音频附件
    • get_text
    • is_chinese
      • 判断是否为中文
    • gen_voice
      • 生成语音
        • 文本转语音使用pyttsx3在Windows上效果非常好,可惜在Linux上不行
        • 使用gtts效果一般
    • handle_app_mention_events
      • bot主进程

设置事件订阅和处理

  • 注册和处理 Slack 事件:解释如何注册并处理 Slack 事件,以便与用户的消息和互动进行交互。
    • 通过@app.event("app_mention")驱动进程
    • 利用body里的event获取对话参数
    • 将对话数据存入redis中/读取历史文本
  • 监听用户消息和应答:演示如何监听用户发送的消息,并根据特定的触发条件做出相应的应答。
    • 通过app_mention监听@事件
      • View messages that directly mention @chatgpt in conversations that the app is in
    • 通过channel_id以及thread_ts固定对话
  • 报错

添加问答功能

  • 创建问题和答案的数据结构:介绍如何设计和组织问题和答案的数据结构,以便问答机器人能够进行匹配。
    • 无结构
  • 实现问答匹配逻辑:演示如何编写匹配算法,使问答机器人能够根据用户的问题找到相应的答案。
    • 调用openai
  • 响应用户的问题并返回正确的答案:展示如何编写代码,使机器人能够根据匹配结果向用户提供正确的答案。
    • 等待回答生成返回
    • 流式生成返回
  • 根据聊天记录来进行连续对话
    • 通过redis存储对话数据来进行连续对话
      • channel_id:thread_ts对应一个对话
      • 通过get获取历史数据
        • 存在则加载历史记录
        • 不存在则创建新对话
    • conversations_replies(channel, ts)提供channel_id以及thread_ts即可获取对话历史
      • 这个我记得有弊端还是因为懒得处理返回数据。

部署问答机器人

  • 配置部署环境:演示如何设置部署环境,例如选择服务器或云平台,并进行相应的配置。
    • 用的美国服务器,国内貌似墙了openai
      • 解密中国长城防火墙(GWF)背后的数据
      • 中国为什么要架长城防火墙? 这墙该不应架
  • 部署应用程序到生产环境:展示如何将问答机器人的应用程序部署到选定的环境中,并确保其正常运行。
    • 无需更改代码,使用docker搭建环境
      • 没有打包镜像,直接创建的python容器然后pip install
  • 配置应用在 Slack 工作区中的设置:演示如何在 Slack 工作区中配置问答机器人的设置,例如添加命令、权限和触发条件。
    • 无需修改

在 Slack 中测试问答机器人

  • 在 Slack 工作区中使用问答机器人:演示在 Slack 中与问答机器人进行实际的测试对话,以验证其功能和准确性。
  • 演示不同的问题和回答:展示多个例子,涵盖不同类型的问题和相应的答案,以展示机器人的灵活性和适应性。
  • 检查问答机器人的性能和准确性:讨论如何评估问答机器人的性能,并提供一些建议来改进和优化其准确性和响应速度。
  • 利用的是openai所以其实准确度是要看openai的,简单问几个问题/部分问题来自于弱智吧
    • In the room there are John, Mark, a cat, a box, and a basket. Joh n takes the cat and puts it in the basket. He leaves the room and goes to school. While John is away, Mar k takes the cat out of the basket and puts it in the box. Mark leaves the room and goes to work. John and ! Mark come back and enter the room. They don’t know what happened in the room when they were a way. What do they think?
    • 介绍一下你自己
    • 如何评价如何评价
    • 昨天朋友家孩子考上大学了,我去吃酒身上没现金,向他借了800元随礼,回家后我就微信转800元还给他,结果他说我白吃了他一顿饭。问,谁对谁错?
    • 眼镜蛇在人们发明眼镜之前叫做什么
    • 马上要上游泳课了,昨天洗的泳裤还没干,怎么办
    • 桑拿房里那么热也不装空调是为什么?
    • 几十年过去了,第一个登月的人还是阿姆斯特朗,这是怎么回事?
      A.资本主义的阴谋 B.西方政府的阴谋 C.三体人的阴谋
    • 郭富城为斯蒂芬尼做了一件非常成功的工作:他打开桌子,揉了揉指甲。你和你老婆春节后生了一个坏女孩。盖尔和白鸟王被萨克兄弟的车吓了一跳。孙武汉手机壳健康,每次洗内裤手机壳驾驶室依然健康
      1.联系上下文,说一说“非常成功的工作”在文中指什么
      2.白鸟王的人物形象是怎么样的?结合你的生活,分析白鸟王的形象
      3.文中的“手机壳驾驶室”和前文中萨克兄弟的车有什么关系?
      4.本文描写了一副什么样的景色?请为本文起上三个合适的题目,并选择一个填在题目栏中
      5.文中各处文字无不透露出作者对当时社会腐朽昏暗,人们自甘堕落的愤怒与忧伤,请选出文中的一处描写,对其加以分析,不少于250字
    • 活人和死人结婚是冥婚,那死人和活人结婚叫什么?
    • 骄兵必败,而败兵必哀,而哀兵必胜,所以骄兵必胜

总结和结语

  • 回顾视频中的主要内容和步骤:总结你在整个视频中介绍的关键步骤和概念,以帮助观众复习和理解。
  • 强调问答机器人的优点和潜在应用:提供更多关于问答机器人的优势和潜在应用领域的信息,激发观众对其可能性的兴趣。
    • 前面已经说了,其实最方便的就是国内可用。
    • 但是需要非国内邮箱注册,推荐outlook
    • gpt的账号实际上买才2.5元一个,还有5刀的api余额
      • 如果自己注册的话,除了冲接码平台的钱以外几乎一分不花
    • 利用搜索引擎
      • bing
      • phind
      • duckduckgo
      • google
      • 百度
    • 利用Ai
      • ChatGPT
      • 文心一言
      • new bing
  • 提供有用的资源和链接:分享相关文档、教程、库或其他资源的链接,供观众深入学习和进一步开发。
  • 结束视频:感谢观众的观看,并鼓励他们在评论或其他方式中提供反馈和问题。

从开发到部署:一站式指南创建个性化 Slack App 问答机器人

http://www.datehoer.com/posts/69c5e43b-6e80-11ee-a697-01b0896cf41d/

作者

datehoer

发布于

2023-05-12

更新于

2023-10-19

许可协议

评论