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

news/2024/7/7 20:53:21

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

01 简介

做这个教程是因为看别人拿免费的割韭菜很不爽,所以准备做个教程来教大家如何搭建一个问答机器人

内核其实就是利用了slack提供的官方api,自己创建app然后获取艾特信息,将数据转发到gpt的api上进行对话。

语音对话其实也没什么,就是slack支持发送语音消息,然后可以通过api获取到文件数据,之后利用语音转文本以及文本转语音实现语音对话。

之前其实是没有做语音对话的功能的,可惜当时看到了一个公众号上发的这个,用来割韭菜。

slack不需要翻墙,并且支持多端操作,我一般都用网页端。

注册的话,邮箱需要是非国内的,建议用outlook。

02 准备工作

我现在做开发一般都是用的python3.9,小版本的话最高支持的就可以,建议用anaconda安装

然后就是slack注册啥的就不说了,简单说一下权限吧。

  • 权限具体到需要哪个我其实也不记得了,我建议像我一样都给。

    • app_mentions:read
    • channels:history
    • channels:read
    • chat:write
    • files:read
    • files:write
    • im:write
    • mpim:write
  • 然后需要的token有

    • User OAuth Token
    • Signing Secret
    • App-level tokens
  • 创建一个新的 Slack App:步骤展示如何创建一个新的 Slack App,并选择适当的权限和功能。

    • 这里我简单演示一下

    • 进入 Slack API 平台,创建一个 Slack App。

    • 进入Your app

    • 点击Create New App

    • 点击From scratch

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

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

python需要的库

  • slack_bolt
  • logging
  • gtts
  • whisper
  • openai
  • json
  • io
  • requests
  • redis
  • re
  • time

简单介绍一下这几个库。

slack_bolt操作slack_app的,logging日志,gtts文本转语音,whisper语音转文本,requests模拟请求

具体的流程就是下面的这几个

  • 利用slack_bolt接入bot
  • 接收用户信息
  • 单独回复
  • 接入openai
  • 获取语音消息
  • 文本转换
  • 流式输出

用到的工具有:

  • Pycharm
  • Chat GPT
  • Google
  • Redis

程序的几个主要的方法有下面这几个

  • chat
    • 调用openai
  • download
    • 下载音频附件
  • get_text
    • 语音转文本
    • 利用的是openai的whisper库,这个其实也可以使用它的那个openai库里的whisper
  • is_chinese
    • 判断是否为中文
  • gen_voice
    • 生成语音
    • 文本转语音使用pyttsx3在Windows上效果非常好,可惜在Linux上不行
    • 使用gtts效果一般
  • handle_app_mention_events
    • bot主进程

那么接下来就开始开发slack app吧

演示视频地址:

视频演示地址icon-default.png?t=N4P3https://space.bilibili.com/294039626/channel/seriesdetail?sid=3355981
录了gpt3.5,gpt4以及Claude的对话


http://lihuaxi.xjx100.cn/news/1243274.html

相关文章

c++11 标准模板(STL)(std::ios_base)(四)

定义于头文件 <ios> class ios_base; 类 ios_base 是作为所有 I/O 流类的基类工作的多用途类。它维护数种数据&#xff1a; 1) 状态信息&#xff1a;流状态标志&#xff1b; 2) 控制信息&#xff1a;控制输入和输出序列格式化和感染的本地环境的标志&#xff1b; 3)…

四个强制类型转换reinterpret_castconst_caststatic_cast dynamic_cast及比较

四个强制类型转换reinterpret_cast/const_cast/static_cast /dynamic_cast及比较 reinterpret_cast reinterpret_cast 是一种 C 转换运算符&#xff0c;允许程序员在不更改原始对象的情况下将指针或引用转换为不同的类型。 它是一个非常强大且具有潜在危险的运算符&#xff0…

深入剖析@RequestBody、@PathVariable和@RequestParam注解

当我们在开发服务端方法时&#xff0c;遇到给方法传参的有几个不同的注解&#xff0c;今天我们来介绍 RequestBody、PathVariable 和 RequestParam 这几个注解的定义和使用场景示例&#xff0c;以便于同学们理解和掌握。 RequestBody 注解&#xff1a; 定义&#xff1a; Reques…

CVE-2023-0215

mysql 安全漏洞 生产版本&#xff1a;5.5 漏洞编号&#xff1a; CVE编号 CVE-2023-0215 CNNVD编号 CNNVD-202302-521 另外还有以下其他漏洞&#xff1a; 解决办法&#xff1a; 1.下载补丁需要CSI,买了oracle服务才可能会有这个认证码&#xff1b; 2.没有这个认证码&#…

阿里云PAIx达摩院GraphScope开源基于PyTorch的GPU加速分布式GNN框架

作者&#xff1a;艾宝乐 导读 近期阿里云机器学习平台 PAI 团队和达摩院 GraphScope 团队联合推出了面向 PyTorch 的 GPU 加速分布式 GNN 框架 GraphLearn-for-PyTorch(GLT) 。GLT 利用 GPU 的强大并行计算性能来加速图采样&#xff0c;并利用 UVA 来减少顶点和边特征的转换和…

【数据结构】数据结构与算法基础 课程笔记 第八章 排序

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;【数据结构】 &#x1f4ac;总结&#xff1a;希望看完之后&#xff0c;能…

ROS-melodic:源码安裝teb_local_planner算法、替换DWA算法

一.安裝teb_local_planner算法 源码下载地址&#xff1a;GitHub - rst-tu-dortmund/teb_local_planner: An optimal trajectory planner considering distinctive topologies for mobile robots based on Timed-Elastic-Bands (ROS Package) 注意选择对应ROS版本的代码。 放在…

作为一个优秀的项目经理,你需要做什么?

经常看到这样的项目经理&#xff0c;一副整天忙得团团转的样子&#xff0c;整天忙得团团转&#xff0c;发出一大堆指令&#xff0c; 经常事无巨细都要亲自过问&#xff0c;他还会不断抱怨说&#xff1a; " 我很忙 " 或 " 我很累 " &#xff0c; " 我…