写了个 ChatGPT 的 Teams Bot,用上了最新的 ChatGPT API

2023-03-05 15:15:30 +08:00
 formulahendry

之前写过一个 OpenAI 的 Teams Bot ,但是当时还没有真正的 ChatGPT API 。

不过这周,OpenAI 终于发布了 ChatGPT API 了。

我也是第一时间基于真正的 ChatGPT API 撸了个真正的 ChatGPT Teams Bot:

与 ChatGPT 一样,他们都是基于最新的 gpt-3.5-turbo model ,专门为聊天优化,能理解对话的上下文。

我这个机器人的代码完全开源,而且 clone 下来之后,可以很方便地根据 README 的步骤直接 F5 玩起来。大家有兴趣的,可以围观下:

https://github.com/formulahendry/chatgpt-teams-bot

不过呢,目前的 ChatGPT Teams Bot 是个很初步的版本,有一些 limitations ,比如官方提供的 openai Node.js SDK 需要开发者自己拼接聊天记录。我就选择了第三方的 chatgpt Node.js SDK ,不过他也只是把聊天记录存在内存中。

如此一来,我们会发现目前版本的一些问题:

  1. chat history 是存储在内存中的,如果 Bot 重启了,chat history 会丢失,怎么解决?

  2. 如果为了支持高并发,Bot 是部署在多个不同的 server 上的,如何保证 chat history 的一致性?

  3. gpt-3.5-turbo model 有 4000 token 的限制,而且 input 也是算进去的,如何处理 chat history 超过限制的问题?

  4. 如果 Bot 会被添加到多个 Teams 的聊天对话中,如何保证聊天 context 不相互干扰?

3191 次点击
所在节点    分享创造
4 条回复
LiuJiang
2023-03-05 21:20:27 +08:00
接口被墙咋解决的,用国外的机器吗
luomao
2023-03-06 11:25:29 +08:00
@LiuJiang 可以加 socket 代理,在接口调用时
LiuJiang
2023-03-06 15:42:50 +08:00
@luomao socket 代理嘛,代理到哪,国外机器嘛,没有国外机器,怎么白嫖,哈哈哈
luomao
2023-03-06 16:07:02 +08:00
@LiuJiang 有蛮多种申请免费 vps 的方法吧,譬如 oracle 啥的。
我是直接用机场,再在 linux 部署的 V2RayA 等提供 socket http 等协议。
如果有海外机器反向代理也能实现

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/921292

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX