Skip to content

Commit e8dde79

Browse files
authored
Open source the proxy (#265)
* Open source the proxy
1 parent 1e868cd commit e8dde79

20 files changed

Lines changed: 1732 additions & 7 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ env.bak/
105105
venv.bak/
106106
*.backup
107107

108+
# Secrets
109+
secrets.yaml
110+
108111
# Spyder project settings
109112
.spyderproject
110113
.spyproject

eval_protocol/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@
7474
except ImportError:
7575
WeaveAdapter = None
7676

77+
try:
78+
from .proxy import create_app, AuthProvider, AccountInfo
79+
except ImportError:
80+
create_app = None
81+
AuthProvider = None
82+
AccountInfo = None
83+
84+
7785
warnings.filterwarnings("default", category=DeprecationWarning, module="eval_protocol")
7886

7987
__all__ = [
@@ -137,6 +145,10 @@
137145
"RolloutMetadata",
138146
"StatusResponse",
139147
"create_langfuse_config_tags",
148+
# Proxy
149+
"create_app",
150+
"AuthProvider",
151+
"AccountInfo",
140152
]
141153

142154
from . import _version

eval_protocol/adapters/fireworks_tracing.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
from __future__ import annotations
88
import logging
99
import requests
10-
import time
1110
from datetime import datetime
1211
from typing import Any, Dict, List, Optional, Protocol
12+
import os
1313

1414
from eval_protocol.models import EvaluationRow, InputMetadata, ExecutionMetadata, Message
1515
from .base import BaseAdapter
@@ -343,15 +343,17 @@ def get_evaluation_rows(
343343
# Remove None values
344344
params = {k: v for k, v in params.items() if v is not None}
345345

346-
# Make request to proxy
346+
# Make request to proxy (using pointwise for efficiency)
347347
if self.project_id:
348-
url = f"{self.base_url}/v1/project_id/{self.project_id}/traces"
348+
url = f"{self.base_url}/v1/project_id/{self.project_id}/traces/pointwise"
349349
else:
350-
url = f"{self.base_url}/v1/traces"
350+
url = f"{self.base_url}/v1/traces/pointwise"
351+
352+
headers = {"Authorization": f"Bearer {os.environ.get('FIREWORKS_API_KEY')}"}
351353

352354
result = None
353355
try:
354-
response = requests.get(url, params=params, timeout=self.timeout)
356+
response = requests.get(url, params=params, timeout=self.timeout, headers=headers)
355357
response.raise_for_status()
356358
result = response.json()
357359
except requests.exceptions.HTTPError as e:
@@ -365,7 +367,7 @@ def get_evaluation_rows(
365367
except Exception: # In case e.response.json() fails
366368
error_msg = f"Proxy error: {e.response.text}"
367369

368-
logger.error("Failed to fetch traces from proxy: %s", error_msg)
370+
logger.error("Failed to fetch traces from proxy (HTTP %s): %s", e.response.status_code, error_msg)
369371
return eval_rows
370372
except requests.exceptions.RequestException as e:
371373
# Non-HTTP errors (network issues, timeouts, etc.)

eval_protocol/proxy/.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# In order to set other model providers keys for proxy, make a copy, rename to .env, and fill here
2+
OPENAI_API_KEY=sk-proj-xxx
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Metadata Extraction Gateway - Sits in front of LiteLLM
2+
FROM python:3.11-slim
3+
4+
WORKDIR /app
5+
6+
# Prevent Python from buffering stdout/stderr
7+
ENV PYTHONUNBUFFERED=1
8+
9+
# Copy requirements file
10+
COPY ./requirements.txt /app/requirements.txt
11+
12+
# Install dependencies
13+
RUN pip install --no-cache-dir -r requirements.txt
14+
15+
# Copy the proxy package
16+
COPY ./proxy_core /app/proxy_core
17+
18+
# Expose port
19+
EXPOSE 4000
20+
21+
# Run the gateway as a module
22+
# LITELLM_URL will be set by environment (docker-compose or Cloud Run)
23+
CMD ["python", "-m", "proxy_core.main"]

0 commit comments

Comments
 (0)