V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
formulahendry
V2EX  ›  分享创造

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

  •  
  •   formulahendry ·
    formulahendry · 2023-03-05 15:15:30 +08:00 · 3171 次点击
    这是一个创建于 636 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前写过一个 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 不相互干扰?

    4 条回复    2023-03-06 16:07:02 +08:00
    LiuJiang
        1
    LiuJiang  
       2023-03-05 21:20:27 +08:00
    接口被墙咋解决的,用国外的机器吗
    luomao
        2
    luomao  
       2023-03-06 11:25:29 +08:00
    @LiuJiang 可以加 socket 代理,在接口调用时
    LiuJiang
        3
    LiuJiang  
       2023-03-06 15:42:50 +08:00
    @luomao socket 代理嘛,代理到哪,国外机器嘛,没有国外机器,怎么白嫖,哈哈哈
    luomao
        4
    luomao  
       2023-03-06 16:07:02 +08:00
    @LiuJiang 有蛮多种申请免费 vps 的方法吧,譬如 oracle 啥的。
    我是直接用机场,再在 linux 部署的 V2RayA 等提供 socket http 等协议。
    如果有海外机器反向代理也能实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:27 · PVG 03:27 · LAX 11:27 · JFK 14:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.