Added llm providers entrypoint
This commit is contained in:
parent
a2276c58ef
commit
dbbfe852e2
@ -81,15 +81,16 @@ from utils.helpers import filter_and_paginate
|
||||
# Import route modules
|
||||
# =============================
|
||||
from routes import (
|
||||
admin,
|
||||
auth,
|
||||
candidates,
|
||||
resumes,
|
||||
jobs,
|
||||
chat,
|
||||
users,
|
||||
employers,
|
||||
admin,
|
||||
system
|
||||
jobs,
|
||||
providers,
|
||||
resumes,
|
||||
system,
|
||||
users,
|
||||
)
|
||||
|
||||
# =============================
|
||||
@ -238,22 +239,20 @@ api_router = APIRouter(prefix="/api/1.0")
|
||||
# ============================
|
||||
# Include all route modules
|
||||
# ============================
|
||||
api_router.include_router(admin.router)
|
||||
api_router.include_router(auth.router)
|
||||
api_router.include_router(candidates.router)
|
||||
api_router.include_router(resumes.router)
|
||||
api_router.include_router(jobs.router)
|
||||
api_router.include_router(chat.router)
|
||||
api_router.include_router(users.router)
|
||||
api_router.include_router(employers.router)
|
||||
api_router.include_router(admin.router)
|
||||
api_router.include_router(jobs.router)
|
||||
api_router.include_router(providers.router)
|
||||
api_router.include_router(resumes.router)
|
||||
api_router.include_router(system.router)
|
||||
api_router.include_router(users.router)
|
||||
|
||||
# ============================
|
||||
# Health Check and Info Endpoints
|
||||
# ============================
|
||||
async def get_redis() -> redis.Redis:
|
||||
"""Dependency to get Redis client"""
|
||||
return redis_manager.get_client()
|
||||
|
||||
@app.get("/health")
|
||||
async def health_check(
|
||||
@ -284,10 +283,6 @@ async def health_check(
|
||||
"version": redis_info.get("redis_version", "unknown"),
|
||||
"uptime": redis_info.get("uptime_in_seconds", 0),
|
||||
"memory_used": redis_info.get("used_memory_human", "unknown")
|
||||
},
|
||||
"application": {
|
||||
"active_requests": database._active_requests,
|
||||
"shutting_down": database.is_shutting_down
|
||||
}
|
||||
}
|
||||
|
||||
|
63
src/backend/routes/providers.py
Normal file
63
src/backend/routes/providers.py
Normal file
@ -0,0 +1,63 @@
|
||||
from typing import Optional
|
||||
from fastapi import APIRouter, HTTPException
|
||||
|
||||
from utils.llm_proxy import LLMProvider, get_llm
|
||||
|
||||
|
||||
router = APIRouter(prefix="/providers", tags=["providers"])
|
||||
|
||||
@router.get("/models")
|
||||
async def list_models(provider: Optional[str] = None):
|
||||
"""List available models for a provider"""
|
||||
try:
|
||||
llm = get_llm()
|
||||
|
||||
provider_enum = None
|
||||
if provider:
|
||||
try:
|
||||
provider_enum = LLMProvider(provider.lower())
|
||||
except ValueError:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail=f"Unsupported provider: {provider}"
|
||||
)
|
||||
|
||||
models = await llm.list_models(provider_enum)
|
||||
return {
|
||||
"provider": provider_enum.value if provider_enum else llm.default_provider.value,
|
||||
"models": models
|
||||
}
|
||||
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
@router.get("")
|
||||
async def list_providers():
|
||||
"""List all configured providers"""
|
||||
llm = get_llm()
|
||||
return {
|
||||
"providers": [provider.value for provider in llm._initialized_providers],
|
||||
"default": llm.default_provider.value
|
||||
}
|
||||
|
||||
@router.post("/{provider}/set-default")
|
||||
async def set_default_provider(provider: str):
|
||||
"""Set the default provider"""
|
||||
try:
|
||||
llm = get_llm()
|
||||
provider_enum = LLMProvider(provider.lower())
|
||||
llm.set_default_provider(provider_enum)
|
||||
return {"message": f"Default provider set to {provider}", "default": provider}
|
||||
except ValueError as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
|
||||
# Health check endpoint
|
||||
@router.get("/health")
|
||||
async def health_check():
|
||||
"""Health check endpoint"""
|
||||
llm = get_llm()
|
||||
return {
|
||||
"status": "healthy",
|
||||
"providers_configured": len(llm._initialized_providers),
|
||||
"default_provider": llm.default_provider.value
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user