Skip to content

Commit e753a0b

Browse files
committed
comments
1 parent 63a0c65 commit e753a0b

File tree

6 files changed

+28
-16
lines changed

6 files changed

+28
-16
lines changed

eval_protocol/proxy/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Langfuse tracing for distributed evaluation workflows.
66
"""
77

8-
from .proxy_core import create_app, AuthProvider, NoAuthProvider, ProxyConfig, ChatParams, TracesParams
8+
from .proxy_core import create_app, AuthProvider, NoAuthProvider, ProxyConfig, ChatParams, TracesParams, AccountInfo
99

1010
__all__ = [
1111
"create_app",
@@ -14,4 +14,5 @@
1414
"ProxyConfig",
1515
"ChatParams",
1616
"TracesParams",
17+
"AccountInfo",
1718
]

eval_protocol/proxy/proxy_core/__init__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
from .models import ProxyConfig, ChatParams, TracesParams
2-
from .app import create_app
1+
from .models import ProxyConfig, ChatParams, TracesParams, AccountInfo
32
from .auth import AuthProvider, NoAuthProvider
3+
from .app import create_app
44

55
__all__ = [
66
"ProxyConfig",
77
"ChatParams",
88
"TracesParams",
9+
"AccountInfo",
910
"create_app",
1011
"AuthProvider",
1112
"NoAuthProvider",

eval_protocol/proxy/proxy_core/app.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
A FastAPI service that sits in front of LiteLLM and extracts metadata from URL paths.
44
"""
55

6-
from fastapi import FastAPI, Depends, HTTPException, Request, Query
7-
from typing import Optional, Callable, Dict, Any, List
6+
from fastapi import FastAPI, Depends, Request, Query
7+
from typing import Optional, List
88
import os
99
import redis
1010
import logging
@@ -166,8 +166,8 @@ def get_traces_params(
166166
)
167167

168168
async def require_auth(request: Request) -> None:
169-
account_id = auth_provider.validate_and_return_account_id(request)
170-
request.state.account_id = account_id
169+
account_info = auth_provider.validate_and_return_account_info(request)
170+
request.state.account_id = account_info.account_id if account_info else None
171171
return None
172172

173173
# =====================
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
from abc import ABC, abstractmethod
22
import logging
33
from fastapi import Request
4-
from fastapi import HTTPException
5-
import httpx
64
from typing import Optional
5+
from .models import AccountInfo
76

87
logger = logging.getLogger(__name__)
98

109

1110
class AuthProvider(ABC):
1211
@abstractmethod
13-
def validate_and_return_account_id(self, request: Request) -> Optional[str]: ...
12+
def validate_and_return_account_info(self, request: Request) -> Optional[AccountInfo]: ...
1413

1514

1615
class NoAuthProvider(AuthProvider):
17-
def validate_and_return_account_id(self, request: Request) -> Optional[str]:
16+
def validate_and_return_account_info(self, request: Request) -> Optional[AccountInfo]:
1817
return None

eval_protocol/proxy/proxy_core/litellm.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import logging
99
from uuid6 import uuid7
1010
from fastapi import Request, Response, HTTPException
11-
from typing import Optional
1211
import redis
1312
from .redis_utils import register_insertion_id
1413
from .models import ProxyConfig, ChatParams

eval_protocol/proxy/proxy_core/models.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,24 @@
33
"""
44

55
from pydantic import BaseModel
6-
from typing import Optional, List, Any, Dict, Callable, TypeAlias
7-
from fastapi import Request, Query
6+
from typing import Optional, List, Any, Dict, Protocol
7+
from fastapi import Request
88

99

10-
ChatRequestHook: TypeAlias = Callable[[Dict[str, Any], Request, "ChatParams"], tuple[Dict[str, Any], "ChatParams"]]
11-
TracesRequestHook: TypeAlias = Callable[[Request, "TracesParams"], "TracesParams"]
10+
class AccountInfo(BaseModel):
11+
"""Account information returned from authentication."""
12+
13+
account_id: str
14+
15+
16+
class ChatRequestHook(Protocol):
17+
def __call__(
18+
self, data: Dict[str, Any], request: Request, params: "ChatParams"
19+
) -> tuple[Dict[str, Any], "ChatParams"]: ...
20+
21+
22+
class TracesRequestHook(Protocol):
23+
def __call__(self, request: Request, params: "TracesParams") -> "TracesParams": ...
1224

1325

1426
class ChatParams(BaseModel):

0 commit comments

Comments
 (0)