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

news2024/11/24 1:12:34

从开发到部署:一站式指南创建个性化 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://www.coloradmin.cn/o/644822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python3数据分析与挖掘建模(15)特征选择与特征变换

1 特征选择 1. 1 概述 特征选择是一种剔除与标注不相关或冗余的特征的方法,以减少特征集的维度和复杂性,并提高模型的性能和解释能力。特征选择的目标是选择那些对目标变量有预测能力且与其他特征不冗余的特征。 特征选择的方法可以分为三类&#xff…

【国产虚拟仪器】基于ARM+FPGA+8通道高速AD代替美国国家仪器的电能质量分析仪设计(一)NI方案介绍

一、背景:基于美国国家仪器的采集方案介绍 本文设计的电能质量分析仪数据分析系统以NI公司的National Instruments LabVIEW2018作为软件开发平台,结合硬件平台,实现数据的采集、波形显示和数据 分析。硬件电路的主要作用是对电网信号进行降幅…

聚焦产品研发,极米科技创新能力领跑行业

近年来,在消费升级、线上渠道迅速放量的背景下,家用智能投影已成为中国投影仪的第一大细分市场。有数据显示,2017年以来,中国消费级投影机出货量持续提升。根据第三方机构IDC(国际数据公司)统计&#xff0c…

Matter实战系列-----3.Matter Light和Switch配网和控制实验

专有名词: OT-RCP: Open Thread Radio Co-Processor 。 Thread 无线协处理器 OTBR: Open Thread Board Router 。 Thread 边界路由器 chip-tool: Linux 应用程序。用于 Matter 协议控制 ot-ctl: Thread 网络控…

爬虫一定要用代理ip吗?

使用代理IP可以帮助爬虫隐藏真实IP地址,防止被网站封禁或限制访问。此外,使用代理IP还可以帮助爬虫绕过一些地区或国家的访问限制,获取更多的数据。因此,对于一些需要频繁爬取数据的爬虫,使用代理IP是一个不错的选择。…

2023如何选择适合自己的浪涌保护器

浪涌保护器对许多人来说并不熟悉,但是如果您担心您拥有的电子设备和家用电器的安全性并保护它们免受电涌的影响,那么您必须了解电涌保护器以及它们的工作原理。 在没有电涌保护器的情况下直接使用昂贵的电子家用电器是危险的,即使发生电涌的…

【taro react】---- 解决H5接入uni-app版本的IM

1. 问题 由于项目开发比较紧张,腾讯 IM 的接入就使用了 TUIKit 含UI集成方案,遇到的问题,uni-app的UI本来就是一个单独的项目,需要集成到现有的 Taro React 中,就只能作为一个独立的项目,不跳转时不影响原有…

原型模式(七)

不管怎么样,都要继续充满着希望 上一章简单介绍了抽象工厂模式(六), 如果没有看过,请观看上一章 一. 原型模式 引用 菜鸟教程里面的原型模式介绍: https://www.runoob.com/design-pattern/prototype-pattern.html 原型模式(Prototype Pattern&#xf…

为什么Potplayer是值得一用的视频播放器?

名人说:往者不可谏,来者犹可追。——语出《论语微子篇》 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) o(‐^▽^‐)o很高兴你打开了这篇博客,跟着步骤一步步尝试安装吧。✧ 目录…

创新指南|企业创新可以3步做对深科技战略

企业在制定科技创新战略时如何采用深科技策略?那些涉及先进计算和科学技术的创新,如人工智能、区块链和量子计算等,企业需要意识到深科技的潜力和影响,通过采取三步法参与深科技创新生态,企业可以保持竞争力&#xff0…

docker 容器安全注意与https

隔离与共享: 虚拟机通过添加hypervisor层(虚拟化中间层),等虚拟出网卡,内存,cpu硬件,再在其上建立虚拟机,每个虚拟机都有自己的系统内核。docer通过隔离的方式,将文件系…

【工具】Ubuntu18非root用户安装CUDAPyTorch

文章目录 CUDA查看GPU驱动支持的最高CUDA版本CUDA download指定路径安装CUDA cuDNN验证cuda是否安装成功以及版本信息 pytorch验证pytorch是否安装成功&GPU是否可用MMDetection3D CUDA 查看GPU驱动支持的最高CUDA版本 运行命令:nvidia-smi CUDA Version: 11.…

延时函数:普通延时,硬件定时器延时,系统定时器延时

一、普通延时函数 此种延时是基于让MCU做一些无意义的循环操作来打发时间,优点是简单易懂,缺点是会占用MCU的处理资源且精度较低,主要用于程序简单、无严格时间要求的场景中。 //微秒级的延时 void delay_us(uint32_t delay_us) { volat…

C语言实战之、<<、>>

1、&(按位与) 按位与运算将两个运算分量的对应位按位遵照以下规则进行计算: 0 & 0 0, 0 & 1 0, 1 & 0 0, 1 & 1 1。 即同为 1 的位,结果为 1,否则结果为 0。 例如,设3的内部表示为…

6--Gradle进阶 - 项目的生命周期

6--Gradle进阶 - 项目的生命周期 项目的生命周期 Gradle 项目的生命周期分为三大阶段: Initialization -> Configuration -> Execution. 每个阶段都有自己的职责,具体如下图所示: Initialization 阶段主要目的是初始化构建, 它又分为两个子过程,一个是执行 Init Script,另…

转载:卷积神经网络结构组成与解释

原文链接:卷积神经网络结构组成与解释 卷积神经网络是以卷积层为主的深度网路结构,网络结构包括有卷积层、激活层、BN层、池化层、FC层、损失层等。卷积操作是对图像和滤波矩阵做内积(元素相乘再求和)的操作。 1. 卷积层 常见的…

华为OD机试真题 JavaScript 实现【货币单位换算】【2023Q1 100分】

一、题目描述 记账本上记录了若干条多国货币金额,需要转换成人民币分 (fen),汇总后输出每行记录一条金额,金额带有货币单位,格式为数字单位,可能是单独元,或者单独分,或者元与分的组合要求将这…

Vue的传值

目录 1. 属性传值 1.1 语法 1.2 属性和数据源同名 2. 反向传值 2.1 属性绑定自定义事件 简单案例: 购物车算总价案例: 2.2 v-model 组件的双向数据绑定 3. 透传(多层组件传值) 3.1 类型透传 3.2 属性穿透 v-bind"…

『2023北京智源大会』6月9日会议内容

『2023北京智源大会』6月9日上午|开幕式及全体大会 文章目录 一. 黄铁军丨智源研究院院长1. 大语言模型2. 大语言模型评测体系FlagEval3. 大语言模型生态(软硬件)4. 三大路线通向 AGI(另外2条路径) 二. Towards Machines that can Learn, Reason, and Plan(杨立昆丨图灵奖得主…