mirror of
https://github.com/invariantlabs-ai/invariant-gateway.git
synced 2026-08-09 18:46:07 +02:00
72 lines
2.8 KiB
Markdown
72 lines
2.8 KiB
Markdown
# **Invariant Proxy**
|
||
|
||
Invariant Proxy is a lightweight Docker service that acts as an intermediary between AI Agents and LLM providers (such as OpenAI and Anthropic). It captures and forwards agent interactions to the [Invariant Explorer](https://explorer.invariantlabs.ai/), enabling seamless debugging, visualization and exploration of traces.
|
||
|
||

|
||
|
||
## **Why Use Invariant Proxy?**
|
||
- ✅ **Intercept AI interactions** for better debugging and analysis.
|
||
- ✅ **Seamlessly forward API requests** to OpenAI, Anthropic, and other LLM providers (**supports streaming responses too**).
|
||
- ✅ **Automatically store and organize traces** in the Invariant Explorer.
|
||
|
||
## **Getting Started**
|
||
To integrate the Proxy with your AI agent, you’ll need to modify how your client interacts with LLM providers.
|
||
|
||
1. **Setup an Invariant API Key**
|
||
Follow the instructions [here](https://explorer.invariantlabs.ai/docs/explorer/Explorer_API/1_client_setup/) to obtain an API key.
|
||
|
||
### **🔹 OpenAI Integration**
|
||
2. To setup an OpenAI API key follow the steps [here](https://platform.openai.com/docs/quickstart#create-and-export-an-api-key).
|
||
|
||
3. **Modify OpenAI Client Setup**
|
||
Instead of connecting directly to OpenAI, configure your `OpenAI` client to use the proxy.
|
||
|
||
```python
|
||
from httpx import Client
|
||
from openai import OpenAI
|
||
|
||
client = OpenAI(
|
||
http_client=Client(
|
||
headers={
|
||
"Invariant-Authorization": "Bearer your-invariant-api-key"
|
||
},
|
||
),
|
||
base_url="https://explorer.invariantlabs.ai/api/v1/proxy/{add-your-dataset-name-here}/openai",
|
||
)
|
||
# If a dataset with the given name already doesn't exist in Invariant Explorer, this will create the dataset
|
||
# before adding the traces to it.
|
||
# Make API requests to OpenAI using the client as usual.
|
||
|
||
### **🔹 Anthropic Integration**
|
||
2. To setup an Anthropic API key follow the steps [here](https://docs.anthropic.com/en/docs/initial-setup#set-your-api-key).
|
||
|
||
3. **Modify Anthropic Client Setup**
|
||
Instead of connecting directly to Anthropic, configure your `Anthropic` client to use the proxy.
|
||
|
||
```python
|
||
from httpx import Client
|
||
from anthropic import Anthropic
|
||
|
||
client = Anthropic(
|
||
http_client=Client(
|
||
headers={
|
||
"Invariant-Authorization": "Bearer your-invariant-api-key"
|
||
},
|
||
),
|
||
base_url="https://explorer.invariantlabs.ai/api/v1/proxy/{add-your-dataset-name-here}/anthropic",
|
||
)
|
||
|
||
# If a dataset with the given name already doesn't exist in Invariant Explorer, this will create the dataset
|
||
# before adding the traces to it.
|
||
# Make API requests to Anthropic using the client as usual.
|
||
|
||
### Run
|
||
```bash
|
||
./run.sh up
|
||
```
|
||
|
||
### Run tests
|
||
```bash
|
||
./run.sh tests
|
||
```
|