proxai π¨
Welcome to the proxai repository! This project, created by @harperreed, provides a proxy server for the OpenAI API. π
Summary of Project π
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.
How to Use π€
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.
Langchain
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",
)
OpenAI Python Client
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.
Tech Info βοΈ
This section provides technical details about the proxai repository, its file structure, and content.
Directory/File Tree
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
Tech Stack
- Programming Language: Go
- HTTP Client:
net/http package
- Markdown Rendering:
github.com/gomarkdown/markdown
- Logging:
github.com/peterbourgon/diskv
- CLI:
github.com/charmbracelet suite for CLI and UI interactions
File Summaries
LICENSE: 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.
Building π
-
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.
Contributing π€
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! πͺ
License π
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! π