Categorygithub.com/harperreed/proxai
module
0.0.0-20241011154538-8d5f995e9a03
Repository: https://github.com/harperreed/proxai.git
Documentation: pkg.go.dev

# README

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:

  1. 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
    
  2. 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",
    )
    
  3. 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.

  4. 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 šŸš€

  1. Clone the Repository:

    git clone https://github.com/harperreed/proxai.git
    
  2. Navigate to the Project Directory:

    cd proxai
    
  3. Build and Run the Proxy Server:

    go run proxai.go -port=9000 -address=0.0.0.0
    
  4. 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! šŸŽ‰

# Packages

No description provided by the author
No description provided by the author