Files
2026-07-13 13:08:41 +08:00

401 lines
7.8 KiB
Python

import os
def _is_truthy(value: str | None) -> bool:
if value is None:
return False
return value.strip().lower() in {"1", "true", "yes", "on"}
def get_can_change_keys_env():
return os.getenv("CAN_CHANGE_KEYS")
def get_database_url_env():
return os.getenv("DATABASE_URL")
def get_app_data_directory_env():
return os.getenv("APP_DATA_DIRECTORY")
def get_fastapi_public_base_url() -> str | None:
"""
Public origin where FastAPI serves /app_data and /static (no trailing slash).
Uses NEXT_PUBLIC_FAST_API (same value Electron and the export runtime inject for the UI).
When unset, callers keep path-only URLs for same-origin / reverse-proxy setups (e.g. Docker).
"""
v = (os.getenv("NEXT_PUBLIC_FAST_API") or "").strip().rstrip("/")
return v or None
def get_temp_directory_env():
return os.getenv("TEMP_DIRECTORY")
def get_user_config_path_env():
return os.getenv("USER_CONFIG_PATH")
def get_disable_auth_env():
return os.getenv("DISABLE_AUTH")
def is_disable_auth_enabled():
return _is_truthy(get_disable_auth_env())
def is_presenton_electron_desktop():
"""True when running inside the Presenton Electron desktop app."""
return _is_truthy(os.getenv("PRESENTON_ELECTRON"))
def get_llm_provider_env():
return os.getenv("LLM")
def get_anthropic_api_key_env():
return os.getenv("ANTHROPIC_API_KEY")
def get_anthropic_model_env():
return os.getenv("ANTHROPIC_MODEL")
def get_ollama_url_env():
return os.getenv("OLLAMA_URL")
def get_custom_llm_url_env():
return os.getenv("CUSTOM_LLM_URL")
def get_deepseek_base_url_env():
return os.getenv("DEEPSEEK_BASE_URL")
def get_deepseek_api_key_env():
return os.getenv("DEEPSEEK_API_KEY")
def get_deepseek_model_env():
return os.getenv("DEEPSEEK_MODEL")
def get_openai_api_key_env():
return os.getenv("OPENAI_API_KEY")
def get_openai_model_env():
return os.getenv("OPENAI_MODEL")
def get_google_api_key_env():
return os.getenv("GOOGLE_API_KEY")
def get_google_model_env():
return os.getenv("GOOGLE_MODEL")
def get_vertex_api_key_env():
return os.getenv("VERTEX_API_KEY")
def get_vertex_model_env():
return os.getenv("VERTEX_MODEL")
def get_vertex_project_env():
return os.getenv("VERTEX_PROJECT")
def get_vertex_location_env():
return os.getenv("VERTEX_LOCATION")
def get_vertex_base_url_env():
return os.getenv("VERTEX_BASE_URL")
def get_azure_openai_api_key_env():
return os.getenv("AZURE_OPENAI_API_KEY")
def get_azure_openai_model_env():
return os.getenv("AZURE_OPENAI_MODEL")
def get_azure_openai_endpoint_env():
return os.getenv("AZURE_OPENAI_ENDPOINT")
def get_azure_openai_base_url_env():
return os.getenv("AZURE_OPENAI_BASE_URL")
def get_azure_openai_api_version_env():
return os.getenv("AZURE_OPENAI_API_VERSION")
def get_azure_openai_deployment_env():
return os.getenv("AZURE_OPENAI_DEPLOYMENT")
def get_bedrock_region_env():
return os.getenv("BEDROCK_REGION")
def get_bedrock_api_key_env():
return os.getenv("BEDROCK_API_KEY")
def get_bedrock_aws_access_key_id_env():
return os.getenv("BEDROCK_AWS_ACCESS_KEY_ID")
def get_bedrock_aws_secret_access_key_env():
return os.getenv("BEDROCK_AWS_SECRET_ACCESS_KEY")
def get_bedrock_aws_session_token_env():
return os.getenv("BEDROCK_AWS_SESSION_TOKEN")
def get_bedrock_profile_name_env():
return os.getenv("BEDROCK_PROFILE_NAME")
def get_bedrock_model_env():
return os.getenv("BEDROCK_MODEL")
def get_openrouter_api_key_env():
return os.getenv("OPENROUTER_API_KEY")
def get_openrouter_model_env():
return os.getenv("OPENROUTER_MODEL")
def get_openrouter_base_url_env():
return os.getenv("OPENROUTER_BASE_URL")
def get_fireworks_api_key_env():
return os.getenv("FIREWORKS_API_KEY")
def get_fireworks_model_env():
return os.getenv("FIREWORKS_MODEL")
def get_fireworks_base_url_env():
return os.getenv("FIREWORKS_BASE_URL")
def get_together_api_key_env():
return os.getenv("TOGETHER_API_KEY")
def get_together_model_env():
return os.getenv("TOGETHER_MODEL")
def get_together_base_url_env():
return os.getenv("TOGETHER_BASE_URL")
def get_cerebras_api_key_env():
return os.getenv("CEREBRAS_API_KEY")
def get_cerebras_model_env():
return os.getenv("CEREBRAS_MODEL")
def get_cerebras_base_url_env():
return os.getenv("CEREBRAS_BASE_URL")
def get_litellm_base_url_env():
return os.getenv("LITELLM_BASE_URL")
def get_litellm_api_key_env():
return os.getenv("LITELLM_API_KEY")
def get_litellm_model_env():
return os.getenv("LITELLM_MODEL")
def get_lmstudio_base_url_env():
return os.getenv("LMSTUDIO_BASE_URL")
def get_lmstudio_api_key_env():
return os.getenv("LMSTUDIO_API_KEY")
def get_lmstudio_model_env():
return os.getenv("LMSTUDIO_MODEL")
def get_custom_llm_api_key_env():
return os.getenv("CUSTOM_LLM_API_KEY")
def get_ollama_model_env():
return os.getenv("OLLAMA_MODEL")
def get_custom_model_env():
return os.getenv("CUSTOM_MODEL")
def get_pexels_api_key_env():
return os.getenv("PEXELS_API_KEY")
def get_disable_image_generation_env():
return os.getenv("DISABLE_IMAGE_GENERATION")
def get_image_provider_env():
return os.getenv("IMAGE_PROVIDER")
def get_pixabay_api_key_env():
return os.getenv("PIXABAY_API_KEY")
def get_disable_thinking_env():
return os.getenv("DISABLE_THINKING")
def get_extended_reasoning_env():
return os.getenv("EXTENDED_REASONING")
def get_web_grounding_env():
return os.getenv("WEB_GROUNDING")
def get_web_search_provider_env():
return os.getenv("WEB_SEARCH_PROVIDER")
def get_web_search_max_results_env():
return os.getenv("WEB_SEARCH_MAX_RESULTS")
def get_searxng_base_url_env():
return os.getenv("SEARXNG_BASE_URL")
def get_tavily_api_key_env():
return os.getenv("TAVILY_API_KEY")
def get_exa_api_key_env():
return os.getenv("EXA_API_KEY")
def get_brave_search_api_key_env():
return os.getenv("BRAVE_SEARCH_API_KEY")
def get_serper_api_key_env():
return os.getenv("SERPER_API_KEY")
def get_comfyui_url_env():
return os.getenv("COMFYUI_URL")
def get_comfyui_workflow_env():
return os.getenv("COMFYUI_WORKFLOW")
# Dalle 3 Quality
def get_dall_e_3_quality_env():
return os.getenv("DALL_E_3_QUALITY")
# Gpt Image 1.5 Quality
def get_gpt_image_1_5_quality_env():
return os.getenv("GPT_IMAGE_1_5_QUALITY")
# Codex OAuth
def get_codex_access_token_env():
return os.getenv("CODEX_ACCESS_TOKEN")
def get_codex_refresh_token_env():
return os.getenv("CODEX_REFRESH_TOKEN")
def get_codex_token_expires_env():
return os.getenv("CODEX_TOKEN_EXPIRES")
def get_codex_account_id_env():
return os.getenv("CODEX_ACCOUNT_ID")
def get_codex_username_env():
return os.getenv("CODEX_USERNAME")
def get_codex_email_env():
return os.getenv("CODEX_EMAIL")
def get_codex_is_pro_env():
return os.getenv("CODEX_IS_PRO")
def get_codex_model_env():
return os.getenv("CODEX_MODEL")
def get_migrate_database_on_startup_env():
return os.getenv("MIGRATE_DATABASE_ON_STARTUP")
def get_sentry_dsn_env():
return os.getenv("SENTRY_DSN")
def get_sentry_traces_sample_rate_env():
return os.getenv("SENTRY_TRACES_SAMPLE_RATE")
def get_sentry_send_default_pii_env():
return os.getenv("SENTRY_SEND_DEFAULT_PII")
# Open WebUI Image Provider
def get_open_webui_image_url_env():
return os.getenv("OPEN_WEBUI_IMAGE_URL")
def get_open_webui_image_api_key_env():
return os.getenv("OPEN_WEBUI_IMAGE_API_KEY")
# OpenAI Compatible Image Provider
def get_openai_compat_image_base_url_env():
return os.getenv("OPENAI_COMPAT_IMAGE_BASE_URL")
def get_openai_compat_image_api_key_env():
return os.getenv("OPENAI_COMPAT_IMAGE_API_KEY")
def get_openai_compat_image_model_env():
return os.getenv("OPENAI_COMPAT_IMAGE_MODEL")