presenton/electron/servers/fastapi/utils/llm_provider.py
sudipnext 00be7ee946 feat: integrate Codex OAuth flow and enhance user configuration
- Added Codex-related fields to UserConfig and LLMConfig for managing OAuth tokens and model settings.
- Implemented Codex authentication endpoints and integrated them into the application.
- Enhanced LLMClient to support Codex as a valid provider, including token management and refresh logic.
- Updated UI components to include Codex configuration options and authentication status handling.
- Refactored environment variable utilities to accommodate Codex-specific settings.
2026-02-28 09:08:10 +05:45

73 lines
2 KiB
Python

from fastapi import HTTPException
from constants.llm import (
DEFAULT_ANTHROPIC_MODEL,
DEFAULT_CODEX_MODEL,
DEFAULT_GOOGLE_MODEL,
DEFAULT_OPENAI_MODEL,
)
from enums.llm_provider import LLMProvider
from utils.get_env import (
get_anthropic_model_env,
get_codex_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, codex",
)
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 is_codex_selected():
return get_llm_provider() == LLMProvider.CODEX
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()
elif selected_llm == LLMProvider.CODEX:
return get_codex_model_env() or DEFAULT_CODEX_MODEL
else:
raise HTTPException(
status_code=500,
detail=f"Invalid LLM provider. Please select one of: openai, google, anthropic, ollama, custom, codex",
)