# FeishuGPT

## 1. 介绍

通过飞书机器人使用 ChatGPT。

当前支持 GPT-3.5 和 GPT-4 API。

支持功能：给机器人发送信息后会把你拉进一个群聊，在群聊中可以问问题（防止大量聊天集中在一个私聊中存在干扰）；支持上下文；智能选择上下文数量和token数量。

## 2. 使用说明（对开发者）

### 2.1 飞书创建应用

在飞书上创建企业账号。

在飞书开放平台上新建应用，记录下app id和app secret。
<img width="1421" alt="截屏2023-03-30 09 24 57" src="https://user-images.githubusercontent.com/43341500/228703987-a475289c-33b5-4731-b7b5-567a7ad62b91.png">
在权限管理中开放消息与群组中的所有权限（请注意有2页，共19个）。

添加应用能力，选择机器人。

在事件和订阅中设置请求地址（回复challenge值可参考test2.py），记录下Verification Token，并添加以下两个事件。
<img width="1095" alt="截屏2023-03-30 09 29 39" src="https://user-images.githubusercontent.com/43341500/228704593-fe4d3483-6c80-4ece-a207-797078b841a7.png">


<img width="1362" alt="截屏2023-03-30 09 27 27" src="https://user-images.githubusercontent.com/43341500/228704339-5f6e16a2-5f2c-4662-bbc3-0e9eb8271dde.png">

将应用提交审核发布。

一定要注意，GPT-3.5 和 GPT-4 需要使用两个独立的应用。另外，在本程序中，GPT-3.5 和 GPT-4 也是独立的两部分，所以事件订阅必须使用两个不同的端口。

### 2.2 运行代码

安装：sudo pip install FeishuGPT

运行：参考 test.py，需要设置好飞书和openai的api密钥。（运行需使用sudo）

## 3. 使用说明（对普通用户）

在飞书中搜索 gpt（准确来说应该是你在飞书创建应用时设置的名字），就会搜到机器人。

第一次给机器人发送信息（私聊）时，它会回复你使用说明。之后再发送信息（私聊），就会被当成问题问ChatGPT，然后机器人会把你拉进一个群聊，并在群聊中回答。如果你想要在该聊天中继续提问，直接发在群聊中即可。如果想要创建新的聊天，直接把信息发送到私聊。

当前版本暂不支持regenerate和修改问题。

请注意，在一个群聊中问问题时，需要等ChatGPT把前面的回答完才能问后面的问题。

## 4. 存在问题 & 下一步

存在问题：
1. 不支持https
2. 当前获取信息完全基于飞书的推送，因此有可能错过信息或顺序错误。
3. 没有异常处理机制，回答一个问题时出现错误可能导致该聊天彻底无法使用。

下一步：
1. 增加https支持，主动读取飞书信息，增加异常处理。
2. 增加regenerate、修改问题功能。
3. 增加自动设置标题功能。
4. 增加更多实用功能（如翻译、修正pdf复制结果等）。

## 5. 我的企业二维码

您可以加入我的企业使用ChatGPT（包括GPT-4，但请合理控制使用量）。

<img width="979" alt="截屏2023-03-30 09 54 15" src="https://user-images.githubusercontent.com/43341500/228708757-2dba5c64-1205-4a06-9055-129631e6e3b7.png">

