Skip to main content

Reverse proxy for OpenAI chatgpt website API

Project description

ChatGPT-Proxy

Python version of OpenAI's ChatGPT web API proxy
Python alternative to ChatGPT-Proxy-V4
Use cookie _puid to bypass Cloudflare browser check

Requirements

  • ChatGPT plus account
  • Access to chat.openai.com

Install

pip install chatgpt-proxy

Usage

Run as a service

Set these environment variables:

  • PUID: Preset cookie _puid
  • ACCESS_TOKEN: (Optional) For automatic refresh of _puid, obtains from here
  • PROXY_TRUST_CLIENT: (Optional) Trust requests from any client.
    When set to True, any requests without an access_token will be given the above access_token.
    Default to False, which will only use for refresh puid.
  • HOST: (Optional) Listen on host, default to 127.0.0.1
  • PORT: (Optional) Listen on port, default to 7800

Or create a .env file with your environment variables at where you want to run the proxy:

puid=YOUR_PUID
access_token=YOUR_ACCESS_TOKEN
proxy_trust_client=False
host=127.0.0.1
port=7800

Note that environment variables will override the values in .env file.

Then run: python -m chatgpt_proxy The proxy will be avaliable at http://host:port/backend-api/

Integrate into your FastAPI app

Check out __main__.py

from chatgpt_proxy import WebChatGPTProxy
proxy = WebChatGPTProxy(puid=PUID, access_token=ACCESS_TOKEN, trust=False)

@asynccontextmanager
async def lifespan(app: FastAPI):
    # add this to start refresh puid task
    refresh_puid_task = asyncio.create_task(proxy._refresh_task())
    yield

app = FastAPI(lifespan=lifespan)
proxy.attach(app, path="/backend-api")

class WebChatGPTProxy:

  • puid: Preset cookie _puid
  • access_token: (Optional), for automatic refresh of _puid
  • trust: Trust requests from any client. When set to True, any requests without an access_token will be given the above access_token. Default to False, which will only use for refresh puid.

Credits

License

This work is licensed under the GNU Affero General Public License v3.0 or later, with the "CHATGPT-PROXY" exception.

"CHATGPT-PROXY" EXCEPTION TO THE AGPL

As a special exception, using this work in the following ways does not cause your program to be covered by the AGPL:

  1. Bundling the unaltered code or binary of this work in your program; or
  2. Interacting with this work through the provided inter-process communication interface, such as the HTTP API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatgpt-proxy-0.1.0.tar.gz (16.5 kB view hashes)

Uploaded Source

Built Distribution

chatgpt_proxy-0.1.0-py3-none-any.whl (17.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page