Skip to content

协调多个chatgpt账户收发消息,构建ChatGPT3.5 API

Notifications You must be signed in to change notification settings

duouoduo/chatgptapi_server

 
 

Repository files navigation

browser-chatgptapi

这是一个,ChatGPT3.5 API 服务(即在OpenAI网页使用的模型),它允许连接多个ChatGPT账户协同工作,并构建一个对外的API接口服务。

快速开始

  1. 运行web服务

    git clone -b master https://github.com/xx025/browser-chatgptapi.git
    cd browser-chatgptapi
    pip install virtualenv
    virtualenv venv
    venv\Scripts\activate.bat  
    pip install -r requirements.txt
    python run.py

    此时web服务正在允许,他有两个重要的接口

    • ws://localhost:8010/user 供用户连接
    • ws://localhost:8010/server 供chatgpt服务连接

    数据格式示例:

    {
       "msg": "hello, i am user1"
    }   
    {
     "msg": "hello user1, i am  server1"
    }   
  2. 连接chatgpt服务

    • 下面是工作在revChatGPT
    import json
    from revChatGPT.V1 import Chatbot
    import asyncio
    import websockets
    
    async def hello():
        async with websockets.connect('ws://localhost:8010/server?token=r64XoPjdpVWPpSTrnin1') as websocket:
            while True:
                message = await websocket.recv()
                prompt = json.loads(message).get('msg', 'hello')
                access_token = "you_accesstoken"
                chatbot = Chatbot(config={"access_token": access_token})
                response = ""
                for data in chatbot.ask(prompt):
                    response = data["message"]
                data = {'msg': response}
                await websocket.send(json.dumps(data, indent=2))
    asyncio.get_event_loop().run_until_complete(hello())
    • 你也可以通过向网页注入js脚本完成连接

      将脚本ChatGptPagesScripts.js,导入如脚本管理器如Tampermonkey

      打开OpenAI ChatGPT官网 登录账号

      正常登陆后通过注入的脚本,将会连接到web服务,当然你有的话,可以在浏览器中创建多个窗口登录多个账号

      考虑到web服务与登录chatgpt账号的浏览器不在一个机器上,会出现MixedContent 错误,请查看StackFlow对此问题的解决方案

  3. 进行测试

    我写了一个简单的测速页面你可以打开一个或多个http://localhost:8010/ 进行测试,你可以用postman打开一个WebSocket API测速页面进行测式

演示:

演示视频YouTube

image

架构图

架构图.png

最后

代码比较简陋,可完善之处多多,欢迎参与一起开发

About

协调多个chatgpt账户收发消息,构建ChatGPT3.5 API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 43.3%
  • HTML 38.8%
  • JavaScript 17.9%