|
import base64 |
|
import os |
|
from pydantic_settings import BaseSettings, SettingsConfigDict |
|
from pydantic import HttpUrl, SecretStr |
|
|
|
|
|
class Settings(BaseSettings): |
|
def __init__(self): |
|
super().__init__() |
|
self.set_langfuse_auth() |
|
model_config = SettingsConfigDict(env_file='.env') |
|
scoring_api_base_url: HttpUrl = HttpUrl( |
|
"https://agents-course-unit4-scoring.hf.space" |
|
) |
|
chess_eval_url: HttpUrl = HttpUrl( |
|
"https://stockfish.online/api/s/v2.php" |
|
) |
|
gemini_api_key: SecretStr |
|
langfuse_public_key: SecretStr |
|
langfuse_secret_key: SecretStr |
|
openrouter_api_key: SecretStr |
|
otel_exporter_otlp_endpoint: HttpUrl |
|
serper_api_key: SecretStr |
|
space_id: str |
|
username: str |
|
|
|
def set_langfuse_auth(self): |
|
LANGFUSE_AUTH = base64.b64encode(f"{self.langfuse_public_key.get_secret_value()}:{self.langfuse_secret_key.get_secret_value()}".encode()).decode() |
|
os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"Authorization=Basic {LANGFUSE_AUTH}" |