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接入飞书的更多相关文章

  1. Worktile正式入驻飞书,助力企业轻松实现敏捷开发与协作

    企业在敏捷研发中时常面临着交付延期.需求不匹配等问题,如何更高效地完成敏捷研发? Worktile携手飞书,为企业用户提供敏捷开发服务,帮助企业实现软件项目的需求管理.缺陷追踪.迭代规划与推进以及效能 ...

  2. Python调用飞书发送消息

    一.创建飞书机器人 自定义飞书机器人操作步骤,具体详见飞书官方文档:<机器人 | 如何在群聊中使用机器人?>

  3. JustAuth 1.15.9 版发布,支持飞书、喜马拉雅、企业微信网页登录

    新增 修复并正式启用 飞书 平台的第三方登录 AuthToken 类中新增 refreshTokenExpireIn 记录 refresh token 的有效期 PR 合并 Github #101:支 ...

  4. 火山引擎MARS-APM Plus x 飞书 |降低线上OOM,提高App性能稳定性

    通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的 ...

  5. Jenkins+Allure测试报告+飞书机器人发送通知

    一.前言 之前讲了jenkins如何设置定时任务执行脚本,结合实际情况,本篇讲述在jenkins构建成功后,如何生成测试报告,以及推送飞书(因为我公司用的是飞书,所以是发送到飞书机器人). 本次实践搞 ...

  6. 飞书前端提到的竞态问题,在 Android 上怎么解决?

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...

  7. 【Mock平台】测试开发实战01-开篇PRD和需求详细

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 平台背景 从业务特性上,不少测试的服务很多是依赖第三方的接口的,比如其中的支付场景,就需要很多状态的返回进行验证,但大部分服务提供商没有很 ...

  8. 提高可测性-Mock平台设计和整体规划

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 平台背景 从业务特性上,不少测试的服务很多是依赖第三方的接口的,比如其中的支付场景,就需要很多状态的返回进行验证,但大部分服务提供商没有很 ...

  9. 动态线程池框架 DynamicTp v1.0.6版本发布。还在为Dubbo线程池耗尽烦恼吗?还在为Mq消费积压烦恼吗?

    DynamicTp 简介 DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为 动态调参.通知报警.运行监控.三方包线程池管理等几大类. 经过几个版本迭代,目前最新 ...

  10. 【开源】我和 JAP(JA Plus) 的故事

    JA Plus 故事 程序员的故事如此简单之绕不过去的开源情结 我们准备做一件伟大的事,也可以说是一件真真正正普惠的事. 絮 是的,你没有看错,就是"絮"而非"序&quo ...

随机推荐

  1. 使用Typora

    Markdown学习 标题:#+空格+名称 二级标题 二级标题:##+空格+名称 三级标题 几级标题以此类推,最多支持到六级标题 字体 Hello,world! 变粗体:一句话的前后加上两个** 变斜 ...

  2. 大数据-业务数据采集-FlinkCDC

    CDC CDC 是 Change Data Capture(变更数据获取)的简称.核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入.更新以及删除等),将这些变更按发生的顺序完整记录下来,写入 ...

  3. python循环结构之while循环

    在python中,除了for循环,还有一个while循环 for循环:循环次数是明确了的 while循环:循环次数不确定,循环停止条件由用户自定义 # while语句结构 while 判断条件: 执行 ...

  4. js四舍五入保留两位小数的方法

    四舍五入方法: 1,toFixed():  此方法只包含小数位数的数字,适合处理金钱 2,toPrecision()  :此方法包含所有数字, 不需要四舍五入 1,Math.floor() 

  5. python内存机制

    内存机制 先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 (3)内存池机制 一.垃圾回收: python不像C++,Java等语言一样,他们可以不用事 ...

  6. python从公众号文章中获取二维码

    在做一个公众号采集的项目中,客户有个要求,想把二维码的url保存到数据库中,如图. 原本以为要各种骚操作各种逆向才能获取得到,没想到竟然很简单. 第一步 观察二维码url的规范 https://mp. ...

  7. [编程基础] Python格式化字符串常量f-string总结

    Python格式化字符串常量f-string总结 本文主要总结在Python中如何使用格式化字符串常量f-string(Formatted string literals).在 Python 程序中, ...

  8. Java内存区域有哪些构成?

    目录 前言 Java 内存区域 程序计数器 虚拟机栈 本地方法栈 堆 方法区 字符串常量池 运行时常量池 直接内存 小结 作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算 ...

  9. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  10. eosio.cdt发布带来的变化

    change of version 1.3.x+,EOSIO.CDT After eos version 1.3.x, generation of cdt tools, Smart Contracts ...