Phase 1 (Foundation): - Project restructure (presenton-main → backend/ + frontend/) - Database schema (8 new models, Alembic config, seed script) - Auth (Azure AD SSO + dev bypass, JWT sessions, AuthMiddleware) - RBAC (access_service, rbac_middleware, admin routers) - Audit logging (fire-and-forget, AuditMiddleware, admin router) - i18n (react-i18next with 5 namespace files) Phase 2 (Admin Panel & Client Management): - Admin panel shell (sidebar layout, role guard, 12 pages) - Redux admin slice with 18 async thunks - User management (role changes, deactivation) - Client management (CRUD, brand config, team management) - Brand config editor (colors, fonts, logos, voice rules) - Master deck upload & parser (PPTX → HTML → React pipeline) - Audit log viewer with filters and CSV/JSON export Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
from fastapi import HTTPException
|
|
|
|
from constants.llm import (
|
|
DEFAULT_ANTHROPIC_MODEL,
|
|
DEFAULT_GOOGLE_MODEL,
|
|
DEFAULT_OPENAI_MODEL,
|
|
)
|
|
from enums.llm_provider import LLMProvider
|
|
from utils.get_env import (
|
|
get_anthropic_model_env,
|
|
get_custom_model_env,
|
|
get_google_model_env,
|
|
get_llm_provider_env,
|
|
get_ollama_model_env,
|
|
get_openai_model_env,
|
|
)
|
|
|
|
|
|
def get_llm_provider():
|
|
try:
|
|
return LLMProvider(get_llm_provider_env())
|
|
except:
|
|
raise HTTPException(
|
|
status_code=500,
|
|
detail=f"Invalid LLM provider. Please select one of: openai, google, anthropic, ollama, custom",
|
|
)
|
|
|
|
|
|
def is_openai_selected():
|
|
return get_llm_provider() == LLMProvider.OPENAI
|
|
|
|
|
|
def is_google_selected():
|
|
return get_llm_provider() == LLMProvider.GOOGLE
|
|
|
|
|
|
def is_anthropic_selected():
|
|
return get_llm_provider() == LLMProvider.ANTHROPIC
|
|
|
|
|
|
def is_ollama_selected():
|
|
return get_llm_provider() == LLMProvider.OLLAMA
|
|
|
|
|
|
def is_custom_llm_selected():
|
|
return get_llm_provider() == LLMProvider.CUSTOM
|
|
|
|
|
|
def get_model():
|
|
selected_llm = get_llm_provider()
|
|
if selected_llm == LLMProvider.OPENAI:
|
|
return get_openai_model_env() or DEFAULT_OPENAI_MODEL
|
|
elif selected_llm == LLMProvider.GOOGLE:
|
|
return get_google_model_env() or DEFAULT_GOOGLE_MODEL
|
|
elif selected_llm == LLMProvider.ANTHROPIC:
|
|
return get_anthropic_model_env() or DEFAULT_ANTHROPIC_MODEL
|
|
elif selected_llm == LLMProvider.OLLAMA:
|
|
return get_ollama_model_env()
|
|
elif selected_llm == LLMProvider.CUSTOM:
|
|
return get_custom_model_env()
|
|
else:
|
|
raise HTTPException(
|
|
status_code=500,
|
|
detail=f"Invalid LLM provider. Please select one of: openai, google, anthropic, ollama, custom",
|
|
)
|