Welcome to the proxai
repository! This project, created by @harperreed, provides a proxy server for the OpenAI API. 🚀
proxai
is a proxy server that simplifies interactions with the OpenAI API. Key features include forwarding requests, flexible configuration via command-line arguments, real-time status monitoring, and integration guidance via a /help
endpoint.
To start using the proxy server, follow these steps:
Run the Proxy Server:
Navigate to the directory where you've cloned the repository and run:
./proxai -port=9000 -address=0.0.0.0
or if you prefer using Go:
go run proxai.go -port=9000 -address=0.0.0.0
Integration:
Use the proxy in your code with minor tweaks to your OpenAI client setup.
from langchain.chat_models.openai import ChatOpenAI
openai = ChatOpenAI(
model_name="your-model-name",
openai_api_key="your-api-key",
openai_api_base="http://<address>:<port>/v1",
)
from openai import OpenAI
client = OpenAI(
base_url="http://<address>:<port>/v1",
)
Command-line Arguments:
-port
: Port to listen on (default: 8080)-address
: Address to listen on (default: localhost)Start customizing the server by using these arguments as needed.
Access Help:
Visit the /help
endpoint to get more details and guidance while the proxy server is running.
This section provides technical details about the proxai
repository, its file structure, and content.
proxai/
├── LICENSE
├── README.md
├── cache.go
├── go.mod
├── go.sum
├── handlers.go
├── logger.go
├── logs/
│ ├── costs.log
│ ├── prompts.log
│ ├── requests.log
│ └── responses.log
├── main.go
├── main_text.go
├── proxy.go
├── ui.go
└── utils.go
net/http
packagegithub.com/gomarkdown/markdown
github.com/peterbourgon/diskv
github.com/charmbracelet
suite for CLI and UI interactionsLICENSE
: Contains the MIT License information.README.md
: Documentation file (You're reading it!).cache.go
: Implements caching mechanism using diskv
.go.mod
: Go module dependencies.go.sum
: Checksums for Go module dependencies.handlers.go
: HTTP handlers for proxy and help endpoints.logger.go
: Logger implementation for request and response logs.logs/
: Directory containing log files.main.go
: Main entry point to start the proxy server.main_text.go
: Test cases for the main components.proxy.go
: Core proxy server implementation.ui.go
: CLI UI for monitoring server status.utils.go
: Utility functions.Clone the Repository:
git clone https://github.com/harperreed/proxai.git
Navigate to the Project Directory:
cd proxai
Build and Run the Proxy Server:
go run proxai.go -port=9000 -address=0.0.0.0
Send Requests:
Point your requests to the proxy server endpoint, and it will handle the rest.
Contributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request. Let's make this project even better together! 💪
This project is licensed under the MIT License. Feel free to use, modify, and distribute the code as per the terms of the license.
Happy proxying! 🎉