44f667976a | ||
---|---|---|
docker | ||
docs | ||
src | ||
.env.example | ||
.gitattributes | ||
.gitignore | ||
.replit | ||
README.md | ||
info-page.md | ||
package-lock.json | ||
package.json | ||
replit.nix | ||
tsconfig.json |
README.md
title | emoji | colorFrom | colorTo | sdk | pinned |
---|---|---|---|---|---|
oai-reverse-proxy | 🔁 | green | purple | docker | false |
OAI Reverse Proxy
Reverse proxy server for the OpenAI (and soon Anthropic) APIs. Forwards text generation requests while rejecting administrative/billing requests. Includes optional rate limiting and prompt filtering to prevent abuse.
Table of Contents
What is this?
If you would like to provide a friend access to an API via keys you own, you can use this to keep your keys safe while still allowing them to generate text with the API. You can also use this if you'd like to build a client-side application which uses the OpenAI or Anthropic APIs, but don't want to build your own backend. You should never embed your real API keys in a client-side application. Instead, you can have your frontend connect to this reverse proxy and forward requests to the downstream service.
This keeps your keys safe and allows you to use the rate limiting and prompt filtering features of the proxy to prevent abuse.
Why?
OpenAI keys have full account permissions. They can revoke themselves, generate new keys, modify spend quotas, etc. You absolutely should not share them, post them publicly, nor embed them in client-side applications as they can be easily stolen.
This proxy only forwards text generation requests to the downstream service and rejects requests which would otherwise modify your account.
Setup Instructions
Since this is a server, you'll need to deploy it somewhere. A few options are available:
Deploy to Huggingface (Recommended)
See here for instructions on how to deploy to a Huggingface Space.
Deploy to Repl.it (WIP)
Still working on this. It's a bit more technical than the Huggingface option; you can give it a shot by clicking on the button below.
You'll need to set your secrets in Replit similar to the Huggingface instructions above. Currently .env files don't work properly so it only uses the default configuration.