diff --git a/lib/utils/api_key_manager/components/ai_providers.py b/lib/utils/api_key_manager/components/ai_providers.py index 441ef2f5..1bc3d92e 100644 --- a/lib/utils/api_key_manager/components/ai_providers.py +++ b/lib/utils/api_key_manager/components/ai_providers.py @@ -1,245 +1,32 @@ -"""AI providers setup component.""" +"""AI providers setup component - Wrapper for the actual setup UI.""" import streamlit as st from loguru import logger from typing import Dict, Any from ..manager import APIKeyManager -from .base import render_navigation_buttons, render_step_indicator, render_tab_style -from ..wizard_state import next_step, update_progress -from datetime import datetime - -def validate_api_key(key: str) -> bool: - """Validate if an API key is properly formatted.""" - if not key: - return False - # Basic validation - check if key is not empty and has minimum length - return len(key.strip()) > 0 +from .ai_providers_setup import render_ai_providers_setup # Import the refactored setup UI def render_ai_providers(api_key_manager: APIKeyManager) -> Dict[str, Any]: - """Render the AI providers setup step.""" - logger.info("[render_ai_providers] Starting AI providers setup") + """Renders the AI providers setup step by calling the dedicated setup function.""" + logger.debug("[render_ai_providers] Calling render_ai_providers_setup") try: - # Initialize wizard state if not already initialized - if 'wizard_state' not in st.session_state: - st.session_state.wizard_state = { - 'current_step': 1, - 'total_steps': 6, - 'progress': 0, - 'completed_steps': set(), - 'last_updated': datetime.now() - } - logger.info("[render_ai_providers] Initialized wizard state") + # The actual UI, saving, validation, and feedback are now handled within render_ai_providers_setup + # This function acts primarily as a placeholder in the step sequence if needed, + # or can be bypassed entirely if the main wizard calls render_ai_providers_setup directly. - # Store API key manager in session state for update_progress - st.session_state['api_key_manager'] = api_key_manager - - # Main content - st.markdown(""" -
Configure your AI service providers for content generation
-Power your content with GPT-4 and GPT-3.5 models
-Leverage Google's powerful Gemini models
-Access Claude for advanced content generation
-Use Mistral's efficient language models
-Configure your AI research providers for content analysis and research
+Set up API keys for enhanced web research, crawling, and analysis. These are optional but recommended.
Step-by-step guide:
-Note: SerpAPI provides real-time search results from multiple engines.
-Step-by-step guide:
-Note: Firecrawl provides powerful web content extraction and analysis capabilities.
-Step-by-step guide:
-Note: Tavily provides AI-powered semantic search capabilities.
-Step-by-step guide:
-Note: Metaphor/Exa provides neural search capabilities for deep research.
-Microsoft's powerful search API with web, news, and image search capabilities.
- -Google's programmable search engine with customizable search parameters.
- -These integrations are under development and will be available soon!
-