Skip to content

Commit f255fe2

Browse files
author
Dylan Huang
committed
Support EP_REMOTE_API_KEY
1 parent 35db8e2 commit f255fe2

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

eval_protocol/adapters/fireworks_tracing.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,24 @@ def __init__(
253253
project_id: Optional[str] = None,
254254
base_url: str = "https://tracing.fireworks.ai",
255255
timeout: int = 300,
256+
api_key: Optional[str] = None,
256257
):
257258
"""Initialize the Fireworks Tracing adapter.
258259
259260
Args:
260261
project_id: Optional project ID. If not provided, uses the default project configured on the server.
261262
base_url: The base URL of the tracing proxy (default: https://tracing.fireworks.ai)
262263
timeout: Request timeout in seconds (default: 300)
264+
api_key: Optional API key. If not provided, falls back to FIREWORKS_API_KEY environment variable.
263265
"""
264266
self.project_id = project_id
265267
self.base_url = base_url.rstrip("/")
266268
self.timeout = timeout
269+
self._api_key = api_key
270+
271+
def _get_api_key(self) -> Optional[str]:
272+
"""Get the API key, preferring instance-level key over environment variable."""
273+
return self._api_key or os.environ.get("FIREWORKS_API_KEY")
267274

268275
def search_logs(self, tags: List[str], limit: int = 100, hours_back: int = 24) -> List[Dict[str, Any]]:
269276
"""Fetch logs from Fireworks tracing gateway /logs endpoint.
@@ -276,7 +283,7 @@ def search_logs(self, tags: List[str], limit: int = 100, hours_back: int = 24) -
276283
from ..common_utils import get_user_agent
277284

278285
headers = {
279-
"Authorization": f"Bearer {os.environ.get('FIREWORKS_API_KEY')}",
286+
"Authorization": f"Bearer {self._get_api_key()}",
280287
"User-Agent": get_user_agent(),
281288
}
282289
params: Dict[str, Any] = {"tags": tags, "limit": limit, "hours_back": hours_back, "program": "eval_protocol"}
@@ -407,7 +414,7 @@ def get_evaluation_rows(
407414
from ..common_utils import get_user_agent
408415

409416
headers = {
410-
"Authorization": f"Bearer {os.environ.get('FIREWORKS_API_KEY')}",
417+
"Authorization": f"Bearer {self._get_api_key()}",
411418
"User-Agent": get_user_agent(),
412419
}
413420

eval_protocol/pytest/tracing_utils.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ def default_fireworks_output_data_loader(config: DataLoaderConfig) -> DynamicDat
1919

2020
def fetch_traces() -> List[EvaluationRow]:
2121
base_url = config.model_base_url or "https://tracing.fireworks.ai"
22-
adapter = FireworksTracingAdapter(base_url=base_url)
22+
# Use EP_REMOTE_API_KEY for fetching remote traces, falling back to FIREWORKS_API_KEY
23+
api_key = os.environ.get("EP_REMOTE_API_KEY") or os.environ.get("FIREWORKS_API_KEY")
24+
adapter = FireworksTracingAdapter(base_url=base_url, api_key=api_key)
2325
return adapter.get_evaluation_rows(tags=[f"rollout_id:{config.rollout_id}"], max_retries=5)
2426

2527
return DynamicDataLoader(generators=[fetch_traces], preprocess_fn=filter_longest_conversation)
@@ -131,7 +133,9 @@ def build_init_request(
131133
final_model_base_url = build_fireworks_tracing_url(model_base_url, meta, completion_params_base_url)
132134

133135
# Extract API key from environment or completion_params
134-
api_key = os.environ.get("FIREWORKS_API_KEY")
136+
# EP_REMOTE_API_KEY takes precedence for remote rollout processors,
137+
# falling back to FIREWORKS_API_KEY for backwards compatibility
138+
api_key = os.environ.get("EP_REMOTE_API_KEY") or os.environ.get("FIREWORKS_API_KEY")
135139

136140
return InitRequest(
137141
completion_params=completion_params_dict,

0 commit comments

Comments
 (0)