GPT接入飞书
GPT接入飞书
在体验ChatGPT这方面,我算是晚的。使用下来,更多的是对于这种应用形式感到兴奋,而不是ChatGPT的专业能力。
得知OpenAI提供GPT3的Api接口后,我想到了将其接入团队飞书中,便于日常调用。
于是,使用Python从实现了一个飞书机器人后端,不依赖其他机器人框架,并将GPT接入。
仓库链接:https://github.com/HuXioAn/GPT-Lark.git
效果展示
## 功能概述
功能上非常简单,就是机器人与用户单聊进行对话。除此之外还有几个小功能和特性。
多线程与多token支持
配置方面使用了json文件,特别是token的配置:
{
"Bot":{
"profile":{
"app_id":"",
"app_secret":""
},
"bot_api_token":""
},
"WebHook":{
"port": 6666,
"route": "/"
},
"Api":[
{
"api_token": "",
"owner": "",
"available": true
},
{
"api_token": "",
"owner": "",
"available": true
},
{
"api_token": "",
"owner": "",
"available": true
}
]
}
token可以根据配置文件的内置自动加载,配合自动收集功能可以动态更新token列表并写回文件。
支持多个token是为了更好的均衡负载、支持多用户并发使用,以及解决最常见的问题:api调用过于频繁。程序会按照使用频率安排token队列,实现均衡负载。并尽可能保证用户使用同一个token,为后续GPT3.5原生连续对话做准备。
token自动收集
咱们都知道,OpenAI赠送的18美元额度对于个人来说确实不少,可如果是面向多人使用,特别是非盈利性质的,token是很快会被榨干的。所以让使用者贡献出自己的token是必要的,为了简化与自动化这一流程,添加了自动token收集。
只需要将token发送给机器人,识别到token后会自动验证token是否可用,并返回是否成功。若token可用,将会加入服务列表以及写回配置文件。效果如下:
后期配合token失效自动检出能达到更好的效果。
其他功能
可以在项目仓库的readme中看到TODO List,有一些比较有意思的想法。
比如按照官方给出的实例使用few shot
模式让GPT的回答带有情绪风格,或者加入专用token功能以实现可持续发展。
使用说明
基本使用请参照仓库readme~
环境说明
本项目不依赖机器人框架以及飞书官方SDK,轻量化且运行难度低。
实测使用国内腾讯云服务器以及美国VPS均可,都可联通OpenAI服务。
仓库地址:https://github.com/HuXioAn/GPT-Lark
技术新人,水平有限,文中纰漏请一定指出,如有其他意见也请不吝赐教。更多相关内容请移步公众号,来找我聊聊天吧:
GPT接入飞书的更多相关文章
- Worktile正式入驻飞书,助力企业轻松实现敏捷开发与协作
企业在敏捷研发中时常面临着交付延期.需求不匹配等问题,如何更高效地完成敏捷研发? Worktile携手飞书,为企业用户提供敏捷开发服务,帮助企业实现软件项目的需求管理.缺陷追踪.迭代规划与推进以及效能 ...
- Python调用飞书发送消息
一.创建飞书机器人 自定义飞书机器人操作步骤,具体详见飞书官方文档:<机器人 | 如何在群聊中使用机器人?>
- JustAuth 1.15.9 版发布,支持飞书、喜马拉雅、企业微信网页登录
新增 修复并正式启用 飞书 平台的第三方登录 AuthToken 类中新增 refreshTokenExpireIn 记录 refresh token 的有效期 PR 合并 Github #101:支 ...
- 火山引擎MARS-APM Plus x 飞书 |降低线上OOM,提高App性能稳定性
通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的 ...
- Jenkins+Allure测试报告+飞书机器人发送通知
一.前言 之前讲了jenkins如何设置定时任务执行脚本,结合实际情况,本篇讲述在jenkins构建成功后,如何生成测试报告,以及推送飞书(因为我公司用的是飞书,所以是发送到飞书机器人). 本次实践搞 ...
- 飞书前端提到的竞态问题,在 Android 上怎么解决?
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...
- 【Mock平台】测试开发实战01-开篇PRD和需求详细
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 平台背景 从业务特性上,不少测试的服务很多是依赖第三方的接口的,比如其中的支付场景,就需要很多状态的返回进行验证,但大部分服务提供商没有很 ...
- 提高可测性-Mock平台设计和整体规划
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 平台背景 从业务特性上,不少测试的服务很多是依赖第三方的接口的,比如其中的支付场景,就需要很多状态的返回进行验证,但大部分服务提供商没有很 ...
- 动态线程池框架 DynamicTp v1.0.6版本发布。还在为Dubbo线程池耗尽烦恼吗?还在为Mq消费积压烦恼吗?
DynamicTp 简介 DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为 动态调参.通知报警.运行监控.三方包线程池管理等几大类. 经过几个版本迭代,目前最新 ...
- 【开源】我和 JAP(JA Plus) 的故事
JA Plus 故事 程序员的故事如此简单之绕不过去的开源情结 我们准备做一件伟大的事,也可以说是一件真真正正普惠的事. 絮 是的,你没有看错,就是"絮"而非"序&quo ...
随机推荐
- day31 1 tomcat介绍与创建web项目 & 2 继承HttpServlet类、配置webxml全局配置文件 & 3 servlet生命周期 & 4 请求对象HttpServletRequest与响应对象HttpServletResponse
Servlet Java Servlet是运行在Web服务器或应用服务器上的程序,作为客户端(Web浏览器或其他HTTP客户端)和服务端(HTTP服务器上的数据库或应用程序)之间的中间层. 使用Ser ...
- nginx配置文件单独创建和管理
在nginx主配置文件nginx.conf的http模块下引入配置文件夹(注意路径的正确性) 1.nginx主配置文件备份后编辑(nginx配置存放位置:/usr/local/nginx/conf/) ...
- Fastjson漏洞+复现
1.漏洞介绍 FastJson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性.通过查找代码中相关的方法,即可构造出一些恶意利用链. ...
- CountDownLatch闭锁源码解析(基于jdk11)
目录 CountDownLatch闭锁源码解析(基于jdk11) 1.1 CountDownLatch概述 1.2 CountDownLatch原理 1.2.1 基本结构(jdk11) 1.2.2 a ...
- python 中文分词工具
python 中文分词工具 jieba,https://github.com/fxsjy/jieba jieba_fast,https://github.com/deepcs233/jieba_fas ...
- ATM项目
ATM项目实战 项目需求分析: 1.注册(密码要加密) 2.登陆 3.查看余额 4.提现(可自定手续费) 5.还款 6.转账 7.查看流水 8.添加购物车功能 (商品可配置) 9.查看购物车功能 10 ...
- 《MySQL必知必会》之快速入门存储过程
使用存储过程 本章介绍什么是存储过程,为什么使用.如何使用,并介绍如何创建和使用存储过程的基本语法 存储过程 在实际应用中,往往需要执行多个表的多条sql语句 存储过程就是为以后的使用而保存的一条或者 ...
- Day38:Lambda表达式
Lambda表达式 1.1 概述 Lambda是JDK8开始后的一种新语法形式. 作用:简化函数式匿名内部类的代码写法. 简化格式: /*部类被重写方法的参数)->{ 被重写方法的方法体代码 } ...
- 【机器学习】李宏毅——Recurrent Neural Network(循环神经网络)
假设我们当前要做一个人工智能客服系统,那该系统就需要对用户输入的话语进行辨认,例如用户输入: I want to arrive Taipei on November 2nd 那么该系统就能够辨认出来T ...
- 通过surging的后台托管服务编写任务调度并支持规则引擎自定义脚本
简介 过去,如果在业务中需要处理任务调度的时候,大家都会使用第三方的任务调度组件,而第三方组件有一套自己的规则,在微服务的中显得那么格格不入,这样就会造成代码臃肿,耦合性高,如果有分布式还需要搭建新的 ...