{"repo": "barbelldwarf/sermonpilot", "files": {"ui/ui_pages/settings.py": {"ec5965e809436578132a5213fa4709fd5169fb48": {"t": 1785746918.500412, "n": 74251, "h": "c7b4af04c807f430", "c": "\"\"\"\nSettings Page for SermonPilot\n\nHandles configuration management, LLM provider setup, audio settings,\nand validation criteria with web-based editing interface.\n\"\"\"\n\nimport sys\nfrom pathlib import Path\n\nimport streamlit as st\nfrom ui.pages import jobs, library\nimport yaml\n\nOPENAI_PRESETS = {\n \"OpenAI\": {\"base_url\": \"\", \"models\": [\"gpt-4o\", \"gpt-4o-mini\", \"gpt-4-turbo\", \"gpt-3.5-turbo\"]},\n \"Azure OpenAI\": {\"base_url\": \"https://YOUR_RESOURCE.openai.azure.com\", \"models\": [\"gpt-4o\", \"gpt-4o-mini\", \"gpt-4\"]},\n \"Groq\": {\"base_url\": \"https://api.groq.com/openai/v1\", \"models\": [\"llama-3.3-70b-versatile\", \"llama-3.1-70b-versatile\", \"llama-3.1-8b-instant\", \"mixtral-8x7b-32768\"]},\n \"OpenRouter\": {\"base_url\": \"https://openrouter.ai/api/v1\", \"models\": [\"openai/gpt-4o\", \"openai/gpt-4o-mini\", \"anthropic/claude-3.5-sonnet\", \"google/gemini-2.0-flash-exp\"]},\n \"xAI\": {\"base_url\": \"https://api.x.ai/v1\", \"models\": [\"grok-beta\", \"grok-2-1212\"]},\n \"DeepSeek\": {\"base_url\": \"https://api.deepseek.com\", \"models\": [\"deepseek-chat\", \"deepseek-reasoner\"]},\n \"Together AI\": {\"base_url\": \"https://api.together.xyz/v1\", \"models\": [\"mistralai/Mixtral-8x22B-Instruct-v0.1\", \"meta-llama/Llama-3.3-70B-Instruct-Turbo\"]},\n \"Perplexity\": {\"base_url\": \"https://api.perplexity.ai\", \"models\": [\"sonar-pro\", \"sonar\"]},\n \"Fireworks AI\": {\"base_url\": \"https://api.fireworks.ai/inference/v1\", \"models\": [\"accounts/fireworks/models/llama-v3p3-70b-instruct\", \"accounts/fireworks/models/llama-v3p1-8b-instruct\"]},\n \"Anyscale\": {\"base_url\": \"https://api.endpoints.anyscale.com/v1\", \"models\": [\"meta-llama/Meta-Llama-3.1-70B-Instruct\"]},\n}\n\n\ndef show_settings():\n \"\"\"Main settings management interface\"\"\"\n st.markdown('