Home

Awesome

Gateway

<div align="center">

Core infrastructure stack for building production-ready AI Applications

Lint Release License Version Discord Twitter

</div> <br><br>

Introduction

๐ŸŒˆ A Robust cloud-native AI Gateway - core LLMOps infrastructure stack for building production-ready AI Applications. It provides an Universal API for inferencing 100+ LLMs(OpenAI, Azure, Cohere, Anthropic, HuggingFace, Replicate, Stable Diffusion).

๐Ÿš€ Key Features

โœ…ย  Seamless Integration with Universal API <br> โœ…ย  Reliable LLM Routing with AI Router <br> โœ…ย  Load balance across multiple models and providers <br> โœ…ย  Automatic Retries with exponential fallbacks <br> โœ…ย  High availability and resiliency using production-ready LLMOps <br> ๐Ÿšงย  Detailed Usage Analytics <br> ๐Ÿšงย  PII detection and masking<br> ๐Ÿšงย  Simple & Semantic Caching for cost reduction <br> ๐Ÿšงย  No Vendor lock-in Observability - Logging, monitoring and tracing <br> โœ…ย  Enterprise-ready with enhanced security, reliability, and scale with custom deployments support.

Supported Providers

ProviderProvider NameSupportSupported Endpoints
<img src="assets/openai.png" width=16>OpenAIopenaiโœ…/chat/completions, /chat/completions:stream
<img src="assets/groq.svg" width=16>Groqgroqโœ…/chat/completions, /chat/completions:stream
<img src="assets/anyscale.png" width=16>Anyscaleanyscaleโœ…/chat/completions
<img src="assets/deepinfra.jpeg" width=16>Deepinfradeepinfraโœ…/chat/completions
<img src="assets/togetherai.svg" width=16>Together AItogetheraiโœ…/chat/completions

Not supported (yet): images, audio, files, fine-tunes, moderations

Installation

AI gateway can be intall on macOS, Windows, Linux, OpenBSD, FreeBSD, and on any machine

Binary (Cross-platform)

Download the appropriate version for your platform from releases page. Once downloaded, the binary can be run from anywhere. Ideally, you should install it somewhere in your PATH for easy use. /usr/local/bin is the most probable location.

MacOS

gateway is available via a Homebrew Tap, and as downloadable binary from the releases page:

brew install missingstudio/tap/gateway

To upgrade to the latest version:

brew upgrade gateway

Linux

gateway is available as downloadable binaries from the releases page. Download the .deb or .rpm from the releases page and install with sudo dpkg -i and sudo rpm -i respectively.

Windows

gateway is available via scoop, and as a downloadable binary from the releases page:

scoop bucket add gateway https://github.com/missingstudio/scoop-bucket.git

To upgrade to the latest version:

scoop update gateway

Docker

We provide ready to use Docker container images. To pull the latest image:

docker pull missingstudio/gateway:latest

To pull a specific version:

docker pull missingstudio/gateway:v0.0.1

Docker compose

To start missing studio AI gateway, simply run the following command:

make up

Your AI Gateway is now running on http://localhost:8080 ๐Ÿ’ฅ

Usage

Let's make a chat completion request to OpenAI through the AI Gateway using both REST and gRPC protocols

Send a request using curl

curl \
--header "Content-Type: application/json" \
--header "x-ms-provider: openai" \
--header "Authorization: Bearer {{OPENAI_API_KEY}}" \
--data '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"who are you?"}]}' \
http://localhost:8080/v1/chat/completions

Send a request using grpcurl

grpcurl \
-d '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"hi"}]}' \
-H 'x-ms-provider: openai' \
-H 'Authorization: Bearer {{OPENAI_API_KEY}}' \
-plaintext  localhost:8080  llm.v1.LLMService.ChatCompletions

๐Ÿซถ Contributions

AI studio is an open-source project, and contributions are welcome. If you want to contribute, you can create new features, fix bugs, or improve the infrastructure.

It's still very early days for this so your mileage will vary here and lots of things will break. But almost any contribution will be beneficial at this point. Check the current Issues to see where you can jump in!

If you've got an improvement, just send in a pull request!

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'feat(module): add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

If you've got feature ideas, simply open a new issues!

Please refer to the CONTRIBUTING.md file in the repository for more information on how to contribute.

<a href="https://github.com/missingstudio/ai/graphs/contributors"> <img src="https://contrib.rocks/image?repo=missingstudio/studio" /> </a>

License

AI Studio is Apache 2.0 licensed.