Files
invariant-gateway/README.md
T
2025-02-12 09:49:28 +01:00

72 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# **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.
![Invariant Proxy Diagram](resources/images/invariant-proxy.png)
## **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, youll 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
```