mys's picture
Upload folder using huggingface_hub
1c75c98 verified
# tracklight_server/api/ingest.py
from fastapi import APIRouter, Depends, HTTPException
from typing import List
from pydantic import BaseModel
from ..db import duckdb
from .auth import verify_token
router = APIRouter()
class Metric(BaseModel):
run_id: str
project: str
user: str
metric_name: str
value: float
timestamp: str
class Config(BaseModel):
run_id: str
config_name: str
value: str
@router.post("/log", status_code=200)
def log_metrics(metrics: List[Metric], token: str = Depends(verify_token)):
"""
Receives a list of metrics and logs them to the database.
"""
try:
duckdb.insert_metrics([metric.dict() for metric in metrics])
return {"message": "Metrics logged successfully."}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.post("/log_config", status_code=200)
def log_config(configs: List[Config], token: str = Depends(verify_token)):
"""
Receives a list of config values and logs them to the database.
"""
try:
duckdb.insert_config([config.dict() for config in configs])
return {"message": "Configs logged successfully."}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))