From 6c833e277354cdac29b991998663f40a5eae7c1b Mon Sep 17 00:00:00 2001 From: ajaysi Date: Tue, 1 Apr 2025 13:11:40 +0530 Subject: [PATCH 1/7] Made changes to Getting started with ALwrity and added lot of details on API keys --- .gitignore | 58 ++ README.md | 168 +++++ alwrity.py | 334 +++------ install.bat | 39 + install_dependencies.py | 168 ----- lib/ai_marketing_tools/ai_backlinking.py | 98 +-- lib/ai_seo_tools/on_page_seo_analyzer.py | 9 +- lib/ai_seo_tools/textstaty.py | 163 +--- lib/ai_seo_tools/webpage_content_analysis.py | 52 +- lib/ai_seo_tools/wordcloud.py | 29 +- lib/ai_writers/ai_blog_rewriter.py | 8 +- lib/gpt_providers/config.py | 105 +++ lib/gpt_providers/text_generation/README.md | 157 ++++ .../text_generation/anthropic_text_gen.py | 140 +++- .../text_generation/deepseek_text_gen.py | 70 ++ .../text_generation/gemini_pro_text.py | 68 ++ .../text_generation/main_text_generation.py | 19 +- .../mistral_chat_completion.py | 152 +++- .../text_generation/openai_text_gen.py | 28 + lib/personalization/README.md | 88 +++ lib/personalization/style_analyzer.py | 203 +++++ .../__pycache__/alwrity_utils.cpython-312.pyc | Bin 22282 -> 0 bytes .../read_main_config_params.cpython-312.pyc | Bin 3631 -> 0 bytes lib/utils/ai_research.py | 99 +++ lib/utils/alwrity_sidebar.py | 244 ++++++ lib/utils/alwrity_utils.py | 12 +- lib/utils/api_key_manager.py | 69 -- lib/utils/api_key_manager/README.md | 159 ++++ lib/utils/api_key_manager/__init__.py | 37 + lib/utils/api_key_manager/ai_research.py | 42 ++ lib/utils/api_key_manager/api_key_manager.py | 165 ++++ lib/utils/api_key_manager/components.py | 76 ++ .../api_key_manager/components/README.md | 178 +++++ .../api_key_manager/components/__init__.py | 20 + .../components/ai_providers.py | 225 ++++++ .../components/ai_providers_setup.py | 114 +++ .../api_key_manager/components/ai_research.py | 137 ++++ .../components/ai_research_setup.py | 349 +++++++++ .../components/alwrity_integrations.py | 176 +++++ lib/utils/api_key_manager/components/base.py | 185 +++++ .../api_key_manager/components/final_setup.py | 146 ++++ .../components/health_monitor.py | 39 + .../components/personalization.py | 188 +++++ .../components/personalization_setup.py | 702 ++++++++++++++++++ .../components/website_setup.py | 266 +++++++ lib/utils/api_key_manager/key_rotation.py | 121 +++ lib/utils/api_key_manager/manager.py | 149 ++++ lib/utils/api_key_manager/state.py | 37 + lib/utils/api_key_manager/styles.py | 482 ++++++++++++ lib/utils/api_key_manager/validation.py | 95 +++ lib/utils/api_key_manager/wizard_state.py | 92 +++ lib/utils/content_generators.py | 5 +- lib/utils/read_main_config_params.py | 30 +- lib/utils/ui_setup.py | 84 ++- lib/utils/website_analyzer/README.md | 181 +++++ lib/utils/website_analyzer/__init__.py | 7 + lib/utils/website_analyzer/analyzer.py | 323 ++++++++ lib/utils/website_analyzer/models.py | 45 ++ lib/utils/website_analyzer/seo_analyzer.py | 233 ++++++ lib/web_crawlers/README.md | 151 ++++ lib/web_crawlers/async_web_crawler.py | 246 ++++++ lib/web_crawlers/crawl4ai_web_crawler.py | 94 +++ pages/ai_research_setup_page.py | 50 ++ pages/personalization_setup.py | 84 +++ pages/style_utils.py | 352 +++++++++ pages/test_config_settings.py | 310 ++++++++ requirements.txt | 95 +-- setup.py | 157 ++++ 68 files changed, 8384 insertions(+), 823 deletions(-) create mode 100644 .gitignore create mode 100644 install.bat delete mode 100644 install_dependencies.py create mode 100644 lib/gpt_providers/config.py create mode 100644 lib/gpt_providers/text_generation/README.md create mode 100644 lib/personalization/README.md create mode 100644 lib/personalization/style_analyzer.py delete mode 100644 lib/utils/__pycache__/alwrity_utils.cpython-312.pyc delete mode 100644 lib/utils/__pycache__/read_main_config_params.cpython-312.pyc create mode 100644 lib/utils/ai_research.py create mode 100644 lib/utils/alwrity_sidebar.py delete mode 100644 lib/utils/api_key_manager.py create mode 100644 lib/utils/api_key_manager/README.md create mode 100644 lib/utils/api_key_manager/__init__.py create mode 100644 lib/utils/api_key_manager/ai_research.py create mode 100644 lib/utils/api_key_manager/api_key_manager.py create mode 100644 lib/utils/api_key_manager/components.py create mode 100644 lib/utils/api_key_manager/components/README.md create mode 100644 lib/utils/api_key_manager/components/__init__.py create mode 100644 lib/utils/api_key_manager/components/ai_providers.py create mode 100644 lib/utils/api_key_manager/components/ai_providers_setup.py create mode 100644 lib/utils/api_key_manager/components/ai_research.py create mode 100644 lib/utils/api_key_manager/components/ai_research_setup.py create mode 100644 lib/utils/api_key_manager/components/alwrity_integrations.py create mode 100644 lib/utils/api_key_manager/components/base.py create mode 100644 lib/utils/api_key_manager/components/final_setup.py create mode 100644 lib/utils/api_key_manager/components/health_monitor.py create mode 100644 lib/utils/api_key_manager/components/personalization.py create mode 100644 lib/utils/api_key_manager/components/personalization_setup.py create mode 100644 lib/utils/api_key_manager/components/website_setup.py create mode 100644 lib/utils/api_key_manager/key_rotation.py create mode 100644 lib/utils/api_key_manager/manager.py create mode 100644 lib/utils/api_key_manager/state.py create mode 100644 lib/utils/api_key_manager/styles.py create mode 100644 lib/utils/api_key_manager/validation.py create mode 100644 lib/utils/api_key_manager/wizard_state.py create mode 100644 lib/utils/website_analyzer/README.md create mode 100644 lib/utils/website_analyzer/__init__.py create mode 100644 lib/utils/website_analyzer/analyzer.py create mode 100644 lib/utils/website_analyzer/models.py create mode 100644 lib/utils/website_analyzer/seo_analyzer.py create mode 100644 lib/web_crawlers/README.md create mode 100644 lib/web_crawlers/async_web_crawler.py create mode 100644 lib/web_crawlers/crawl4ai_web_crawler.py create mode 100644 pages/ai_research_setup_page.py create mode 100644 pages/personalization_setup.py create mode 100644 pages/style_utils.py create mode 100644 pages/test_config_settings.py create mode 100644 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c20efe30 --- /dev/null +++ b/.gitignore @@ -0,0 +1,58 @@ +*cpython* +*.cpython* +.DS_Store +.vscode +*.pyc +.env +.env.local +.env.development.local +.env.test.local +pycache +__pycache__ +*.pyc +*.pyo +*.pyd +*.pyw +*.pyz +*.pywz +*.pyzw +*.pyzp +*.pywp +*.pywpz +*.pywpzp + +.swp +.swo +.swn +.swnw +.swnwp +.swnwpz +.swnwpzp + +*.log +*.log.* +*.log.*.* +*.log.*.*.* +*.log.*.*.*.* +*.log.*.*.*.*.* + +.venv +*.cpython* +*.cpython-312.pyc + +*venv +*.venv +*.venv* +*.venv_* +*.venv_*_* +*.venv_*_*_* +*.venv_*_*_*_* + +*venv +venv_new* +venv_* + +AI-Writer_cursor_workspace.code-workspace +*.code-workspace +.cursorignore +lib/ai_writers/__pycache__/ai_agents_crew_writer.cpython-312.pyc diff --git a/README.md b/README.md index 741d9974..a44e0919 100644 --- a/README.md +++ b/README.md @@ -284,3 +284,171 @@ Still stuck, [Open issue here](https://github.com/AJaySi/AI-Writer/issues) & Som > SOFTWARE. >

+## Easy Installation Guide for Content Creators + +### Step 1: Install Python 3.11 +1. Download Python 3.11 installer: + - Visit [Python 3.11.6 Download Page](https://www.python.org/downloads/release/python-3116/) + - Scroll down and click on "Windows installer (64-bit)" + - Save the file to your computer + +2. Run the installer: + - Double click the downloaded file + - βœ… IMPORTANT: Check "Add Python 3.11 to PATH" + - Click "Install Now" + - Wait for installation to complete + - Click "Close" + +### Step 2: Install ALwrity +1. Download this project: + - Click the green "Code" button above + - Select "Download ZIP" + - Extract the ZIP file to your desired location + +2. Open Command Prompt: + - Press Windows + R + - Type "cmd" and press Enter + - Navigate to the extracted folder: + ``` + cd path\to\ALwrity + ``` + +3. Run the automatic installer: + ``` + python setup.py install + ``` + +### Troubleshooting +If you encounter any issues: +1. Make sure Python 3.11 is installed correctly: + - Open Command Prompt + - Type: `python --version` + - Should show: `Python 3.11.x` + +2. Common Issues: + - If you see "Python is not recognized": Restart your computer + - If you get package errors: Run `pip install --upgrade pip` first + +Need help? [Open an issue](../../issues) and we'll assist you! + +## For Developers +If you're a developer or want to contribute: +```bash +# Clone the repository +git clone https://github.com/yourusername/ALwrity.git + +# Create virtual environment +python -m venv venv + +# Activate virtual environment +# On Windows: +.\venv\Scripts\activate +# On Mac/Linux: +source venv/bin/activate + +# Install dependencies +pip install -r requirements.txt +``` + +# ALwrity - AI Content Writing Assistant + +## Quick Start Guide for Non-Technical Users + +### Option 1: One-Click Installation (Recommended) +1. Download this project: + - Click the green "Code" button above + - Select "Download ZIP" + - Extract the ZIP file to your desired location (e.g., Desktop) + +2. Run the installer: + - Double-click `install.bat` in the extracted folder + - If Windows asks for permission, click "Yes" + - Follow the on-screen instructions + - Wait for the installation to complete + +3. Start ALwrity: + - Open Command Prompt (Windows + R, type "cmd", press Enter) + - Navigate to the ALwrity folder: + ``` + cd path\to\ALwrity + ``` + - Type `alwrity` and press Enter + +### Option 2: Manual Installation +If the one-click installer doesn't work, follow these steps: + +1. Install Python 3.11: + - Visit [Python 3.11.6 Download Page](https://www.python.org/downloads/release/python-3116/) + - Click "Windows installer (64-bit)" + - Run the installer + - βœ… IMPORTANT: Check "Add Python 3.11 to PATH" + - Click "Install Now" + - Wait for installation to complete + +2. Install ALwrity: + - Open Command Prompt (Windows + R, type "cmd", press Enter) + - Navigate to the ALwrity folder: + ``` + cd path\to\ALwrity + ``` + - Run the installation: + ``` + python setup.py install + ``` + - Follow any on-screen instructions + +3. Start ALwrity: + - In the same Command Prompt window, type: + ``` + alwrity + ``` + - Press Enter + +### Troubleshooting Guide + +#### Common Issues and Solutions: + +1. "Python is not recognized" + - Solution: Restart your computer after installing Python + - Make sure you checked "Add Python 3.11 to PATH" during installation + +2. "Visual C++ Build Tools not found" + - Solution: Run this command in an administrative PowerShell: + ``` + winget install Microsoft.VisualStudio.2022.BuildTools --silent --override "--wait --quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended" + ``` + +3. "Rust compiler not found" + - Solution: Run these commands in PowerShell: + ``` + Invoke-WebRequest -Uri https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe -OutFile rustup-init.exe + ./rustup-init.exe -y + ``` + +4. Installation Errors + - Check the `install_errors.log` file in the ALwrity folder + - Share the error message with our support team + +#### Need Help? +- Open an issue on GitHub +- Join our support community +- Contact our support team + +### System Requirements +- Windows 10 or later +- Python 3.11.x +- At least 4GB RAM +- 2GB free disk space + +### First-Time Setup +After installation: +1. The first time you run ALwrity, it will ask for your API keys +2. Follow the on-screen instructions to enter your keys +3. Your keys will be saved securely for future use + +### Updating ALwrity +To update to the latest version: +1. Download the latest release +2. Run `install.bat` again +3. Follow the on-screen instructions + diff --git a/alwrity.py b/alwrity.py index 5048eafa..b6ffb3fd 100644 --- a/alwrity.py +++ b/alwrity.py @@ -1,24 +1,66 @@ import streamlit as st + +# Set page config - must be the first Streamlit command +st.set_page_config( + page_title="AI Writer - Content Generation Platform", + page_icon="✍️", + layout="wide", + initial_sidebar_state="collapsed", # Start with collapsed sidebar + menu_items={ + 'Get Help': None, + 'Report a bug': None, + 'About': None + } +) + +# Add CSS to hide sidebar during setup +st.markdown(""" + +""", unsafe_allow_html=True) + import os import json import base64 +import logging from datetime import datetime +# Configure logging +logging.basicConfig( + level=logging.DEBUG, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.StreamHandler(), # Output to console + #logging.FileHandler('alwrity.log') # Output to file + ] +) +logger = logging.getLogger(__name__) + from lib.utils.config_manager import save_config from lib.utils.ui_setup import setup_ui -from lib.utils.api_key_manager import check_all_api_keys +from lib.utils.alwrity_sidebar import sidebar_configuration +from lib.utils.api_key_manager.api_key_manager import APIKeyManager, render +from lib.utils.api_key_manager.validation import check_all_api_keys from dotenv import load_dotenv -from lib.utils.content_generators import ai_writers, content_planning_tools, blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis, ai_agents_content_planner +from lib.utils.content_generators import ai_writers, content_planning_tools, blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis from lib.utils.seo_tools import ai_seo_tools from lib.utils.ui_setup import setup_ui, setup_tabs from lib.utils.alwrity_utils import ai_agents_team, ai_social_writer from lib.utils.file_processor import load_image, read_prompts, write_prompts from lib.utils.voice_processing import record_voice - - def process_folder_for_rag(folder_path): """Placeholder for the process_folder_for_rag function.""" + logger.info(f"Processing folder for RAG: {folder_path}") st.write(f"This is a placeholder for processing the folder: {folder_path}") @@ -27,225 +69,77 @@ def save_config(config): Saves the provided configuration dictionary to a JSON file specified by the environment variable. """ try: + logger.debug(f"Saving configuration to {os.getenv('ALWRITY_CONFIG')}") with open(os.getenv("ALWRITY_CONFIG"), "w") as config_file: json.dump(config, config_file, indent=4) + logger.info("Configuration saved successfully") except Exception as e: + logger.error(f"Error saving configuration: {str(e)}", exc_info=True) st.error(f"An error occurred while saving the configuration: {e}") -# Sidebar configuration -def sidebar_configuration(): - st.sidebar.title("πŸ› οΈ Personalization & Settings πŸ—οΈ") - - with st.sidebar.expander("**πŸ‘· Content Personalization**"): - blog_length = st.text_input("**Content Length (words)**", value="2000", - help="Approximate word count for blogs. Note: Actual length may vary based on GPT provider and max token count.") - - blog_tone_options = ["Casual", "Professional", "How-to", "Beginner", "Research", "Programming", "Social Media", "Customize"] - blog_tone = st.selectbox("**Content Tone**", - options=blog_tone_options, - help="Select the desired tone for the blog content.") - - if blog_tone == "Customize": - custom_tone = st.text_input("Enter the tone of your content", help="Specify the tone of your content.") - if custom_tone: - blog_tone = custom_tone - else: - st.warning("Please specify the tone of your content.") - - blog_demographic_options = ["Professional", "Gen-Z", "Tech-savvy", "Student", "Digital Marketing", "Customize"] - - blog_demographic = st.selectbox("**Target Audience**", - options=blog_demographic_options, - help="Select the primary audience for the blog content.") - if blog_demographic == "Customize": - custom_demographic = st.text_input("Enter your target audience", - help="Specify your target audience.", - placeholder="Eg. Domain expert, Content creator, Financial expert etc..") - if custom_demographic: - blog_demographic = custom_demographic - else: - st.warning("Please specify your target audience.") - - blog_type = st.selectbox("**Content Type**", - options=["Informational", "Commercial", "Company", "News", "Finance", "Competitor", "Programming", "Scholar"], - help="Select the category that best describes the blog content.") - - blog_language = st.selectbox("**Content Language**", - options=["English", "Spanish", "German", "Chinese", "Arabic", "Nepali", "Hindi", "Hindustani", "Customize"], - help="Select the language in which the blog will be written.") - if blog_language == "Customize": - custom_lang = st.text_input("Enter the language of your choice", help="Specify the content language.") - if custom_lang: - blog_language = custom_lang - else: - st.warning("Please specify the language of your content.") - - blog_output_format = st.selectbox("**Content Output Format**", - options=["markdown", "HTML", "plaintext"], - help="Select the format for the blog output.") - - with st.sidebar.expander("**🩻 Images Personalization**"): - image_generation_model = st.selectbox("**Image Generation Model**", - options=["stable-diffusion", "dalle2", "dalle3"], - help="Select the model to generate images for the blog.") - number_of_blog_images = st.number_input("**Number of Blog Images**", value=1, help="Specify the number of images to include in the blog.") - - with st.sidebar.expander("**πŸ€– LLM Personalization**"): - gpt_provider = st.selectbox("**GPT Provider**", - options=["google", "openai", "minstral"], - help="Select the provider for the GPT model.") - model = st.text_input("**Model**", value="gemini-1.5-flash-latest", help="Specify the model version to use from the selected provider.") - temperature = st.slider( - "Temperature", - min_value=0.1, - max_value=1.0, - value=0.7, - step=0.1, - format="%.1f", - help="""Temperature controls the 'creativity' or randomness of the text generated by GPT. - Greater determinism with higher values indicating more randomness.""" - ) - - top_p = st.slider( - "Top-p", - min_value=0.0, - max_value=1.0, - value=0.9, - step=0.1, - format="%.1f", - help="Top-p sampling controls the level of diversity in the generated text." - ) - - # Selectbox for max tokens - max_tokens_options = [500, 1000, 2000, 4000, 16000, 32000, 64000] - max_tokens = st.selectbox( - "Max Tokens", - options=max_tokens_options, - index=max_tokens_options.index(4000), - help="Max tokens determine the maximum length of the output sequence generated by a model." - ) - n = st.number_input("N", - value=1, - min_value=1, - max_value=10, - help="Defines the number of words or characters grouped together in a sequence when analyzing text.") - frequency_penalty = st.slider( - "Frequency Penalty", - min_value=0.0, - max_value=2.0, - value=1.0, - step=0.1, - format="%.1f", - help="Influences word selection during text generation, promoting diversity with higher values." - ) - - presence_penalty = st.slider( - "Presence Penalty", - min_value=0.0, - max_value=2.0, - value=1.0, - step=0.1, - format="%.1f", - help="Encourages the use of diverse words by discouraging repetition." - ) - - with st.sidebar.expander("**πŸ•΅οΈ Search Engine Personalization**"): - geographic_location = st.selectbox("**Geographic Location**", - options=["us", "in", "fr", "cn"], - help="Select the geographic location for tailoring search results.") - search_language = st.selectbox("**Search Language**", - options=["en", "zn-cn", "de", "hi"], - help="Select the language for the search results.") - number_of_results = st.number_input("**Number of Results**", - value=10, - max_value=20, - min_value=1, - help="Specify the number of search results to retrieve.") - time_range = st.selectbox("**Time Range**", - options=["anytime", "past day", "past week", "past month", "past year"], - help="Select the time range for filtering search results.") - include_domains = st.text_input("**Include Domains**", value="", - help="List specific domains to include in search results. Leave blank to include all domains.") - similar_url = st.text_input("**Similar URL**", value="", help="Provide a URL to find similar results. Leave blank if not needed.") - - # Storing collected inputs in a dictionary - config = { - "Blog Content Characteristics": { - "Blog Length": blog_length, - "Blog Tone": blog_tone, - "Blog Demographic": blog_demographic, - "Blog Type": blog_type, - "Blog Language": blog_language, - "Blog Output Format": blog_output_format - }, - "Blog Images Details": { - "Image Generation Model": image_generation_model, - "Number of Blog Images": number_of_blog_images - }, - "LLM Options": { - "GPT Provider": gpt_provider, - "Model": model, - "Temperature": temperature, - "Top-p": top_p, - "Max Tokens": max_tokens, - "N": n, - "Frequency Penalty": frequency_penalty, - "Presence Penalty": presence_penalty - }, - "Search Engine Parameters": { - "Geographic Location": geographic_location, - "Search Language": search_language, - "Number of Results": number_of_results, - "Time Range": time_range, - "Include Domains": include_domains, - "Similar URL": similar_url - } - } - - # Writing the configuration to a file whenever a change is made - save_config(config) - - - def main(): + """Main application entry point.""" + # Initialize API key manager + api_key_manager = APIKeyManager() + + # Setup UI + setup_ui() #load_environment load_dotenv() - setup_ui() - - if check_all_api_keys(): + logger.debug("Environment variables loaded") + setup_environment_paths() + logger.debug("Environment paths configured") + + # Check API keys and show setup if needed + if not check_all_api_keys(api_key_manager): + logger.info("API keys not verified") + render(api_key_manager) + return + else: + logger.info("All API keys verified") + # Remove the CSS that hides the sidebar + st.markdown(""" + + """, unsafe_allow_html=True) + setup_environment_paths() sidebar_configuration() setup_tabs() - modify_prompts_sidebar() def setup_environment_paths(): """Sets up environment paths for saving files and configurations.""" - os.environ["SEARCH_SAVE_FILE"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_web_research", + logger.debug("Setting up environment paths") + try: + os.environ["SEARCH_SAVE_FILE"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_web_research", f"web_research_report_{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}") - os.environ["IMG_SAVE_DIR"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_content") - os.environ["CONTENT_SAVE_DIR"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_content") - os.environ["PROMPTS_DIR"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_prompts") - os.environ["ALWRITY_CONFIG"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_config", "main_config.json") - - -def modify_prompts_sidebar(): - """Provides a sidebar for modifying prompts.""" - st.sidebar.title("πŸ“ Modify Prompts") - prompts = read_prompts() - - if prompts: - edited_prompts = [] - for i, prompt in enumerate(prompts): - edited_prompt = st.sidebar.text_area(f"Prompt {i+1}", prompt) - edited_prompts.append(edited_prompt) - - if st.sidebar.button("Save Prompts"): - write_prompts(edited_prompts) - st.sidebar.success("Prompts saved successfully!") - else: - st.sidebar.warning("No prompts found in the file.") + os.environ["IMG_SAVE_DIR"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_content") + os.environ["CONTENT_SAVE_DIR"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_content") + os.environ["PROMPTS_DIR"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_prompts") + os.environ["ALWRITY_CONFIG"] = os.path.join(os.getcwd(), "lib", "workspace", "alwrity_config", "main_config.json") + logger.info("Environment paths configured successfully") + except Exception as e: + logger.error(f"Error setting up environment paths: {str(e)}", exc_info=True) + raise # Functions for the main options @@ -278,34 +172,6 @@ def ai_writers(): st.subheader("Exiting, Getting Lost. But.... I have nowhere to go πŸ₯ΉπŸ₯Ή") -def content_planning_tools(): - st.markdown("""**Alwrity content Ideation & Planning** : Provide few keywords to do comprehensive web research. - Provide few keywords to get Google, Neural, pytrends analysis. Know keywords, blog titles to target. - Generate months long content calendar around given keywords.""") - - options = [ - "Keywords Researcher", - "Competitor Analysis", - "Content Calender Ideator" - ] - choice = st.radio("Select a content planning tool:", options, index=0, format_func=lambda x: f"πŸ” {x}") - - if choice == "Keywords Researcher": - do_web_research() - elif choice == "Competitor Analysis": - competitor_analysis() - elif choice == "Content Calender Ideator": - plan_keywords = st.text_input( - "**Enter Your main Keywords to get 2 months content calendar:**", - placeholder="Enter 2-3 main keywords to generate AI content calendar with keyword researched blog titles", - help="The keywords are the ones where you would want to generate 50-60 blogs/articles on." - ) - if st.button("**Ideate Content Calender**"): - if plan_keywords: - ai_agents_content_planner(plan_keywords) - else: - st.error("Come on, really, Enter some keywords to plan on..") - def alwrity_brain(): st.title("🧠 Alwrity Brain, Better than yours!") diff --git a/install.bat b/install.bat new file mode 100644 index 00000000..c2a16b67 --- /dev/null +++ b/install.bat @@ -0,0 +1,39 @@ +@echo off +echo Welcome to ALwrity Installer +echo ============================ +echo. + +:: Check if Python 3.11 is installed +python --version 2>nul | findstr /i "3.11" >nul +if errorlevel 1 ( + echo Python 3.11 is not installed or not in PATH + echo Please install Python 3.11 from https://www.python.org/downloads/release/python-3116/ + echo Make sure to check "Add Python 3.11 to PATH" during installation + echo. + echo Press any key to open the download page... + pause >nul + start https://www.python.org/downloads/release/python-3116/ + exit /b 1 +) + +:: Create virtual environment if it doesn't exist +if not exist "venv" ( + echo Creating virtual environment... + python -m venv venv +) + +:: Activate virtual environment and install requirements +echo Activating virtual environment... +call venv\Scripts\activate.bat + +echo Upgrading pip... +python -m pip install --upgrade pip + +echo Installing ALwrity... +python setup.py install + +echo. +echo Installation complete! +echo To start ALwrity, open a new command prompt and type: alwrity +echo. +pause \ No newline at end of file diff --git a/install_dependencies.py b/install_dependencies.py deleted file mode 100644 index a1b07edd..00000000 --- a/install_dependencies.py +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env python3 -""" -Installation helper script for AI-Writer -This script checks for required system dependencies and guides the user through installation -""" - -import os -import sys -import platform -import subprocess -import shutil -import datetime -import socket -import traceback - -def log_error(error_type, details): - """ - Logs installation errors to a file with timestamp and system information. - - Args: - error_type: Type of error (e.g., 'Python Version Check', 'Rust Installation') - details: Detailed error message - """ - log_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'install_errors.log') - timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") - - # Collect system information - system_info = { - "OS": platform.system(), - "OS Version": platform.version(), - "Architecture": platform.machine(), - "Python Version": f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}", - "Hostname": socket.gethostname() - } - - # Format the log entry - log_entry = f"[{timestamp}] ERROR: {error_type}\n" - log_entry += f"Details: {details}\n" - log_entry += "System Information:\n" - for key, value in system_info.items(): - log_entry += f" {key}: {value}\n" - log_entry += "-" * 80 + "\n" - - # Write to log file - with open(log_file, 'a') as f: - f.write(log_entry) - - print(f"Error logged to {log_file}") - -def check_python_version(): - print("Checking Python version...") - version = sys.version_info - if version.major < 3 or (version.major == 3 and version.minor < 10): - error_msg = f"Python 3.10+ is required. Found Python {version.major}.{version.minor}" - print(f"Error: {error_msg}") - log_error("Python Version Check", error_msg) - return False - - print(f"βœ“ Python {version.major}.{version.minor}.{version.micro} found") - return True - -def check_visual_cpp_build_tools(): - if platform.system() != "Windows": - return True - - print("Checking for Visual C++ Build Tools...") - - # Check if cl.exe exists in PATH - if shutil.which("cl"): - print("βœ“ Visual C++ Build Tools found") - return True - - error_msg = "Visual C++ Build Tools not found. Required for building certain Python packages." - print("❌ Visual C++ Build Tools not found") - print("\nVisual C++ Build Tools are required to build certain Python packages.") - print("To install Visual C++ Build Tools:") - print("Option 1: Run this command in an administrative PowerShell:") - print(" winget install Microsoft.VisualStudio.2022.BuildTools --silent --override \"--wait --quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended\"") - print("\nOption 2: Download and install from the official Microsoft website:") - print(" https://visualstudio.microsoft.com/visual-cpp-build-tools/") - - log_error("Visual C++ Build Tools Check", error_msg) - return False - -def check_rust_compiler(): - print("Checking for Rust compiler...") - - # Check if rustc exists in PATH - if shutil.which("rustc"): - print("βœ“ Rust compiler found") - return True - - error_msg = "Rust compiler not found. Required for building certain Python packages." - print("❌ Rust compiler not found") - if platform.system() == "Windows": - print("\nTo install Rust on Windows, run:") - print(" Invoke-WebRequest -Uri https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe -OutFile rustup-init.exe") - print(" ./rustup-init.exe -y") - else: - print("\nTo install Rust on Linux/macOS, run:") - print(" curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y") - print(" source $HOME/.cargo/env") - - log_error("Rust Compiler Check", error_msg) - return False - -def main(): - print("AI-Writer Dependency Checker\n") - - all_checks_passed = True - - # Run dependency checks - if not check_python_version(): - all_checks_passed = False - - if not check_visual_cpp_build_tools(): - all_checks_passed = False - - if not check_rust_compiler(): - all_checks_passed = False - - # If all checks pass, create virtual environment and install requirements - if all_checks_passed: - print("\nAll system dependencies found!") - - # Ask user if they want to proceed with installation - response = input("\nWould you like to create a virtual environment and install Python dependencies? (y/n): ") - if response.lower() == 'y': - print("\nCreating virtual environment...") - try: - if platform.system() == "Windows": - venv_result = os.system("python -m venv venv") - if venv_result != 0: - raise Exception(f"Failed to create virtual environment, exit code: {venv_result}") - install_result = os.system("venv\\Scripts\\activate && pip install -r requirements.txt") - if install_result != 0: - raise Exception(f"Failed to install dependencies, exit code: {install_result}") - else: - venv_result = os.system("python3 -m venv venv") - if venv_result != 0: - raise Exception(f"Failed to create virtual environment, exit code: {venv_result}") - install_result = os.system("source venv/bin/activate && pip install -r requirements.txt") - if install_result != 0: - raise Exception(f"Failed to install dependencies, exit code: {install_result}") - except Exception as e: - error_msg = str(e) - print(f"\nError during installation: {error_msg}") - log_error("Dependency Installation", f"{error_msg}\n{traceback.format_exc()}") - print("Please check the install_errors.log file for details.") - - print("\nInstallation complete! To run the application:") - print("1. Activate the virtual environment:") - if platform.system() == "Windows": - print(" venv\\Scripts\\activate") - else: - print(" source venv/bin/activate") - print("2. Run the application:") - print(" streamlit run alwrity.py") - else: - print("\nSkipping dependency installation. You can install them manually with:") - print("1. Create a virtual environment: python -m venv venv") - print("2. Activate the virtual environment") - print("3. Install dependencies: pip install -r requirements.txt") - else: - print("\nPlease install the missing dependencies and try again.") - print("Check the install_errors.log file for detailed error information.") -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/lib/ai_marketing_tools/ai_backlinking.py b/lib/ai_marketing_tools/ai_backlinking.py index 856daef3..8e25bd34 100644 --- a/lib/ai_marketing_tools/ai_backlinking.py +++ b/lib/ai_marketing_tools/ai_backlinking.py @@ -24,14 +24,14 @@ # Scrape the website for contact details (email addresses, contact forms, etc.). # Use natural language processing (NLP) to understand the type of content on the website and who the contact person might be (webmaster, editor, or guest post manager). # Website Content Understanding: -# Scrape a summary of each website’s content (e.g., their blog topics, categories, and tone) to personalize the email based on the site's focus. +# Scrape a summary of each website's content (e.g., their blog topics, categories, and tone) to personalize the email based on the site's focus. # # Personalized Outreach: # AI Email Composition: # Compose personalized outreach emails based on: # The scraped data (website content, topic focus, etc.). # The user's input (what kind of guest post or content they want to contribute). -# Example: β€œHi [Webmaster Name], I noticed that your site [Site Name] features high-quality content about [Topic]. I would love to contribute a guest post on [Proposed Topic] in exchange for a backlink.” +# Example: "Hi [Webmaster Name], I noticed that your site [Site Name] features high-quality content about [Topic]. I would love to contribute a guest post on [Proposed Topic] in exchange for a backlink." # # Automated Email Sending: # Review Emails (Optional HITL): @@ -50,7 +50,7 @@ # Automated Responses: # If a website replies positively, AI can respond with predefined follow-up emails (e.g., proposing topics, confirming submission deadlines). # Follow-up Reminders: -# If there’s no reply, the system can send polite follow-up reminders at pre-set intervals. +# If there's no reply, the system can send polite follow-up reminders at pre-set intervals. # #Key Features: # @@ -71,7 +71,7 @@ # # Lead Tracking and Management: # Track all emails sent, monitor replies, and keep track of successful backlinks. -# Log each lead’s status (e.g., emailed, responded, no reply) to manage future interactions. +# Log each lead's status (e.g., emailed, responded, no reply) to manage future interactions. # # Multiple Keywords/Queries: # Allow users to run the same process for a batch of keywords, automatically generating relevant search queries for each. @@ -89,13 +89,13 @@ # Prioritize high-authority websites to maximize the impact of backlinks. # # Spam Detection: -# Use AI to detect and avoid spammy or low-quality websites that might harm the user’s SEO. +# Use AI to detect and avoid spammy or low-quality websites that might harm the user's SEO. # # Contact Form Auto-Fill: # If the site only offers a contact form (without email), automatically fill and submit the form with AI-generated content. # # Dynamic Content Suggestions: -# Suggest guest post topics based on the website’s focus, using NLP to analyze the site's existing content. +# Suggest guest post topics based on the website's focus, using NLP to analyze the site's existing content. # # Bulk Email Support: # Allow users to bulk-send outreach emails while still personalizing each message for scalability. @@ -130,7 +130,7 @@ import sys -from googlesearch import search +# from googlesearch import search # Temporarily disabled for future enhancement from loguru import logger from lib.ai_web_researcher.firecrawl_web_crawler import scrape_website from lib.gpt_providers.text_generation.main_text_generation import llm_text_gen @@ -180,48 +180,32 @@ def find_backlink_opportunities(keyword): search_queries = generate_search_queries(keyword) results = [] - for query in search_queries: - urls = search_for_urls(query) - for url in urls: - website_data = scrape_website(url) - logger.info(f"Scraped Website content for {url}: {website_data}") - if website_data: - contact_info = extract_contact_info(website_data) - logger.info(f"Contact details found for {url}: {contact_info}") + # Temporarily disabled Google search functionality + # for query in search_queries: + # urls = search_for_urls(query) + # for url in urls: + # website_data = scrape_website(url) + # logger.info(f"Scraped Website content for {url}: {website_data}") + # if website_data: + # contact_info = extract_contact_info(website_data) + # logger.info(f"Contact details found for {url}: {contact_info}") + + # Placeholder return for now + return [] - # AI-driven insights using website data - insights_prompt = f""" -You are an expert in analyzing website content. Below is the content of a website. Please analyze it and provide actionable insights for a personalized guest post outreach: - -Website Content: -{website_data.get("content_summary", "")} - -1. **Website Focus**: What is the primary topic, audience, and tone? -2. **Guest Posting Guidelines**: Are there any guest post preferences (content type, length, etc.)? -3. **Suggested Topics**: Based on the site’s content, what topics might align well? -4. **Personalization Tips**: How can we make the outreach more tailored to this site? -""" - - insights = llm_text_gen(insights_prompt) - - detailed_result = { - "url": url, - "metadata": { - "title": website_data.get("metadata", {}).get("title", ""), - "description": website_data.get("metadata", {}).get("description", ""), - "keywords": website_data.get("metadata", {}).get("keywords", []), - }, - "content_summary": website_data.get("content_summary", ""), - "contact_info": contact_info, - "insights": insights, - "backlink_opportunity": { - "query": query, - "context": "Guest post opportunity" - } - } - results.append(detailed_result) - - return results +def search_for_urls(query): + """ + Search for URLs using Google search. + + Args: + query (str): The search query. + + Returns: + list: List of URLs found. + """ + # Temporarily disabled Google search functionality + # return list(search(query, num_results=10)) + return [] def compose_personalized_email(website_data, insights, user_proposal): """ @@ -300,24 +284,6 @@ def send_email(smtp_server, smtp_port, smtp_user, smtp_password, to_email, subje logger.error(f"Failed to send email to {to_email}: {e}") return False -def search_for_urls(query): - """ - Search for URLs based on a query using Firecrawl. - - Args: - query (str): The search query. - - Returns: - list: A list of URLs. - """ - # We can use Firecrawl, which also provides AI extraction. - try: - google_search_result = search(query, max_results=5) - print(google_search_result) - return google_search_result - except Exception as err: - logger.error(f"Failed to do GoogleSearch: {err}") - def extract_contact_info(website_data): """ Extract contact information from website data. diff --git a/lib/ai_seo_tools/on_page_seo_analyzer.py b/lib/ai_seo_tools/on_page_seo_analyzer.py index 8ba398cd..9847d90f 100644 --- a/lib/ai_seo_tools/on_page_seo_analyzer.py +++ b/lib/ai_seo_tools/on_page_seo_analyzer.py @@ -2,7 +2,7 @@ import os import json import streamlit as st from tenacity import retry, stop_after_attempt, wait_random_exponential -import cloudscraper +import crawl4ai from bs4 import BeautifulSoup import requests import csv @@ -18,7 +18,7 @@ from ..gpt_providers.text_generation.main_text_generation import llm_text_gen def fetch_and_parse_html(url): """ - Fetches HTML content from the given URL using CloudScraper and parses it with BeautifulSoup. + Fetches HTML content from the given URL using crawl4ai and parses it with BeautifulSoup. Args: url (str): The URL of the webpage to fetch. @@ -27,9 +27,8 @@ def fetch_and_parse_html(url): BeautifulSoup: Parsed HTML content. """ try: - scraper = cloudscraper.create_scraper() - html = scraper.get(url) - soup = BeautifulSoup(html.text, 'html.parser') + html = crawl4ai.get(url) + soup = BeautifulSoup(html, 'html.parser') return soup except Exception as e: st.error(f"⚠️ Error fetching or parsing HTML: {e}") diff --git a/lib/ai_seo_tools/textstaty.py b/lib/ai_seo_tools/textstaty.py index f7c55942..c6716187 100644 --- a/lib/ai_seo_tools/textstaty.py +++ b/lib/ai_seo_tools/textstaty.py @@ -1,7 +1,35 @@ -import textstat -import streamlit as st +"""Text analysis tools using textstat.""" -st.set_page_config(layout="wide", page_title="Text Readability Analyzer", page_icon=":book:") +import streamlit as st +from textstat import textstat + +def analyze_text(text): + """Analyze text using textstat metrics.""" + if not text: + st.warning("Please enter some text to analyze.") + return + + # Calculate various metrics + metrics = { + "Flesch Reading Ease": textstat.flesch_reading_ease(text), + "Flesch-Kincaid Grade Level": textstat.flesch_kincaid_grade(text), + "Gunning Fog Index": textstat.gunning_fog(text), + "SMOG Index": textstat.smog_index(text), + "Automated Readability Index": textstat.automated_readability_index(text), + "Coleman-Liau Index": textstat.coleman_liau_index(text), + "Linsear Write Formula": textstat.linsear_write_formula(text), + "Dale-Chall Readability Score": textstat.dale_chall_readability_score(text), + "Readability Consensus": textstat.readability_consensus(text) + } + + # Display metrics in a clean format + st.subheader("Text Analysis Results") + for metric, value in metrics.items(): + st.metric(metric, f"{value:.2f}") + + # Add visualizations + st.subheader("Visualization") + st.bar_chart(metrics) st.title("πŸ“– Text Readability Analyzer: Making Your Content Easy to Read") @@ -10,122 +38,6 @@ st.write(""" Just paste in a sample of your text, and we'll break down the readability scores and offer actionable tips! """) - -def analyze_text(test_data): - """ - Analyzes the readability of the provided text and returns a dictionary with the results. - - Parameters: - test_data (str): The text to be analyzed. - - Returns: - dict: A dictionary containing readability scores and additional metrics. - """ - return { - "Flesch Reading Ease": { - "score": textstat.flesch_reading_ease(test_data), - "description": "This score rates your text on a scale of 0-100, with higher scores being easier to read.", - "tips": [ - "Score below 30? Simplify your text by breaking down complex sentences, using shorter words, and avoiding jargon.", - "Score around 60-70? You're in the 'standard' range.", - "Score over 90? Your text is very easy to read. Add some complexity or sophistication if needed." - ] - }, - "Flesch-Kincaid Grade Level": { - "score": textstat.flesch_kincaid_grade(test_data), - "description": "This formula estimates the US school grade level needed to understand your text.", - "tips": [ - "High Score? Your writing might be too complex for your target audience.", - "Low Score? Your audience might find the text too simple.", - "Match Your Audience: Tailor the complexity to your readers." - ] - }, - "SMOG Index": { - "score": textstat.smog_index(test_data), - "description": "This formula measures text complexity by looking at the number of long words and sentences.", - "tips": [ - "Best for texts with at least 30 sentences.", - "Adjust complexity to match your target audience." - ] - }, - "Coleman-Liau Index": { - "score": textstat.coleman_liau_index(test_data), - "description": "This formula uses sentence length and the number of syllables per word to estimate the reading level." - }, - "Automated Readability Index (ARI)": { - "score": textstat.automated_readability_index(test_data), - "description": "Estimates the grade level required to comprehend your text." - }, - "Dale-Chall Readability Score": { - "score": textstat.dale_chall_readability_score(test_data), - "description": "Focuses on the number of uncommon words (not on a list of 3000 common words) and sentence length.", - "tips": [ - "Easy to Understand: Aim for a score around the reading level of your audience.", - "High School Level? Scores between 9 and 12 indicate a high school reading level.", - "Beyond High School? Scores above 12 are usually for a college-level audience." - ] - }, - "Gunning Fog": { - "score": textstat.gunning_fog(test_data), - "description": "Calculates the grade level required to understand the text." - }, - "Linsear Write Formula": { - "score": textstat.linsear_write_formula(test_data), - "description": "Estimates the US grade level needed to understand the text." - }, - "Text Standard (Consensus)": { - "score": textstat.text_standard(test_data), - "description": "A consensus estimate of the US grade level needed to understand your text, based on multiple readability scores." - }, - "Spache Readability": { - "score": textstat.spache_readability(test_data), - "description": "Best for analyzing text for children, typically up to grade 4.", - "tips": [ - "Considers the number of unfamiliar words and the length of sentences." - ] - }, - "McAlpine EFLAW": { - "score": textstat.mcalpine_eflaw(test_data), - "description": "Evaluates text for foreign language learners, focusing on 'miniwords' and sentence length.", - "tips": [ - "Target Score: Aim for a score of 25 or less." - ] - }, - "Reading Time": { - "score": textstat.reading_time(test_data), - "description": "Estimated reading time in minutes." - }, - "Syllable Count": { - "score": textstat.syllable_count(test_data), - "description": "The number of syllables in the text." - }, - "Word Count": { - "score": textstat.lexicon_count(test_data), - "description": "The number of words in the text." - }, - "Sentence Count": { - "score": textstat.sentence_count(test_data), - "description": "The number of sentences in the text." - }, - "Character Count": { - "score": textstat.char_count(test_data), - "description": "The number of characters in the text." - }, - "Letter Count (without punctuation)": { - "score": textstat.letter_count(test_data), - "description": "The number of letters without punctuation." - }, - "Polysyllable Count": { - "score": textstat.polysyllabcount(test_data), - "description": "The number of polysyllabic words in the text." - }, - "Monosyllable Count": { - "score": textstat.monosyllabcount(test_data), - "description": "The number of monosyllabic words in the text." - } - } - - text_input = st.text_area("Paste your text here:", height=200) if st.button("Analyze!"): @@ -134,18 +46,7 @@ if st.button("Analyze!"): if not test_data.strip(): st.error("Please enter text to analyze.") else: - results = analyze_text(test_data) - - st.subheader("Readability Scores:") - st.write("---") - for metric, data in results.items(): - st.markdown(f"**{metric}:** {data['score']}") - st.markdown(f"* **What It Means:** {data['description']}") - if 'tips' in data: - st.markdown("* **Actionable Tips:**") - for tip in data['tips']: - st.markdown(f" * {tip}") - st.write(" ") + analyze_text(test_data) st.subheader("Key Takeaways:") st.write("---") diff --git a/lib/ai_seo_tools/webpage_content_analysis.py b/lib/ai_seo_tools/webpage_content_analysis.py index 7e4663d7..9cbefe7d 100644 --- a/lib/ai_seo_tools/webpage_content_analysis.py +++ b/lib/ai_seo_tools/webpage_content_analysis.py @@ -1,3 +1,5 @@ +"""Webpage content analysis tool.""" + import streamlit as st import requests from bs4 import BeautifulSoup @@ -7,8 +9,7 @@ from nltk.tokenize import word_tokenize from nltk.util import ngrams from langchain.llms import OpenAI from langchain.chains import ConversationChain - -st.set_page_config(layout="wide", page_title="Web Content Analyzer - Dive Deep with AI!", page_icon=":mag_right:") +from urllib.parse import urlparse st.title("🧠 Web Content Analyzer: Uncover Hidden Insights with AI! 🧠") st.write(""" @@ -39,19 +40,36 @@ if st.button("Analyze with AI!"): st.stop() try: + # Validate URL + parsed_url = urlparse(url) + if not parsed_url.scheme: + url = "https://" + url + + # Fetch webpage content response = requests.get(url) - response.raise_for_status() - - soup = BeautifulSoup(response.content, 'html.parser') - body_txt = soup.find('body').text - - words = [w.lower() for w in word_tokenize(body_txt)] - stopw = nltk.corpus.stopwords.words(language) - - final_words = [w for w in words if w not in stopw and w.isalpha()] - + response.raise_for_status() + + # Parse HTML + soup = BeautifulSoup(response.text, 'html.parser') + + # Extract content + title = soup.title.string if soup.title else "No title found" + meta_description = soup.find('meta', {'name': 'description'}) + description = meta_description['content'] if meta_description else "No description found" + + # Display results + st.subheader("Page Analysis") + st.metric("Title", title) + st.metric("Description", description) + + # Content statistics + text_content = soup.get_text() + words = text_content.split() + st.metric("Word Count", len(words)) + st.metric("Unique Words", len(set(words))) + # Frequency analysis (same as before) - freq = nltk.FreqDist(final_words) + freq = nltk.FreqDist(words) keywords = freq.most_common(10) df_keywords = pd.DataFrame(keywords, columns=("Keyword", "Frequency")) @@ -60,19 +78,19 @@ if st.button("Analyze with AI!"): st.write(" ") st.markdown("**Main Theme:**") - ai_theme = conversation_chain.run(f"What is the main theme or topic of this content? \n {body_txt}") + ai_theme = conversation_chain.run(f"What is the main theme or topic of this content? \n {text_content}") st.markdown(f" {ai_theme}") st.write(" ") st.markdown("**Suggested Keywords:**") - ai_keywords = conversation_chain.run(f"What other relevant keywords might be helpful to target for this content? \n {body_txt}") + ai_keywords = conversation_chain.run(f"What other relevant keywords might be helpful to target for this content? \n {text_content}") st.markdown(f" {ai_keywords}") st.write(" ") st.markdown("**Content Improvement:**") - ai_improvement = conversation_chain.run(f"What could be done to improve this content for clarity, engagement, or SEO? \n {body_txt}") + ai_improvement = conversation_chain.run(f"What could be done to improve this content for clarity, engagement, or SEO? \n {text_content}") st.markdown(f" {ai_improvement}") # --- Display Frequency Results --- @@ -94,3 +112,5 @@ if st.button("Analyze with AI!"): """) except requests.exceptions.RequestException as e: st.error(f"Oops! Something went wrong fetching the URL. Error: {e}") + except Exception as e: + st.error(f"An error occurred: {e}") diff --git a/lib/ai_seo_tools/wordcloud.py b/lib/ai_seo_tools/wordcloud.py index 7f5201ea..d04f6b90 100644 --- a/lib/ai_seo_tools/wordcloud.py +++ b/lib/ai_seo_tools/wordcloud.py @@ -1,3 +1,5 @@ +"""Word cloud generation tool.""" + import streamlit as st import requests from bs4 import BeautifulSoup @@ -5,8 +7,8 @@ import pandas as pd import nltk from nltk.tokenize import word_tokenize from nltk.util import ngrams - -st.set_page_config(layout="wide", page_title="Web Content Analyzer - Dive Into Your Words!", page_icon=":mag:") +from wordcloud import WordCloud +import matplotlib.pyplot as plt st.title("πŸ”Ž Web Content Analyzer: Uncover Your Words' Power! πŸ”Ž") st.write(""" @@ -86,3 +88,26 @@ if st.button("Analyze Your Content!"): except requests.exceptions.RequestException as e: st.error(f"Oops! Something went wrong fetching the URL. Error: {e}") + +def generate_wordcloud(text): + """Generate a word cloud from the given text.""" + if not text: + st.warning("Please enter some text to generate a word cloud.") + return + + # Create and generate a word cloud image + wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text) + + # Display the word cloud + st.subheader("Word Cloud Visualization") + fig, ax = plt.subplots(figsize=(10, 5)) + ax.imshow(wordcloud, interpolation='bilinear') + ax.axis('off') + st.pyplot(fig) + + # Add some statistics + st.subheader("Text Statistics") + words = text.split() + unique_words = set(words) + st.metric("Total Words", len(words)) + st.metric("Unique Words", len(unique_words)) diff --git a/lib/ai_writers/ai_blog_rewriter.py b/lib/ai_writers/ai_blog_rewriter.py index 58307157..683fcf70 100644 --- a/lib/ai_writers/ai_blog_rewriter.py +++ b/lib/ai_writers/ai_blog_rewriter.py @@ -1,3 +1,5 @@ +"""AI-powered blog rewriter tool.""" + import streamlit as st from bs4 import BeautifulSoup import requests @@ -9,12 +11,6 @@ from exa_py import Exa generator = pipeline('text-generation', model='gpt-3') # Example, adjust based on your model def main(): - st.set_page_config( - page_title="AI Blog Content Refresher", - page_icon=":pencil2:", - layout="wide" - ) - st.markdown("

AI Blog Content Refresher

", unsafe_allow_html=True) st.markdown("

Keep your blog fresh and engaging with AI!

", unsafe_allow_html=True) diff --git a/lib/gpt_providers/config.py b/lib/gpt_providers/config.py new file mode 100644 index 00000000..b8148f0d --- /dev/null +++ b/lib/gpt_providers/config.py @@ -0,0 +1,105 @@ +"""Configuration management for GPT providers.""" + +import os +import json +from loguru import logger +import sys + +# Configure logger to output to both file and stdout +logger.remove() # Remove default handler +logger.add( + "logs/config.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}" +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +def load_config() -> Optional[Dict]: + """ + Load configuration from environment or config file. + + Returns: + Optional[Dict]: Configuration dictionary or None if loading fails + """ + try: + logger.info("[load_config] Starting configuration load") + + # First try to load from environment variable + config_str = os.getenv('ALWRITY_CONFIG') + if config_str: + logger.debug("[load_config] Found configuration in environment variable") + try: + config = json.loads(config_str) + logger.info("[load_config] Successfully loaded configuration from environment") + return config + except json.JSONDecodeError as e: + logger.error(f"[load_config] Failed to parse environment config: {str(e)}") + + # If no environment variable, try to load from file + config_path = os.getenv('ALWRITY_CONFIG', 'config.json') + logger.debug(f"[load_config] Attempting to load config from file: {config_path}") + + if os.path.exists(config_path): + try: + with open(config_path, 'r') as f: + config = json.load(f) + logger.info("[load_config] Successfully loaded configuration from file") + return config + except json.JSONDecodeError as e: + logger.error(f"[load_config] Failed to parse config file: {str(e)}") + except Exception as e: + logger.error(f"[load_config] Error reading config file: {str(e)}") + else: + logger.error(f"[load_config] Config file not found: {config_path}") + + return None + + except Exception as e: + logger.error(f"[load_config] Unexpected error loading configuration: {str(e)}") + return None + +def read_return_config_section(section: str) -> tuple: + """ + Read a specific section from the configuration. + + Args: + section (str): The section to read + + Returns: + tuple: Configuration values + """ + try: + logger.info(f"[read_return_config_section] Reading section: {section}") + + config = load_config() + if not config: + logger.error("[read_return_config_section] No configuration available") + return None, None, None, None, None, None, None + + section_config = config.get(section, {}) + logger.debug(f"[read_return_config_section] Section config: {section_config}") + + # Extract values with defaults + gpt_provider = section_config.get('gpt_provider', 'openai') + model = section_config.get('model', 'gpt-3.5-turbo') + temperature = float(section_config.get('temperature', 0.7)) + max_tokens = int(section_config.get('max_tokens', 2000)) + top_p = float(section_config.get('top_p', 1.0)) + n = int(section_config.get('n', 1)) + fp = section_config.get('fp', 'json') + + logger.info(f"[read_return_config_section] Successfully read configuration for {section}") + logger.debug(f"[read_return_config_section] Values: provider={gpt_provider}, model={model}, " + f"temperature={temperature}, max_tokens={max_tokens}") + + return gpt_provider, model, temperature, max_tokens, top_p, n, fp + + except Exception as e: + logger.error(f"[read_return_config_section] Error reading configuration section: {str(e)}") + return None, None, None, None, None, None, None \ No newline at end of file diff --git a/lib/gpt_providers/text_generation/README.md b/lib/gpt_providers/text_generation/README.md new file mode 100644 index 00000000..d9246a31 --- /dev/null +++ b/lib/gpt_providers/text_generation/README.md @@ -0,0 +1,157 @@ +# AI Text Generation Guide for Content Creators + +## What is AI Text Generation? + +AI Text Generation is a powerful tool that helps content creators generate high-quality, engaging content using advanced artificial intelligence models. This tool supports multiple AI providers, each offering unique strengths for different types of content creation. + +## Available AI Models + +### 1. OpenAI's GPT Models +**Best for:** General content creation, creative writing, and detailed analysis + +**Key Features:** +- **Advanced Understanding**: Deep comprehension of context and nuance +- **Creative Flexibility**: Adapts to various writing styles and tones +- **Consistent Quality**: Reliable output for long-form content +- **Streaming Responses**: Real-time content generation + +**Use Cases:** +- Blog posts and articles +- Creative storytelling +- Technical writing +- Content analysis and summaries + +### 2. Google's Gemini Pro +**Best for:** Balanced content creation and factual accuracy + +**Key Features:** +- **Factual Accuracy**: Strong focus on reliable information +- **Balanced Output**: Good mix of creativity and precision +- **Multilingual Support**: Works well across different languages +- **Contextual Understanding**: Strong grasp of context + +**Use Cases:** +- Educational content +- Fact-based articles +- Multilingual content +- Research-based writing + +### 3. Anthropic's Claude +**Best for:** Professional and academic content + +**Key Features:** +- **Professional Tone**: Excellent for formal writing +- **Detailed Analysis**: Strong analytical capabilities +- **Ethical Considerations**: Built-in ethical guidelines +- **Long-form Excellence**: Great for extended content + +**Use Cases:** +- Academic writing +- Professional documentation +- Research papers +- Policy documents + +### 4. DeepSeek +**Best for:** Technical and specialized content + +**Key Features:** +- **Technical Precision**: Excellent for technical writing +- **Specialized Knowledge**: Strong in specific domains +- **Efficient Processing**: Fast response times +- **Customizable Output**: Flexible formatting options + +**Use Cases:** +- Technical documentation +- Industry-specific content +- Scientific writing +- Specialized reports + +## How to Use the Text Generation Tool + +### 1. Setting Up Your Content Parameters +Before generating content, you can specify: +- **Language**: Choose your preferred writing language +- **Tone**: Select the appropriate tone (formal, casual, technical, etc.) +- **Content Length**: Set your desired word count +- **Content Type**: Specify the type of content (blog, article, etc.) +- **Target Audience**: Define your reader demographic +- **Output Format**: Choose your preferred format (Markdown, HTML, etc.) + +### 2. Content Generation Process +1. **Input Your Requirements**: Provide your content specifications +2. **Select Your Model**: Choose the AI model best suited for your needs +3. **Generate Content**: Let the AI create your content +4. **Review and Edit**: Polish the generated content as needed + +### 3. Customization Options +You can adjust various parameters to fine-tune your content: +- **Temperature**: Control creativity (lower = more focused, higher = more creative) +- **Maximum Length**: Set content length limits +- **Output Format**: Choose how you want the content structured +- **Language Style**: Adjust the writing style and complexity + +## Best Practices for Content Creation + +### 1. Before Generation +- Clearly define your content goals +- Identify your target audience +- Choose the appropriate model for your needs +- Set clear parameters for tone and style + +### 2. During Generation +- Monitor the content quality +- Ensure it aligns with your brand voice +- Check for factual accuracy +- Maintain consistency with your style guide + +### 3. After Generation +- Review and edit the content +- Fact-check important information +- Optimize for SEO if needed +- Add your personal touch + +## Tips for Optimal Results + +1. **Be Specific**: Provide clear instructions for the AI +2. **Use Examples**: Share examples of your desired style +3. **Iterate**: Don't hesitate to regenerate if needed +4. **Review**: Always review and edit generated content +5. **Optimize**: Fine-tune parameters for better results + +## Common Use Cases + +### Blog Writing +- Generate engaging blog posts +- Create consistent content series +- Develop topic outlines +- Write product reviews + +### Article Creation +- Research-based articles +- Opinion pieces +- How-to guides +- Industry analysis + +### Technical Writing +- Documentation +- User guides +- Technical specifications +- Process descriptions + +### Creative Writing +- Story development +- Character creation +- Plot outlines +- Scene descriptions + +## Need Help? + +If you encounter any issues or need assistance: +1. Check the model-specific documentation +2. Review your input parameters +3. Try adjusting the generation settings +4. Contact support for technical issues + +--- + +*Note: This tool is designed to assist content creators in generating high-quality content. While AI can help with content creation, it's important to review and edit the generated content to ensure it meets your standards and brand guidelines.* \ No newline at end of file diff --git a/lib/gpt_providers/text_generation/anthropic_text_gen.py b/lib/gpt_providers/text_generation/anthropic_text_gen.py index de432b8c..067a3977 100644 --- a/lib/gpt_providers/text_generation/anthropic_text_gen.py +++ b/lib/gpt_providers/text_generation/anthropic_text_gen.py @@ -1,33 +1,121 @@ import os - import anthropic -from anthropic import Anthropic -import streamlit as st +import asyncio +from tenacity import ( + retry, + stop_after_attempt, + wait_random_exponential, +) # for exponential backoff +# Configure standard logging +import logging +logging.basicConfig(level=logging.INFO, format='[%(asctime)s-%(levelname)s-%(module)s-%(lineno)d]- %(message)s') +logger = logging.getLogger(__name__) -def anthropic_text_response(prompt): - """ """ - client = Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"),) - +async def test_anthropic_api_key(api_key: str) -> tuple[bool, str]: + """ + Test if the provided Anthropic API key is valid. + + Args: + api_key (str): The Anthropic API key to test + + Returns: + tuple[bool, str]: A tuple containing (is_valid, message) + """ try: + # Create Anthropic client with the provided key + client = anthropic.Anthropic(api_key=api_key) + + # Try a simple completion as a test response = client.messages.create( - max_tokens=1024, - messages=[ - { - "role": "user", - "content": prompt, - } - ], - # This will come from config file. - model="claude-3-opus-20240229", + model="claude-3-haiku-20240307", + max_tokens=10, + messages=[{ + "role": "user", + "content": "Say hello" + }] ) - return(message.content) - except anthropic.APIConnectionError as e: - st.error("The server could not be reached") - st.error(e.__cause__) # an underlying Exception, likely raised within httpx. - except anthropic.RateLimitError as e: - st.error("A 429 status code was received; we should back off a bit.") - except anthropic.APIStatusError as e: - st.error("Another non-200-range status code was received") - st.error(e.status_code) - st.error(e.response) + + # If we get here, the key is valid + return True, "Anthropic API key is valid" + + except anthropic.AuthenticationError: + return False, "Invalid Anthropic API key" + except anthropic.RateLimitError: + return False, "Rate limit exceeded. Please try again later." + except Exception as e: + return False, f"Error testing Anthropic API key: {str(e)}" + +@retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6)) +def anthropic_text_response(prompt, model="claude-3-haiku-20240307", temperature=0.7, max_tokens=2048, top_p=0.9, n=1, system_prompt="You are a helpful AI assistant."): + """ + Generate text using Anthropic's Claude model with retry logic. + + Args: + prompt (str): The input text to generate completion for + model (str, optional): Model to use. Defaults to "claude-3-haiku-20240307" + temperature (float, optional): Controls randomness. Defaults to 0.7 + max_tokens (int, optional): Maximum number of tokens to generate. Defaults to 2048 + top_p (float, optional): Controls diversity. Defaults to 0.9 + n (int, optional): Number of completions to generate. Defaults to 1 + system_prompt (str, optional): System prompt to guide the model. Defaults to "You are a helpful AI assistant." + + Returns: + str: The generated text completion + """ + try: + # Create Anthropic client + client = anthropic.Anthropic(api_key=os.getenv('ANTHROPIC_API_KEY')) + + # Generate completion + response = client.messages.create( + model=model, + max_tokens=max_tokens, + temperature=temperature, + messages=[ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": prompt} + ] + ) + + # Return the generated text + return response.content[0].text + + except Exception as e: + logger.error(f"Error in Anthropic text generation: {e}") + raise SystemExit from e + +def anthropic_text_gen(prompt, model="claude-3-haiku-20240307", temperature=0.7, max_tokens=2048): + """ + Generate text using Anthropic's Claude model. + + Args: + prompt (str): The input text to generate completion for + model (str, optional): Model to use. Defaults to "claude-3-haiku-20240307" + temperature (float, optional): Controls randomness. Defaults to 0.7 + max_tokens (int, optional): Maximum number of tokens to generate. Defaults to 2048 + + Returns: + str: The generated text completion + """ + try: + # Create Anthropic client + client = anthropic.Anthropic(api_key=os.getenv('ANTHROPIC_API_KEY')) + + # Generate completion + response = client.messages.create( + model=model, + max_tokens=max_tokens, + temperature=temperature, + messages=[{ + "role": "user", + "content": prompt + }] + ) + + # Return the generated text + return response.content[0].text + + except Exception as e: + logger.error(f"Error in Anthropic text generation: {e}") + return str(e) diff --git a/lib/gpt_providers/text_generation/deepseek_text_gen.py b/lib/gpt_providers/text_generation/deepseek_text_gen.py index f75e61d5..2fc5f42b 100644 --- a/lib/gpt_providers/text_generation/deepseek_text_gen.py +++ b/lib/gpt_providers/text_generation/deepseek_text_gen.py @@ -6,6 +6,8 @@ from tenacity import ( stop_after_attempt, wait_random_exponential, ) +import openai +import asyncio # Configure standard logging logging.basicConfig(level=logging.INFO, format='[%(asctime)s-%(levelname)s-%(module)s-%(lineno)d]- %(message)s') @@ -67,3 +69,71 @@ def deepseek_text_response(prompt, model, temperature, max_tokens, top_p, n, sys except Exception as err: logger.error(f"DeepSeek error: {err}") raise SystemExit from err + +async def test_deepseek_api_key(api_key: str) -> tuple[bool, str]: + """ + Test if the provided DeepSeek API key is valid. + + Args: + api_key (str): The DeepSeek API key to test + + Returns: + tuple[bool, str]: A tuple containing (is_valid, message) + """ + try: + # Create OpenAI client with DeepSeek base URL + client = openai.OpenAI( + api_key=api_key, + base_url="https://api.deepseek.com/v1" + ) + + # Try to list models as a simple API test + models = client.models.list() + + # If we get here, the key is valid + return True, "DeepSeek API key is valid" + + except openai.AuthenticationError: + return False, "Invalid DeepSeek API key" + except openai.RateLimitError: + return False, "Rate limit exceeded. Please try again later." + except Exception as e: + return False, f"Error testing DeepSeek API key: {str(e)}" + +def deepseek_text_gen(prompt, model="deepseek-chat", temperature=0.7, max_tokens=2048): + """ + Generate text using DeepSeek's API. + + Args: + prompt (str): The input text to generate completion for + model (str, optional): Model to use. Defaults to "deepseek-chat" + temperature (float, optional): Controls randomness. Defaults to 0.7 + max_tokens (int, optional): Maximum number of tokens to generate. Defaults to 2048 + + Returns: + str: The generated text completion + """ + try: + # Create OpenAI client with DeepSeek base URL + client = openai.OpenAI( + api_key=os.getenv('DEEPSEEK_API_KEY'), + base_url="https://api.deepseek.com/v1" + ) + + # Generate chat completion + response = client.chat.completions.create( + model=model, + messages=[{ + "role": "user", + "content": prompt + }], + temperature=temperature, + max_tokens=max_tokens + ) + + # Return the generated text + return response.choices[0].message.content + + except Exception as e: + logger.error(f"Error in DeepSeek text generation: {e}") + return str(e) diff --git a/lib/gpt_providers/text_generation/gemini_pro_text.py b/lib/gpt_providers/text_generation/gemini_pro_text.py index e4118030..cee21fef 100644 --- a/lib/gpt_providers/text_generation/gemini_pro_text.py +++ b/lib/gpt_providers/text_generation/gemini_pro_text.py @@ -18,6 +18,12 @@ from tenacity import ( wait_random_exponential, ) +import asyncio + +# Configure standard logging +import logging +logging.basicConfig(level=logging.INFO, format='[%(asctime)s-%(levelname)s-%(module)s-%(lineno)d]- %(message)s') +logger = logging.getLogger(__name__) @retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6)) def gemini_text_response(prompt, temperature, top_p, n, max_tokens, system_prompt): @@ -96,3 +102,65 @@ def gemini_text_response(prompt, temperature, top_p, n, max_tokens, system_promp # return response.text # except Exception as err: # logger.error(f"Failed to get SEO METADATA from Gemini: {err}. Retrying.") + +async def test_gemini_api_key(api_key: str) -> tuple[bool, str]: + """ + Test if the provided Gemini API key is valid. + + Args: + api_key (str): The Gemini API key to test + + Returns: + tuple[bool, str]: A tuple containing (is_valid, message) + """ + try: + # Configure Gemini with the provided key + genai.configure(api_key=api_key) + + # Try to list models as a simple API test + models = genai.list_models() + + # Check if Gemini Pro is available + if any(model.name == "gemini-pro" for model in models): + return True, "Gemini API key is valid" + else: + return False, "Gemini Pro model not available with this API key" + + except Exception as e: + return False, f"Error testing Gemini API key: {str(e)}" + +def gemini_pro_text_gen(prompt, temperature=0.7, top_p=0.9, top_k=40, max_tokens=2048): + """ + Generate text using Google's Gemini Pro model. + + Args: + prompt (str): The input text to generate completion for + temperature (float, optional): Controls randomness. Defaults to 0.7 + top_p (float, optional): Controls diversity. Defaults to 0.9 + top_k (int, optional): Controls vocabulary size. Defaults to 40 + max_tokens (int, optional): Maximum number of tokens to generate. Defaults to 2048 + + Returns: + str: The generated text completion + """ + try: + # Configure the model + model = genai.GenerativeModel('gemini-pro') + + # Generate content + response = model.generate_content( + prompt, + generation_config=genai.types.GenerationConfig( + temperature=temperature, + top_p=top_p, + top_k=top_k, + max_output_tokens=max_tokens, + ) + ) + + # Return the generated text + return response.text + + except Exception as e: + logger.error(f"Error in Gemini Pro text generation: {e}") + return str(e) diff --git a/lib/gpt_providers/text_generation/main_text_generation.py b/lib/gpt_providers/text_generation/main_text_generation.py index fd095209..f590e11f 100644 --- a/lib/gpt_providers/text_generation/main_text_generation.py +++ b/lib/gpt_providers/text_generation/main_text_generation.py @@ -1,6 +1,6 @@ import os import sys -import configparser +import json from pathlib import Path from dotenv import load_dotenv load_dotenv(Path('../.env')) @@ -28,10 +28,20 @@ def llm_text_gen(prompt): str: Generated text based on the prompt. """ try: - # Read the config param to create system instruction for the LLM. - gpt_provider, model, temperature, max_tokens, top_p, n, fp = read_return_config_section('llm_config') - blog_tone, blog_demographic, blog_type, blog_language, \ + logger.info("[llm_text_gen] Starting text generation") + logger.debug(f"[llm_text_gen] Prompt length: {len(prompt)} characters") + + try: + # Read the config param to create system instruction for the LLM. + gpt_provider, model, temperature, max_tokens, top_p, n, fp = read_return_config_section('llm_config') + blog_tone, blog_demographic, blog_type, blog_language, \ blog_output_format, blog_length = read_return_config_section('blog_characteristics') + + logger.debug(f"[llm_text_gen] Config loaded successfully - Provider: {gpt_provider}, Model: {model}") + + except Exception as err: + logger.error(f"[llm_text_gen] Error reading config params: {err}") + raise err # Construct the system prompt with the sidebar config params. system_instructions = f"""You are a highly skilled content writer with a knack for creating engaging and informative content. @@ -117,7 +127,6 @@ def check_gpt_provider(gpt_provider): return gpt_provider - def get_api_key(gpt_provider): """ Get the API key for the specified GPT provider. diff --git a/lib/gpt_providers/text_generation/mistral_chat_completion.py b/lib/gpt_providers/text_generation/mistral_chat_completion.py index 47cff28c..102c2f02 100644 --- a/lib/gpt_providers/text_generation/mistral_chat_completion.py +++ b/lib/gpt_providers/text_generation/mistral_chat_completion.py @@ -1,13 +1,9 @@ import os import logging from pathlib import Path - -from mistralai.client import MistralClient -from mistralai.models.chat_completion import ChatMessage - -logging.basicConfig(level=logging.INFO, format='%(asctime)s-%(levelname)s-%(module)s-%(lineno)d-%(message)s') -from dotenv import load_dotenv -load_dotenv(Path('../../.env')) +from mistralai import Mistral +import asyncio +from loguru import logger from tenacity import ( retry, @@ -15,26 +11,134 @@ from tenacity import ( wait_random_exponential, ) # for exponential backoff +from dotenv import load_dotenv +load_dotenv(Path('../../.env')) + +# Configure standard logging +logging.basicConfig(level=logging.INFO, format='[%(asctime)s-%(levelname)s-%(module)s-%(lineno)d]- %(message)s') +logger = logging.getLogger(__name__) + +async def test_mistral_api_key(api_key: str) -> tuple[bool, str]: + """ + Test if the provided Mistral API key is valid. + + Args: + api_key (str): The Mistral API key to test + + Returns: + tuple[bool, str]: A tuple containing (is_valid, message) + """ + try: + async with Mistral(api_key=api_key) as client: + # Try a simple completion as a test + response = await client.chat.complete_async( + model="mistral-small-latest", + messages=[{ + "role": "user", + "content": "Hello" + }], + max_tokens=10 + ) + + if response and response.choices: + return True, "Mistral API key is valid" + else: + return False, "Invalid response from Mistral API" + + except Exception as e: + return False, f"Error testing Mistral API key: {str(e)}" @retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6)) -def mistral_text_response(prompt): - """ Common function to get text response from minstral. """ - api_key = os.environ["MISTRAL_API_KEY"] - model = "mistral-medium" +async def mistral_chat_completion_async( + prompt: str, + model: str = "mistral-small-latest", + temperature: float = 0.7, + max_tokens: int = 2048, + top_p: float = 0.9, + system_prompt: str = "You are a helpful AI assistant." +) -> str: + """ + Generate text using Mistral's chat completion API asynchronously. + + Args: + prompt (str): The input text to generate completion for + model (str, optional): Model to use. Defaults to "mistral-small-latest" + temperature (float, optional): Controls randomness. Defaults to 0.7 + max_tokens (int, optional): Maximum number of tokens to generate. Defaults to 2048 + top_p (float, optional): Controls diversity. Defaults to 0.9 + system_prompt (str, optional): System prompt to guide the model. Defaults to "You are a helpful AI assistant." + + Returns: + str: The generated text completion + """ + try: + async with Mistral(api_key=os.getenv('MISTRAL_API_KEY')) as client: + messages = [] + + # Add system message if provided + if system_prompt: + messages.append({ + "role": "system", + "content": system_prompt + }) + + # Add user message + messages.append({ + "role": "user", + "content": prompt + }) + + # Generate chat completion + response = await client.chat.complete_async( + model=model, + messages=messages, + temperature=temperature, + max_tokens=max_tokens, + top_p=top_p + ) + + if response and response.choices: + return response.choices[0].message.content + else: + raise Exception("No response generated") + + except Exception as e: + logger.error(f"Error in Mistral chat completion: {e}") + raise SystemExit from e - client = MistralClient(api_key=api_key) +# Synchronous wrapper for compatibility +def mistral_chat_completion( + prompt: str, + model: str = "mistral-small-latest", + temperature: float = 0.7, + max_tokens: int = 2048, + top_p: float = 0.9, + system_prompt: str = "You are a helpful AI assistant." +) -> str: + """ + Synchronous wrapper for mistral_chat_completion_async. + """ + try: + return asyncio.run(mistral_chat_completion_async( + prompt=prompt, + model=model, + temperature=temperature, + max_tokens=max_tokens, + top_p=top_p, + system_prompt=system_prompt + )) + except Exception as e: + logger.error(f"Error in Mistral chat completion: {e}") + return str(e) - messages = [ - ChatMessage(role="user", content=prompt) - ] - - # No streaming - chat_response = client.chat( +# For backward compatibility +def mistral_text_response(prompt, model="mistral-small-latest", temperature=0.7, max_tokens=2048): + """ + Legacy function for backward compatibility. + """ + return mistral_chat_completion( + prompt=prompt, model=model, - messages=messages, + temperature=temperature, + max_tokens=max_tokens ) - print(chat_response) - - # With streaming - for chunk in client.chat_stream(model=model, messages=messages): - print(chunk) diff --git a/lib/gpt_providers/text_generation/openai_text_gen.py b/lib/gpt_providers/text_generation/openai_text_gen.py index 857873c6..b1ece36e 100644 --- a/lib/gpt_providers/text_generation/openai_text_gen.py +++ b/lib/gpt_providers/text_generation/openai_text_gen.py @@ -1,6 +1,7 @@ import os import time #IWish import openai +import asyncio # Configure standard logging import logging @@ -13,6 +14,33 @@ from tenacity import ( ) # for exponential backoff +async def test_openai_api_key(api_key: str) -> tuple[bool, str]: + """ + Test if the provided OpenAI API key is valid. + + Args: + api_key (str): The OpenAI API key to test + + Returns: + tuple[bool, str]: A tuple containing (is_valid, message) + """ + try: + # Create OpenAI client with the provided key + client = openai.OpenAI(api_key=api_key) + + # Try to list models as a simple API test + models = client.models.list() + + # If we get here, the key is valid + return True, "OpenAI API key is valid" + + except openai.AuthenticationError: + return False, "Invalid OpenAI API key" + except openai.RateLimitError: + return False, "Rate limit exceeded. Please try again later." + except Exception as e: + return False, f"Error testing OpenAI API key: {str(e)}" + @retry(wait=wait_random_exponential(min=1, max=60), stop=stop_after_attempt(6)) def openai_chatgpt(prompt, model, temperature, max_tokens, top_p, n, fp, system_prompt): """ diff --git a/lib/personalization/README.md b/lib/personalization/README.md new file mode 100644 index 00000000..85aa5a18 --- /dev/null +++ b/lib/personalization/README.md @@ -0,0 +1,88 @@ +# Content Style Analyzer Guide + +## What is the Content Style Analyzer? + +The Content Style Analyzer is an AI-powered tool that helps you understand and improve your writing style. It analyzes your content to provide detailed insights about your writing approach, helping you create more consistent and engaging content. + +## What Can It Do? + +### 1. Writing Style Analysis +The analyzer examines your content to identify: +- **Tone**: Whether your writing is formal, casual, technical, or conversational +- **Voice**: If you're using active or passive voice +- **Complexity**: How complex your writing is (simple, moderate, or complex) +- **Engagement Level**: How engaging your content is (low, medium, or high) + +### 2. Content Characteristics +It provides insights about: +- **Sentence Structure**: How your sentences are organized +- **Vocabulary Level**: Whether you're using basic, intermediate, or advanced vocabulary +- **Paragraph Organization**: How your paragraphs flow together +- **Content Flow**: How well your ideas progress throughout the content + +### 3. Target Audience Analysis +The tool helps you understand: +- **Demographics**: Who your content appeals to +- **Expertise Level**: Whether it's suitable for beginners, intermediate, or advanced readers +- **Industry Focus**: Which industry your content is targeting +- **Geographic Focus**: Which regions your content is most relevant for + +### 4. Content Type Assessment +It identifies: +- **Primary Type**: Whether it's a blog post, article, product description, etc. +- **Secondary Types**: Other content categories it might fit into +- **Purpose**: Whether it's meant to inform, entertain, persuade, etc. +- **Call to Action**: How effectively you're guiding readers to take action + +### 5. Style Pattern Analysis +The analyzer also looks for specific patterns in your writing: +- **Sentence Patterns**: How your sentences are structured +- **Word Patterns**: Your vocabulary choices and frequency +- **Rhetorical Devices**: Literary techniques you're using + +## How to Use It + +1. **Input Your Content**: Provide your content, including: + - Main content text + - Title + - Description + +2. **Get Analysis**: The tool will analyze your content and provide detailed insights + +3. **Review Recommendations**: Receive suggestions for: + - Writing tone + - Target audience + - Content type + - Creativity level + - Geographic focus + +## Benefits for Content Creators + +1. **Consistency**: Maintain a consistent writing style across your content +2. **Audience Alignment**: Ensure your content matches your target audience's expectations +3. **Quality Improvement**: Identify areas where your writing can be enhanced +4. **Style Optimization**: Get recommendations for better engagement +5. **Content Strategy**: Make data-driven decisions about your content approach + +## Tips for Best Results + +1. **Provide Complete Content**: Include all relevant sections (title, description, main content) +2. **Keep Content Length Reasonable**: The analyzer works best with content up to 4000 characters +3. **Review All Sections**: Pay attention to all aspects of the analysis for comprehensive insights +4. **Use Recommendations**: Apply the suggested improvements to enhance your content + +## Understanding the Results + +The analysis results are presented in a clear, structured format that helps you: +- Identify your current writing style +- Understand your content's strengths +- Spot areas for improvement +- Make informed decisions about future content + +## Need Help? + +If you encounter any issues or have questions about the analysis results, please refer to your content team or technical support for assistance. + +--- + +*Note: This tool is designed to help content creators improve their writing style and content quality. It uses advanced AI technology to provide detailed insights and recommendations.* \ No newline at end of file diff --git a/lib/personalization/style_analyzer.py b/lib/personalization/style_analyzer.py new file mode 100644 index 00000000..5fb2bb48 --- /dev/null +++ b/lib/personalization/style_analyzer.py @@ -0,0 +1,203 @@ +"""Style analyzer module for analyzing content style using LLM.""" + +from typing import Dict, List, Optional +from loguru import logger +from ..gpt_providers.text_generation.main_text_generation import llm_text_gen +import json +import re + +class StyleAnalyzer: + """Analyzer for content style using LLM.""" + + def __init__(self): + """Initialize the style analyzer.""" + logger.info("[StyleAnalyzer.__init__] Initializing style analyzer") + + def _clean_json_response(self, text: str) -> str: + """ + Clean the LLM response to extract valid JSON. + + Args: + text (str): Raw response from LLM + + Returns: + str: Cleaned JSON string + """ + try: + # Remove markdown code block markers + cleaned_string = text.replace("```json", "").replace("```", "").strip() + + # Log the cleaned JSON for debugging + logger.debug(f"[StyleAnalyzer._clean_json_response] Cleaned JSON: {cleaned_string}") + + return cleaned_string + + except Exception as e: + logger.error(f"[StyleAnalyzer._clean_json_response] Error cleaning response: {str(e)}") + return "" + + def analyze_content_style(self, content: Dict) -> Dict: + """ + Analyze the style of the provided content. + + Args: + content (Dict): Content to analyze, containing main_content, title, etc. + + Returns: + Dict: Analysis results + """ + try: + logger.info("[StyleAnalyzer.analyze_content_style] Starting content style analysis") + + # Prepare content for analysis + main_content = content.get("main_content", "") + title = content.get("title", "") + description = content.get("description", "") + + # Construct the analysis prompt + prompt = f"""Analyze the following content and provide a comprehensive writing style analysis. + Focus on identifying the writing style, tone, and characteristics that make this content unique. + + Title: {title} + Description: {description} + Content: {main_content[:4000]} # Limit content length for API + + IMPORTANT: Respond ONLY with a JSON object in the following format. Do not include any additional text, explanations, or markdown formatting: + {{ + "writing_style": {{ + "tone": "formal/casual/technical/etc", + "voice": "active/passive", + "complexity": "simple/moderate/complex", + "engagement_level": "low/medium/high" + }}, + "content_characteristics": {{ + "sentence_structure": "description", + "vocabulary_level": "basic/intermediate/advanced", + "paragraph_organization": "description", + "content_flow": "description" + }}, + "target_audience": {{ + "demographics": ["list"], + "expertise_level": "beginner/intermediate/advanced", + "industry_focus": "primary industry", + "geographic_focus": "primary region" + }}, + "content_type": {{ + "primary_type": "blog/article/product/etc", + "secondary_types": ["list"], + "purpose": "inform/entertain/persuade/etc", + "call_to_action": "type and frequency" + }}, + "recommended_settings": {{ + "writing_tone": "recommended tone", + "target_audience": "recommended audience", + "content_type": "recommended type", + "creativity_level": "low/medium/high", + "geographic_location": "recommended location" + }} + }}""" + + # Get analysis from LLM + logger.debug("[StyleAnalyzer.analyze_content_style] Sending prompt to LLM") + analysis_text = llm_text_gen(prompt) + + try: + # Clean and parse the JSON response + cleaned_json = self._clean_json_response(analysis_text) + if not cleaned_json: + raise ValueError("No valid JSON found in response") + + # Log the cleaned JSON for debugging + logger.debug(f"[StyleAnalyzer.analyze_content_style] Cleaned JSON: {cleaned_json}") + + # Try to parse the cleaned JSON + try: + analysis = json.loads(cleaned_json) + except json.JSONDecodeError as e: + # If parsing fails, try to fix common JSON issues + logger.warning(f"[StyleAnalyzer.analyze_content_style] Initial JSON parsing failed: {e}") + + # Fix any remaining issues + cleaned_json = re.sub(r'([^"\\])\n', r'\1 ', cleaned_json) + cleaned_json = re.sub(r'\\n', ' ', cleaned_json) + + # Try parsing again + analysis = json.loads(cleaned_json) + + logger.info("[StyleAnalyzer.analyze_content_style] Successfully parsed analysis results") + return analysis + + except json.JSONDecodeError as e: + logger.error(f"[StyleAnalyzer.analyze_content_style] Failed to parse JSON response: {e}") + logger.debug(f"[StyleAnalyzer.analyze_content_style] Raw response: {analysis_text}") + return { + "error": "Failed to parse analysis results", + "raw_response": analysis_text + } + + except Exception as e: + logger.error(f"[StyleAnalyzer.analyze_content_style] Error during analysis: {str(e)}") + return { + "error": str(e), + "success": False + } + + def analyze_style_patterns(self, content: Dict) -> Dict: + """ + Analyze specific writing style patterns in the content. + + Args: + content (Dict): Content to analyze + + Returns: + Dict: Pattern analysis results + """ + try: + main_content = content.get("main_content", "") + + prompt = f"""Analyze the following content for specific writing style patterns. + Focus on identifying recurring patterns in sentence structure, word choice, and rhetorical devices. + + Content: {main_content[:4000]} + + IMPORTANT: Respond ONLY with a JSON object in the following format. Do not include any additional text, explanations, or markdown formatting: + {{ + "sentence_patterns": {{ + "structure": ["list of patterns"], + "length": "short/medium/long", + "complexity": "simple/moderate/complex" + }}, + "word_patterns": {{ + "vocabulary": ["list of patterns"], + "frequency": "low/medium/high", + "diversity": "low/medium/high" + }}, + "rhetorical_devices": {{ + "types": ["list of devices"], + "frequency": "low/medium/high", + "effectiveness": "low/medium/high" + }} + }}""" + + analysis_text = llm_text_gen(prompt) + + try: + cleaned_json = self._clean_json_response(analysis_text) + if not cleaned_json: + raise ValueError("No valid JSON found in response") + + analysis = json.loads(cleaned_json) + return analysis + except json.JSONDecodeError as e: + logger.error(f"[StyleAnalyzer.analyze_style_patterns] Failed to parse JSON response: {e}") + return { + "error": "Failed to parse pattern analysis results", + "raw_response": analysis_text + } + + except Exception as e: + logger.error(f"[StyleAnalyzer.analyze_style_patterns] Error during analysis: {str(e)}") + return { + "error": str(e), + "success": False + } \ No newline at end of file diff --git a/lib/utils/__pycache__/alwrity_utils.cpython-312.pyc b/lib/utils/__pycache__/alwrity_utils.cpython-312.pyc deleted file mode 100644 index 8fdb8fea4e5fa683066a489d9b545868a10cdf06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22282 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 ZOZ2@Qth2SeAAykoPz^{#Jr zHwk39+?`H3=P8Z)5NNN0K9wr>;71<%5UFY#sV|EhDb_S6QB|sRZ&7KbDt+n9+G{w1 z+petn|C#@rZ~yt{pMS@H^839Me&FBUO8?eJQGX>J`*Bs3-JfISF(ps}Em89oNzc<( z-!bpN(jhr>4f72&u{kAI&OPs@DF+4I*?>*9C!bW+Dxzi2VrziTw%Yoh6dDBA*X}3I z$_Rc};}_JtcZrUBz9mDmaT+yT<+VjD-I9{Y0C;10azp~Rfpq4cC00h>u5^u&3irW(eD zF`+{--WtYTmxrlg8td}-Y8X#l9)AtfWH^lm!)3UQM#Ez?r5mqPLcod&k7pkim4MJ( zo9(TOX{lkDx|m=Mdb5t!nK*rbup0| zrUhdT+q*WQy@m{zlTI*suYnV`7Otgk+Gn$PSBWSc5A)_trzD_Om^if)yon1#M z7^Nw#-R@^QY;8{pUH9o=G* zTI;sC{x7CjeWp9qUFRHihmQC1f5F9tg@6}02s9naTuPDCVun+JRn@#Key(9NJI%`( z9TzorMiGF-9-p3`iL-eg@;RUZsIqCOOL|}&r2Y|jfU|08hdOVZYxI9#D zivoZHY>upFfYm@Q53tiZ1bB?U%W29-KvuCq$#eMuRvy4h1Rv`_PAzeHAoG&86tAxA z8ZW9~pF0zH(X)y+q3E)35kdtf*vWLAC9$H)%8JIO33%v0cyN4G0EfQA0Rfr9%Pb(w zWMQhk(8EGcV*M?t+la~Gm{j+7*`;gg!BhCN=fMk71k8ZEl9a2O5kqt(Pqt7+zWo71 zE-PS&*%vV6-3u6USph?|jDl|j47J_DUs*1-i1Q|e(?(P^F{Pp=YgAKYfLbh7068TC z`TU}ovW-i5fc%zGs%9c;wYrL~<#mm#d|i?64!DI=Sp_^yEn?4s!bwWX%0<*%8RcpO zjI8GfSeG;vc{MQyIEcvsY8K^`qzix(6cRKQF{+poB_47*l$K-T)*0EK;(J?|V3*&v z_RBg|WM>YfpLI|wJ7t}Y1UtJN8mVi7QN6r(+ zp+@YrBHae45$`{cvHQLXWhG;fuj1lWD}PV}IpD~d0UGk)CM_wvhTK>aWeo-2$X0S0 zp^(eUFXXZogPJbhO#v$(;t>?6yvr^Uh^h9;;YIFB2a;O^Bv&~|zJ-un*&zAGLvl@n z(miq@}*a2UUuEJq!| z=jv1HRri1^@G=tp>eSEV7mym_p^JolW~VcJ*EY%}q4M{M1@=G_=A4wX8_3f<*k`{U@N=<3Yo zd!^uTAzW_nd3^uT{f(7kuGD^^&{d9fKh8bMZOjx$N|AGgD8ctW>fPumHkN{?Fy0?} zxbR?Mb#$|@?k z`!+t=_P@JR@yF~tz4d;n>5J`zy3N>7v1x16oJyLZr0GlU_`6o|I|p~V zj;trv5*u<+E_GcjOqXLv*RyNc&6s(5sua6ixKfU?>w{~9n}IEVDLPTOT<+{$kFG^G zW{cCM&auMOp%ePo`Zs=3Tqs4y3zv67y&Jv7x3-p_oi&pgGn6rXnO7kyF!Zl~L?~a+ z-zf*)QM^OG2R^g?-Qq{Z1v5PU+;gGq@xNr+Uobt}%mL8EQ}rn@!_&__GZ^&mmrUD1 zl2q|SGyMK@&j_)a0BcnsTa*Ev$mr`6OoV*|) zx2g%aTv`eI8)_F%r66(PwPyqubzK5y;3)2r{~PK#+`MwqG`;JgXz!mX{0n_Ub$mm0 vmMQ Dict[str, Any]: + """ + Research a topic using web crawling and AI analysis. + + Args: + topic (str): The topic to research + + Returns: + Dict[str, Any]: Research results including overview, findings, and recommendations + """ + try: + logger.info(f"[research_topic] Starting research for topic: {topic}") + + # Initialize web crawler + async def analyze_topic(): + async with AsyncWebCrawlerService() as crawler: + # Perform web research + search_results = await crawler.crawl_website(topic) + + if not search_results.get('success'): + return { + 'success': False, + 'error': search_results.get('error', 'Research failed') + } + + # Analyze content with LLM + analysis = await crawler.analyze_content_with_llm( + search_results['content'], + api_key=None, # Should be passed from config + gpt_provider="google" # Should be configurable + ) + + # Structure the response + return { + 'success': True, + 'data': { + 'research': { + 'overview': { + 'topic': topic, + 'scope': analysis.get('topics', []), + 'methodology': 'Web crawling and AI analysis' + }, + 'data_quality': { + 'is_reliable': bool(analysis.get('seo_score', 0) > 0.7) + }, + 'analysis_quality': { + 'is_thorough': bool(len(analysis.get('key_insights', [])) > 5) + }, + 'recommendations': analysis.get('recommendations', []), + 'next_steps': analysis.get('priority_areas', []) + } + } + } + + # Run the async analysis + results = asyncio.run(analyze_topic()) + + if not results.get('success'): + error_msg = results.get('error', 'Research failed') + logger.error(f"[research_topic] Research failed: {error_msg}") + return { + 'success': False, + 'error': error_msg + } + + logger.info("[research_topic] Research completed successfully") + return results + + except Exception as e: + error_msg = f"Research failed: {str(e)}" + logger.error(f"[research_topic] {error_msg}") + return { + 'success': False, + 'error': str(e) + } \ No newline at end of file diff --git a/lib/utils/alwrity_sidebar.py b/lib/utils/alwrity_sidebar.py new file mode 100644 index 00000000..8665bead --- /dev/null +++ b/lib/utils/alwrity_sidebar.py @@ -0,0 +1,244 @@ +import streamlit as st +import logging + +from .config_manager import save_config + +# Configure logging +logging.basicConfig( + level=logging.DEBUG, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.StreamHandler(), # Output to console + #logging.FileHandler('alwrity.log') # Output to file + ] +) +logger = logging.getLogger(__name__) + +# Sidebar configuration +def sidebar_configuration(): + """Configure the sidebar with all necessary options.""" + try: + # Configure sidebar styling + st.sidebar.markdown(""" + + """, unsafe_allow_html=True) + + logger.info("Initializing sidebar configuration") + st.sidebar.title("πŸ› οΈ Personalization & Settings πŸ—οΈ") + + with st.sidebar.expander("**πŸ‘· Content Personalization**"): + logger.debug("Setting up content personalization options") + blog_length = st.text_input("**Content Length (words)**", value="2000", + help="Approximate word count for blogs. Note: Actual length may vary based on GPT provider and max token count.") + + blog_tone_options = ["Casual", "Professional", "How-to", "Beginner", "Research", "Programming", "Social Media", "Customize"] + blog_tone = st.selectbox("**Content Tone**", + options=blog_tone_options, + help="Select the desired tone for the blog content.") + logger.debug(f"Selected blog tone: {blog_tone}") + + if blog_tone == "Customize": + custom_tone = st.text_input("Enter the tone of your content", help="Specify the tone of your content.") + if custom_tone: + blog_tone = custom_tone + logger.debug(f"Custom tone set to: {custom_tone}") + else: + logger.warning("Custom tone not specified") + st.warning("Please specify the tone of your content.") + + blog_demographic_options = ["Professional", "Gen-Z", "Tech-savvy", "Student", "Digital Marketing", "Customize"] + + blog_demographic = st.selectbox("**Target Audience**", + options=blog_demographic_options, + help="Select the primary audience for the blog content.") + if blog_demographic == "Customize": + custom_demographic = st.text_input("Enter your target audience", + help="Specify your target audience.", + placeholder="Eg. Domain expert, Content creator, Financial expert etc..") + if custom_demographic: + blog_demographic = custom_demographic + else: + st.warning("Please specify your target audience.") + + blog_type = st.selectbox("**Content Type**", + options=["Informational", "Commercial", "Company", "News", "Finance", "Competitor", "Programming", "Scholar"], + help="Select the category that best describes the blog content.") + + blog_language = st.selectbox("**Content Language**", + options=["English", "Spanish", "German", "Chinese", "Arabic", "Nepali", "Hindi", "Hindustani", "Customize"], + help="Select the language in which the blog will be written.") + if blog_language == "Customize": + custom_lang = st.text_input("Enter the language of your choice", help="Specify the content language.") + if custom_lang: + blog_language = custom_lang + else: + st.warning("Please specify the language of your content.") + + blog_output_format = st.selectbox("**Content Output Format**", + options=["markdown", "HTML", "plaintext"], + help="Select the format for the blog output.") + + with st.sidebar.expander("**🩻 Images Personalization**"): + image_generation_model = st.selectbox("**Image Generation Model**", + options=["stable-diffusion", "dalle2", "dalle3"], + help="Select the model to generate images for the blog.") + number_of_blog_images = st.number_input("**Number of Blog Images**", value=1, help="Specify the number of images to include in the blog.") + + with st.sidebar.expander("**πŸ€– LLM Personalization**"): + gpt_provider = st.selectbox("**GPT Provider**", + options=["google", "openai", "minstral"], + help="Select the provider for the GPT model.") + model = st.text_input("**Model**", value="gemini-1.5-flash-latest", help="Specify the model version to use from the selected provider.") + temperature = st.slider( + "Temperature", + min_value=0.1, + max_value=1.0, + value=0.7, + step=0.1, + format="%.1f", + help="""Temperature controls the 'creativity' or randomness of the text generated by GPT. + Greater determinism with higher values indicating more randomness.""" + ) + + top_p = st.slider( + "Top-p", + min_value=0.0, + max_value=1.0, + value=0.9, + step=0.1, + format="%.1f", + help="Top-p sampling controls the level of diversity in the generated text." + ) + + # Selectbox for max tokens + max_tokens_options = [500, 1000, 2000, 4000, 16000, 32000, 64000] + max_tokens = st.selectbox( + "Max Tokens", + options=max_tokens_options, + index=max_tokens_options.index(4000), + help="Max tokens determine the maximum length of the output sequence generated by a model." + ) + n = st.number_input("N", + value=1, + min_value=1, + max_value=10, + help="Defines the number of words or characters grouped together in a sequence when analyzing text.") + frequency_penalty = st.slider( + "Frequency Penalty", + min_value=0.0, + max_value=2.0, + value=1.0, + step=0.1, + format="%.1f", + help="Influences word selection during text generation, promoting diversity with higher values." + ) + + presence_penalty = st.slider( + "Presence Penalty", + min_value=0.0, + max_value=2.0, + value=1.0, + step=0.1, + format="%.1f", + help="Encourages the use of diverse words by discouraging repetition." + ) + + with st.sidebar.expander("**πŸ•΅οΈ Search Engine Personalization**"): + geographic_location = st.selectbox("**Geographic Location**", + options=["us", "in", "fr", "cn"], + help="Select the geographic location for tailoring search results.") + search_language = st.selectbox("**Search Language**", + options=["en", "zn-cn", "de", "hi"], + help="Select the language for the search results.") + number_of_results = st.number_input("**Number of Results**", + value=10, + max_value=20, + min_value=1, + help="Specify the number of search results to retrieve.") + time_range = st.selectbox("**Time Range**", + options=["anytime", "past day", "past week", "past month", "past year"], + help="Select the time range for filtering search results.") + include_domains = st.text_input("**Include Domains**", value="", + help="List specific domains to include in search results. Leave blank to include all domains.") + similar_url = st.text_input("**Similar URL**", value="", help="Provide a URL to find similar results. Leave blank if not needed.") + + # Storing collected inputs in a dictionary + config = { + "Blog Content Characteristics": { + "Blog Length": blog_length, + "Blog Tone": blog_tone, + "Blog Demographic": blog_demographic, + "Blog Type": blog_type, + "Blog Language": blog_language, + "Blog Output Format": blog_output_format + }, + "Blog Images Details": { + "Image Generation Model": image_generation_model, + "Number of Blog Images": number_of_blog_images + }, + "LLM Options": { + "GPT Provider": gpt_provider, + "Model": model, + "Temperature": temperature, + "Top-p": top_p, + "Max Tokens": max_tokens, + "N": n, + "Frequency Penalty": frequency_penalty, + "Presence Penalty": presence_penalty + }, + "Search Engine Parameters": { + "Geographic Location": geographic_location, + "Search Language": search_language, + "Number of Results": number_of_results, + "Time Range": time_range, + "Include Domains": include_domains, + "Similar URL": similar_url + } + } + + # Writing the configuration to a file whenever a change is made + save_config(config) + except Exception as e: + logger.error(f"Error configuring sidebar: {str(e)}") + st.error(f"Error configuring sidebar: {str(e)}") \ No newline at end of file diff --git a/lib/utils/alwrity_utils.py b/lib/utils/alwrity_utils.py index b37d623b..dd80f33a 100644 --- a/lib/utils/alwrity_utils.py +++ b/lib/utils/alwrity_utils.py @@ -8,7 +8,7 @@ from lib.ai_writers.keywords_to_blog_streamlit import write_blog_from_keywords from lib.ai_writers.speech_to_blog.main_audio_to_blog import generate_audio_blog from lib.ai_writers.long_form_ai_writer import long_form_generator from lib.ai_writers.ai_news_article_writer import ai_news_generation -from lib.ai_writers.ai_agents_crew_writer import ai_agents_writers +#from lib.ai_writers.ai_agents_crew_writer import ai_agents_writers from lib.ai_writers.ai_financial_writer import write_basic_ta_report from lib.ai_writers.facebook_ai_writer import facebook_post_writer from lib.ai_writers.linkedin_ai_writer import linked_post_writer @@ -24,8 +24,8 @@ import tiktoken import openai from lib.gpt_providers.text_to_image_generation.main_generate_image_from_prompt import generate_image from lib.utils.voice_processing import record_voice -from lib.content_planning_calender.content_planning_agents_alwrity_crew import ai_agents_content_planner -from ..gpt_providers.text_generation.main_text_generation import llm_text_gen +#from lib.content_planning_calender.content_planning_agents_alwrity_crew import ai_agents_content_planner +from lib.gpt_providers.text_generation.main_text_generation import llm_text_gen def is_youtube_link(text): @@ -292,9 +292,9 @@ def ai_agents_team(): if plan_keywords and len(plan_keywords.split()) >= 2: with st.spinner("Get Content Plan..."): try: - plan_content = ai_agents_content_planner(plan_keywords) - st.success(f"Successfully generated content plan for: {plan_keywords}") - st.markdown(plan_content) + #plan_content = ai_agents_content_planner(plan_keywords) + st.success(f"Coming soon: Content plan for: {plan_keywords}") + #st.markdown(plan_content) except Exception as err: st.error(f"Failed to generate content plan: {err}") else: diff --git a/lib/utils/api_key_manager.py b/lib/utils/api_key_manager.py deleted file mode 100644 index 8be43195..00000000 --- a/lib/utils/api_key_manager.py +++ /dev/null @@ -1,69 +0,0 @@ -import os -import streamlit as st -from dotenv import load_dotenv - -def check_all_api_keys(): - """ - Checks if all required API keys are present in the environment variables. - Prompts the user to enter missing keys and saves them in the .env file. - This includes general API keys and the LLM provider key. - """ - # Load environment variables from .env (MUST COME FIRST) - load_dotenv() - - api_keys = { - "METAPHOR_API_KEY": "https://dashboard.exa.ai/login", - "TAVILY_API_KEY": "https://tavily.com/#api", - "SERPER_API_KEY": "https://serper.dev/signup", - "STABILITY_API_KEY": "https://platform.stability.ai/", - "FIRECRAWL_API_KEY": "https://www.firecrawl.dev/account" - } - - # Check for missing keys AFTER loading environment variables - missing_keys = { - key: url for key, url in api_keys.items() if os.getenv(key) is None - } - - gpt_provider = os.getenv("GPT_PROVIDER") - supported_providers = { - 'google': "GEMINI_API_KEY", - 'openai': "OPENAI_API_KEY", - 'mistral': "MISTRAL_API_KEY" - } - if not gpt_provider or gpt_provider.lower() not in supported_providers: - gpt_provider = st.selectbox( - "Select your LLM Provider", options=list(supported_providers.keys()) - ) - os.environ["GPT_PROVIDER"] = gpt_provider - try: - with open(".env", "a") as env_file: - env_file.write(f"GPT_PROVIDER={gpt_provider}\n") - except IOError as e: - st.error(f"Failed to write GPT_PROVIDER to .env file: {e}") - st.success(f"GPT Provider set to {gpt_provider}") - - api_key_var = supported_providers[gpt_provider.lower()] - if not os.getenv(api_key_var): - missing_keys[api_key_var] = '' - - # If there are missing keys, prompt the user to enter them - if missing_keys: - st.warning(f"API keys not found: {', '.join(missing_keys)}. Please provide them below. Restart the app after saving the keys.") - with st.form(key='api_keys_form'): - # Gather all missing keys in one go - for key, url in missing_keys.items(): - if url: - st.text_input(f"{key}: πŸ‘‰[Get it here]({url})πŸ‘ˆ", type="password", key=key) - else: - st.text_input(f"{key}:", type="password", key=key) - - # Save all keys at once when the button is clicked - if st.form_submit_button("Save Keys"): - with open(".env", "a") as env_file: - for key in missing_keys: - key_value = st.session_state[key] - env_file.write(f"{key}={key_value}\n") - st.success("API keys saved successfully! Please restart the application.") - st.stop() - return False - return True diff --git a/lib/utils/api_key_manager/README.md b/lib/utils/api_key_manager/README.md new file mode 100644 index 00000000..1a6f9b26 --- /dev/null +++ b/lib/utils/api_key_manager/README.md @@ -0,0 +1,159 @@ +# ALwrity Setup Guide: API Key Manager + +## What is the API Key Manager? + +The API Key Manager is a crucial component of ALwrity that helps you set up and configure all the necessary API keys and settings for your content creation workflow. It provides a user-friendly wizard interface to guide you through the setup process step by step. + +## Setup Wizard Steps + +### 1. Website Setup +- **Purpose**: Configure your website's basic information +- **Features**: + - Website URL configuration + - Site structure setup + - Basic SEO settings + - Content organization preferences + +### 2. AI Research Setup +- **Purpose**: Set up AI-powered research capabilities +- **Features**: + - Research parameters configuration + - Data collection preferences + - Analysis settings + - Research depth options + +### 3. AI Providers Configuration +- **Purpose**: Configure AI service providers +- **Supported Providers**: + - OpenAI (GPT models) + - Google (Gemini Pro) + - Anthropic (Claude) + - DeepSeek +- **Features**: + - API key management + - Model selection + - Usage preferences + - Cost optimization settings + +### 4. Personalization Setup +- **Purpose**: Customize your content creation experience +- **Features**: + - Writing style preferences + - Tone settings + - Content structure templates + - Brand voice configuration + +### 5. ALwrity Integrations +- **Purpose**: Set up additional tools and services +- **Features**: + - Third-party service connections + - Plugin configurations + - API integrations + - Workflow automation settings + +### 6. Final Setup +- **Purpose**: Complete and verify your configuration +- **Features**: + - Configuration review + - Settings verification + - Test connections + - Setup completion + +## How to Use the Setup Wizard + +### 1. Starting the Setup +1. Launch ALwrity +2. Navigate to the Setup section +3. Begin the wizard process + +### 2. Navigation +- Use the step indicator to track progress +- Navigate between steps using buttons +- Save progress automatically +- Return to previous steps if needed + +### 3. Configuration Process +1. **Enter Information**: Fill in required details +2. **Verify Settings**: Review your inputs +3. **Test Connections**: Ensure everything works +4. **Complete Setup**: Finalize your configuration + +## Managing API Keys + +### 1. Key Storage +- Secure storage of API keys +- Environment variable management +- Key rotation support +- Access control + +### 2. Key Validation +- Automatic key verification +- Usage monitoring +- Error handling +- Expiration tracking + +### 3. Security Features +- Encrypted storage +- Access logging +- Permission management +- Secure transmission + +## Progress Tracking + +### 1. Setup Progress +- Visual progress indicator +- Step completion tracking +- Overall setup status +- Remaining tasks + +### 2. Status Monitoring +- API key status +- Connection status +- Configuration status +- Error reporting + +## Best Practices + +### 1. Before Setup +- Gather all necessary API keys +- Review provider documentation +- Plan your configuration +- Backup existing settings + +### 2. During Setup +- Follow the wizard steps +- Verify each configuration +- Test connections +- Save progress regularly + +### 3. After Setup +- Review all settings +- Test functionality +- Document configurations +- Monitor usage + +## Troubleshooting + +### 1. Common Issues +- Invalid API keys +- Connection problems +- Configuration errors +- Setup interruptions + +### 2. Solutions +- Key verification +- Connection testing +- Error logging +- Support resources + +## Need Help? + +If you encounter any issues during setup: +1. Check the error messages +2. Review the documentation +3. Verify your API keys +4. Contact ALwrity support + +--- + +*Note: Keep your API keys secure and never share them. The API Key Manager helps you manage these keys safely while setting up ALwrity for optimal content creation.* \ No newline at end of file diff --git a/lib/utils/api_key_manager/__init__.py b/lib/utils/api_key_manager/__init__.py new file mode 100644 index 00000000..5c04ffa0 --- /dev/null +++ b/lib/utils/api_key_manager/__init__.py @@ -0,0 +1,37 @@ +"""API key manager package.""" + +from .manager import APIKeyManager +from .api_key_manager import ( + initialize_wizard_state, + update_progress, + check_all_api_keys, + render, + render_navigation +) +from .components import ( + render_website_setup, + render_ai_research_setup, + render_ai_providers, + render_final_setup, + render_personalization_setup, + render_alwrity_integrations, + render_navigation_buttons, + render_step_indicator +) + +__all__ = [ + 'APIKeyManager', + 'initialize_wizard_state', + 'update_progress', + 'check_all_api_keys', + 'render', + 'render_navigation', + 'render_website_setup', + 'render_ai_research_setup', + 'render_ai_providers', + 'render_final_setup', + 'render_personalization_setup', + 'render_alwrity_integrations', + 'render_navigation_buttons', + 'render_step_indicator' +] \ No newline at end of file diff --git a/lib/utils/api_key_manager/ai_research.py b/lib/utils/api_key_manager/ai_research.py new file mode 100644 index 00000000..ec929e38 --- /dev/null +++ b/lib/utils/api_key_manager/ai_research.py @@ -0,0 +1,42 @@ +"""AI research functionality for API key manager.""" + +from loguru import logger +import asyncio +from typing import Dict, Any, Optional + +async def research_topic(topic: str, api_keys: Dict[str, str]) -> Dict[str, Any]: + """ + Research a topic using available AI services. + + Args: + topic (str): The topic to research + api_keys (Dict[str, str]): Dictionary of API keys for different services + + Returns: + Dict[str, Any]: Research results and metadata + """ + try: + logger.info(f"Starting research on topic: {topic}") + + # TODO: Implement actual research functionality using available API keys + # This is a placeholder implementation + results = { + "topic": topic, + "status": "success", + "data": { + "summary": f"Research summary for {topic}", + "key_points": ["Point 1", "Point 2", "Point 3"], + "sources": ["Source 1", "Source 2"] + } + } + + logger.info("Research completed successfully") + return results + + except Exception as e: + logger.error(f"Error during research: {str(e)}") + return { + "topic": topic, + "status": "error", + "error": str(e) + } \ No newline at end of file diff --git a/lib/utils/api_key_manager/api_key_manager.py b/lib/utils/api_key_manager/api_key_manager.py new file mode 100644 index 00000000..9dac54ca --- /dev/null +++ b/lib/utils/api_key_manager/api_key_manager.py @@ -0,0 +1,165 @@ +"""API key manager for handling various API keys.""" + +from typing import Dict, Any, Optional +from loguru import logger +import streamlit as st +import os +import json +import sys +from datetime import datetime +from dotenv import load_dotenv +from .components.website_setup import render_website_setup +from .components.ai_research_setup import render_ai_research_setup +from .components.ai_providers import render_ai_providers +from .components.final_setup import render_final_setup +from .components.personalization_setup import render_personalization_setup +from .components.alwrity_integrations import render_alwrity_integrations +from .components.base import render_navigation_buttons, render_step_indicator +from .wizard_state import initialize_wizard_state, get_current_step, next_step, previous_step +from .manager import APIKeyManager +from .validation import check_all_api_keys + +# Configure logger to output to both file and stdout +logger.remove() # Remove default handler +logger.add("logs/api_key_manager.log", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", + level="DEBUG") +logger.add(sys.stdout, + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", + level="INFO") + +def initialize_wizard_state(): + """Initialize or get the wizard state from session""" + logger.debug("Initializing wizard state") + if 'wizard_state' not in st.session_state: + st.session_state.wizard_state = { + 'current_step': 0, + 'total_steps': 0, + 'completed_steps': set(), + 'api_keys_status': {}, + 'setup_progress': 0 + } + logger.info("Created new wizard state") + +def update_progress(): + """Update the overall setup progress""" + logger.debug("Updating setup progress") + try: + # Get the API key manager instance from session state + api_key_manager = st.session_state.get('api_key_manager') + if not api_key_manager: + logger.warning("API key manager not found in session state") + return + + total_keys = sum(len(keys) for keys in api_key_manager.api_key_groups.values()) + configured_keys = sum(1 for status in st.session_state.wizard_state['api_keys_status'].values() + if status.get('configured', False)) + progress = (configured_keys / total_keys) * 100 + st.session_state.wizard_state['setup_progress'] = progress + logger.info(f"Updated progress to {progress:.1f}%") + except Exception as e: + logger.error(f"Error updating progress: {str(e)}", exc_info=True) + +def render(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """ + Render the API key manager interface. + + Returns: + Dict[str, Any]: Current state + """ + try: + logger.info("[render] Rendering API key manager interface") + + # Initialize session state for current step if not exists + if "current_step" not in st.session_state: + st.session_state.current_step = 1 + logger.info("[render] Initialized current_step to 1") + + # Display step indicator + render_step_indicator(st.session_state.current_step, 6) + + # Render appropriate step based on current_step + if st.session_state.current_step == 1: + logger.info("[render] Rendering AI providers setup") + return render_ai_providers(api_key_manager) + elif st.session_state.current_step == 2: + logger.info("[render] Rendering website setup") + return render_website_setup(api_key_manager) + elif st.session_state.current_step == 3: + logger.info("[render] Rendering AI Research setup") + return render_ai_research_setup(api_key_manager) + elif st.session_state.current_step == 4: + logger.info("[render] Rendering personalization setup") + return render_personalization_setup(api_key_manager) + elif st.session_state.current_step == 5: + logger.info("[render] Rendering ALwrity integrations setup") + return render_alwrity_integrations(api_key_manager) + elif st.session_state.current_step == 6: + logger.info("[render] Rendering final setup") + return render_final_setup(api_key_manager) + + except Exception as e: + error_msg = f"Error in API key manager: {str(e)}" + logger.error(f"[render] {error_msg}") + st.error(error_msg) + return {"current_step": st.session_state.current_step, "error": error_msg} + +def render_navigation(self): + """Render navigation buttons with proper state handling""" + st.markdown(""" + ", unsafe_allow_html=True) diff --git a/lib/utils/api_key_manager/components.py b/lib/utils/api_key_manager/components.py new file mode 100644 index 00000000..9b18a82e --- /dev/null +++ b/lib/utils/api_key_manager/components.py @@ -0,0 +1,76 @@ +"""API key manager components.""" + +import asyncio +import streamlit as st +import os +from loguru import logger +from .styles import API_KEY_MANAGER_STYLES +from .config import FEATURE_PREVIEWS, API_KEY_CONFIGS +from .wizard_state import ( + get_current_step, + next_step, + previous_step, + set_selected_providers, + get_selected_providers, + set_website_url, + get_website_url, + set_api_key, + get_api_key, + can_proceed_to_next_step, + get_api_keys +) +from .health_monitor import APIKeyHealthMonitor +from .key_rotation import KeyRotationManager +from ...utils.website_analyzer import analyze_website +from .api_key_tests import ( + test_openai_api_key, + test_gemini_api_key, + test_anthropic_api_key, + test_deepseek_api_key, + test_mistral_api_key +) +from .components.base import render_step_indicator, render_navigation_buttons, render_success_message +from .components import ( + render_ai_providers, + render_website_setup, + render_health_monitoring, + render_ai_research_setup, + render_final_setup +) + +def render_wizard(): + """Render the main wizard interface.""" + st.title("API Key Setup Wizard") + + # Get current step + current_step = get_current_step() + + # Render step indicator + render_step_indicator() + + # Render current step content + if current_step == 1: + render_ai_providers() + elif current_step == 2: + render_website_setup() + elif current_step == 3: + render_ai_research_setup() + elif current_step == 4: + render_final_setup() + elif current_step == 5: + render_health_monitoring() + + # Render navigation buttons + render_navigation_buttons() + +__all__ = [ + 'render_wizard', + 'render_step_indicator', + 'render_navigation_buttons', + 'render_success_message', + 'render_ai_providers', + 'render_website_setup', + 'render_ai_research_setup', + 'render_health_monitoring', + 'render_final_setup' +] \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/README.md b/lib/utils/api_key_manager/components/README.md new file mode 100644 index 00000000..ce3dac14 --- /dev/null +++ b/lib/utils/api_key_manager/components/README.md @@ -0,0 +1,178 @@ +# ALwrity Setup Components Guide + +## Overview + +The ALwrity Setup Components are the building blocks that guide you through setting up your content creation environment. Each component is designed to help you configure specific aspects of ALwrity for optimal content creation. + +## Core Components + +### 1. Website Setup (`website_setup.py`) +**Purpose**: Configure your website's basic information and analyze its current state + +**Features**: +- **URL Configuration**: Set up your website's URL +- **Analysis Options**: + - Basic Analysis: Quick overview of your website + - Full Analysis with SEO: Comprehensive website and SEO analysis +- **Analysis Results**: + - Basic Metrics: Status, content type, title, meta description + - Content Analysis: Word count, headings, images, links + - SEO Analysis: SEO score, meta tags, content quality + - Technical SEO: Mobile friendliness, page speed, technical issues + - Strategy Recommendations: Actionable improvements + +### 2. AI Research Setup (`ai_research_setup.py`) +**Purpose**: Configure AI-powered research tools for content creation + +**Features**: +- **Traditional Search**: + - SerpAPI integration for real-time search results + - Access to structured data and knowledge graphs + - News articles and related questions + +- **AI Deep Research**: + - Tavily AI for semantic understanding + - Metaphor/Exa for neural search capabilities + - Advanced research features + +### 3. AI Providers (`ai_providers.py`) +**Purpose**: Set up your preferred AI content generation services + +**Supported Providers**: +- **OpenAI (GPT models)** + - Advanced language models + - Creative content generation + - Context-aware responses + +- **Google (Gemini Pro)** + - Balanced content creation + - Factual accuracy + - Multilingual support + +- **Anthropic (Claude)** + - Professional writing + - Detailed analysis + - Ethical considerations + +- **DeepSeek** + - Technical content + - Specialized knowledge + - Efficient processing + +### 4. Personalization Setup (`personalization_setup.py`) +**Purpose**: Customize your content creation experience + +**Features**: +- **Writing Style**: + - Tone preferences + - Voice settings + - Content structure + +- **Brand Configuration**: + - Brand voice + - Style guidelines + - Content templates + +### 5. ALwrity Integrations (`alwrity_integrations.py`) +**Purpose**: Connect additional tools and services + +**Features**: +- **Third-party Services**: + - Analytics integration + - Social media tools + - Content management systems + +- **Workflow Automation**: + - Publishing tools + - Content scheduling + - Distribution channels + +### 6. Final Setup (`final_setup.py`) +**Purpose**: Complete and verify your configuration + +**Features**: +- **Configuration Review**: + - Settings verification + - Connection testing + - Setup completion + +- **Validation**: + - API key verification + - Service connectivity + - System readiness + +## Base Components + +### 1. Navigation (`base.py`) +**Purpose**: Provide consistent navigation throughout the setup process + +**Features**: +- Step indicators +- Navigation buttons +- Progress tracking +- Back/forward controls + +## How to Use the Components + +### 1. Starting the Setup +1. Launch ALwrity +2. Navigate to the Setup section +3. Follow the guided wizard process + +### 2. Component Navigation +- Use the step indicator to track progress +- Navigate between components using buttons +- Save progress automatically +- Return to previous steps if needed + +### 3. Configuration Process +1. **Enter Information**: Fill in required details +2. **Verify Settings**: Review your inputs +3. **Test Connections**: Ensure everything works +4. **Complete Setup**: Finalize your configuration + +## Best Practices + +### 1. Before Setup +- Gather all necessary API keys +- Review provider documentation +- Plan your configuration +- Backup existing settings + +### 2. During Setup +- Follow the wizard steps +- Verify each configuration +- Test connections +- Save progress regularly + +### 3. After Setup +- Review all settings +- Test functionality +- Document configurations +- Monitor usage + +## Troubleshooting + +### 1. Common Issues +- Invalid API keys +- Connection problems +- Configuration errors +- Setup interruptions + +### 2. Solutions +- Key verification +- Connection testing +- Error logging +- Support resources + +## Need Help? + +If you encounter any issues during setup: +1. Check the error messages +2. Review the documentation +3. Verify your API keys +4. Contact ALwrity support + +--- + +*Note: Each component is designed to help you set up a specific aspect of ALwrity. Follow the setup wizard in order to ensure all components are properly configured for optimal content creation.* \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/__init__.py b/lib/utils/api_key_manager/components/__init__.py new file mode 100644 index 00000000..97061d65 --- /dev/null +++ b/lib/utils/api_key_manager/components/__init__.py @@ -0,0 +1,20 @@ +"""API key manager components package.""" + +from .website_setup import render_website_setup +from .ai_research_setup import render_ai_research_setup +from .ai_providers import render_ai_providers +from .final_setup import render_final_setup +from .personalization_setup import render_personalization_setup +from .alwrity_integrations import render_alwrity_integrations +from .base import render_navigation_buttons, render_step_indicator + +__all__ = [ + 'render_website_setup', + 'render_ai_research_setup', + 'render_ai_providers', + 'render_final_setup', + 'render_personalization_setup', + 'render_alwrity_integrations', + 'render_navigation_buttons', + 'render_step_indicator' +] \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/ai_providers.py b/lib/utils/api_key_manager/components/ai_providers.py new file mode 100644 index 00000000..c55aae6c --- /dev/null +++ b/lib/utils/api_key_manager/components/ai_providers.py @@ -0,0 +1,225 @@ +"""AI providers setup component.""" + +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 + +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") + try: + # Store API key manager in session state for update_progress + st.session_state['api_key_manager'] = api_key_manager + + # Main content + st.markdown(""" +
+

πŸ€– AI Providers Setup

+

Configure your AI service providers for content generation

+
+ """, unsafe_allow_html=True) + + # Create tabs for different AI providers + tabs = st.tabs(["Primary Providers", "Additional Providers"]) + + # Track if any changes were made + changes_made = False + has_valid_key = False + validation_message = "" + + with tabs[0]: + st.markdown("### Primary AI Providers") + st.markdown("Configure the main AI providers for content creation") + + # Create a grid layout for AI provider cards + col1, col2 = st.columns(2) + + with col1: + # OpenAI Card + with st.container(): + st.markdown(""" +
+
+
πŸ€–
+
OpenAI
+
+
+

Power your content with GPT-4 and GPT-3.5 models

+
+ """, unsafe_allow_html=True) + + openai_key = st.text_input( + "OpenAI API Key", + type="password", + key="openai_key", + help="Enter your OpenAI API key" + ) + + if openai_key: + if validate_api_key(openai_key): + st.markdown(""" +
+ βœ“ API key configured +
+ """, unsafe_allow_html=True) + else: + st.markdown(""" +
+ ⚠️ Invalid API key format +
+ """, unsafe_allow_html=True) + + with st.expander("πŸ“‹ How to get your OpenAI API key", expanded=False): + st.markdown(""" + **Step-by-step guide:** + 1. Go to [OpenAI's website](https://platform.openai.com) + 2. Sign up or log in to your account + 3. Navigate to the API section + 4. Click "Create new secret key" + 5. Copy the generated key and paste it here + + **Note:** Keep your API key secure and never share it publicly. + """) + + st.markdown("
", unsafe_allow_html=True) + + with col2: + # Google Card + with st.container(): + st.markdown(""" +
+
+
πŸ”
+
Google Gemini
+
+
+

Leverage Google's powerful Gemini models

+
+ """, unsafe_allow_html=True) + + google_key = st.text_input( + "Google API Key", + type="password", + key="google_key", + help="Enter your Google API key" + ) + + if google_key: + if validate_api_key(google_key): + st.markdown(""" +
+ βœ“ API key configured +
+ """, unsafe_allow_html=True) + else: + st.markdown(""" +
+ ⚠️ Invalid API key format +
+ """, unsafe_allow_html=True) + + with st.expander("πŸ“‹ How to get your Google API key", expanded=False): + st.markdown(""" + **Step-by-step guide:** + 1. Visit [Google AI Studio](https://makersuite.google.com/app/apikey) + 2. Sign in with your Google account + 3. Click "Create API key" + 4. Copy the generated key and paste it here + + **Note:** Make sure to enable the Gemini API in your Google Cloud Console. + """) + + st.markdown("
", unsafe_allow_html=True) + + with tabs[1]: + st.markdown("### Additional AI Providers") + st.markdown("Configure additional AI providers for enhanced capabilities") + + # Create a grid layout for additional provider cards + col1, col2 = st.columns(2) + + with col1: + # Anthropic Card (Coming Soon) + with st.container(): + st.markdown(""" +
+
+
🧠
+
Anthropic Coming Soon
+
+
+

Access Claude for advanced content generation

+
+
+ """, unsafe_allow_html=True) + st.info("Anthropic integration will be available in the next update") + + with col2: + # Mistral Card (Coming Soon) + with st.container(): + st.markdown(""" +
+
+
⚑
+
Mistral Coming Soon
+
+
+

Use Mistral's efficient language models

+
+
+ """, unsafe_allow_html=True) + st.info("Mistral integration will be available in the next update") + + # Track changes and validate keys + if any([openai_key, google_key]): + changes_made = True + # Check if at least one valid API key is provided + if validate_api_key(openai_key) or validate_api_key(google_key): + has_valid_key = True + validation_message = "βœ… At least one AI provider configured successfully" + else: + validation_message = "⚠️ Please provide at least one valid API key" + else: + validation_message = "⚠️ Please configure at least one AI provider to continue" + + # Display validation message + if validation_message: + if "βœ…" in validation_message: + st.success(validation_message) + else: + st.warning(validation_message) + + # Navigation buttons + if render_navigation_buttons(1, 6, changes_made): + if has_valid_key: + # Store the API keys in a separate session state key + st.session_state['api_keys'] = { + 'openai': openai_key if validate_api_key(openai_key) else None, + 'google': google_key if validate_api_key(google_key) else None + } + + # Update progress and move to next step + st.session_state['current_step'] = 2 # Set the next step explicitly + update_progress() + st.rerun() # Rerun to apply the changes + else: + st.error("Please configure at least one valid AI provider to continue") + + return {"current_step": 1, "changes_made": changes_made} + + except Exception as e: + error_msg = f"Error in AI providers setup: {str(e)}" + logger.error(f"[render_ai_providers] {error_msg}") + st.error(error_msg) + return {"current_step": 1, "error": error_msg} \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/ai_providers_setup.py b/lib/utils/api_key_manager/components/ai_providers_setup.py new file mode 100644 index 00000000..1ab045f6 --- /dev/null +++ b/lib/utils/api_key_manager/components/ai_providers_setup.py @@ -0,0 +1,114 @@ +"""AI providers setup component for API key manager.""" + +from typing import Dict, Any +from loguru import logger +import streamlit as st +import os +import sys + +def render_ai_providers_setup(api_key_manager) -> Dict[str, Any]: + """ + Render the AI providers setup component. + + Args: + api_key_manager: API key manager instance + + Returns: + Dict[str, Any]: Component state + """ + try: + logger.info("[render_ai_providers_setup] Rendering AI providers setup") + + # Display section header + st.header("Step 1: Select AI Providers") + st.markdown(""" + Configure your AI providers to enable advanced content generation capabilities. + Choose and set up the AI services you want to use. + """) + + # Create columns for different providers + col1, col2 = st.columns(2) + + with col1: + st.subheader("OpenAI") + st.markdown(""" + OpenAI's GPT models provide powerful natural language processing capabilities. + + Get your API key from: [OpenAI Dashboard](https://platform.openai.com/account/api-keys) + """) + + openai_key = api_key_manager.get_api_key("openai") + openai_input = st.text_input( + "OpenAI API Key", + value=openai_key if openai_key else "", + type="password", + key="openai_key_input" + ) + + with col2: + st.subheader("Google Gemini") + st.markdown(""" + Google's Gemini models offer advanced AI capabilities. + + Get your API key from: [Google AI Studio](https://makersuite.google.com/app/apikey) + """) + + gemini_key = api_key_manager.get_api_key("gemini") + gemini_input = st.text_input( + "Gemini API Key", + value=gemini_key if gemini_key else "", + type="password", + key="gemini_key_input" + ) + + # Optional AI Provider + st.subheader("Additional AI Provider (Optional)") + col1, col2 = st.columns(2) + + with col1: + st.markdown(""" + Mistral AI provides an alternative model for content generation. + + Get your API key from: [Mistral Platform](https://console.mistral.ai/api-keys/) + """) + + mistral_key = api_key_manager.get_api_key("mistral") + mistral_input = st.text_input( + "Mistral API Key (Optional)", + value=mistral_key if mistral_key else "", + type="password", + key="mistral_key_input" + ) + + # Add a note about saving + st.info(""" + Note: At least one AI provider (OpenAI or Google Gemini) is required. + Click Continue to save your keys and proceed. + """) + + # Save keys if they've changed when proceeding to next step + if st.session_state.get('wizard_current_step', 1) > 1: + if openai_input != openai_key: + api_key_manager.save_api_key("openai", openai_input) + logger.info("[render_ai_providers_setup] OpenAI API key saved") + + if gemini_input != gemini_key: + api_key_manager.save_api_key("gemini", gemini_input) + logger.info("[render_ai_providers_setup] Gemini API key saved") + + if mistral_input != mistral_key: + api_key_manager.save_api_key("mistral", mistral_input) + logger.info("[render_ai_providers_setup] Mistral API key saved") + + # Validate that at least one required provider is configured + if not (openai_input or gemini_input): + st.error("Please configure at least one AI provider (OpenAI or Google Gemini) to proceed.") + return {"current_step": 1, "can_proceed": False} + + return {"current_step": 1, "can_proceed": bool(openai_input or gemini_input)} + + except Exception as e: + error_msg = f"Error in AI providers setup: {str(e)}" + logger.error(f"[render_ai_providers_setup] {error_msg}") + st.error(error_msg) + return {"current_step": 1, "error": error_msg} diff --git a/lib/utils/api_key_manager/components/ai_research.py b/lib/utils/api_key_manager/components/ai_research.py new file mode 100644 index 00000000..09e6c5ac --- /dev/null +++ b/lib/utils/api_key_manager/components/ai_research.py @@ -0,0 +1,137 @@ +"""AI Research setup component.""" + +import streamlit as st +from typing import Dict, Any +from loguru import logger +from ..manager import APIKeyManager +from .base import render_navigation_buttons, render_step_indicator + +def render_ai_research(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """Render the AI Research setup step.""" + try: + st.markdown(""" +
+

πŸ” AI Research Configuration

+

Configure your research preferences and provide user information

+
+ """, unsafe_allow_html=True) + + # Create tabs for different sections + tabs = st.tabs(["User Information", "Research Preferences"]) + + changes_made = False + has_valid_info = False + validation_message = "" + + with tabs[0]: + st.markdown("### User Information") + st.markdown("Please provide your details for personalized research experience") + + # User Information Card + with st.container(): + st.markdown(""" + + """, unsafe_allow_html=True) + + # User Input Fields with Streamlit Components + full_name = st.text_input("Full Name", key="full_name", + help="Enter your full name as you'd like it to appear") + + email = st.text_input("Email Address", key="email", + help="Enter your business email address") + + company = st.text_input("Company/Organization", key="company", + help="Enter your company or organization name") + + role = st.selectbox("Role", + ["Content Creator", "Marketing Manager", "Business Owner", "Other"], + help="Select your primary role") + + with tabs[1]: + st.markdown("### Research Preferences") + st.markdown("Configure how AI assists with your research") + + # Research Preferences Card + with st.container(): + st.markdown(""" +
+
+
🎯
+
Research Settings
+
+
+ """, unsafe_allow_html=True) + + # Research Preferences Settings + research_depth = st.select_slider( + "Research Depth", + options=["Basic", "Standard", "Deep", "Comprehensive"], + value="Standard", + help="Choose how detailed you want the AI research to be" + ) + + st.markdown("#### Content Types") + content_types = st.multiselect( + "Select content types to focus on", + ["Blog Posts", "Social Media", "Technical Articles", "News", "Academic Papers"], + default=["Blog Posts", "Social Media"], + help="Choose what types of content you want to research" + ) + + auto_research = st.toggle( + "Enable Automated Research", + help="Automatically start research when content topics are added" + ) + + # Validate inputs + if all([full_name, email, company]): + changes_made = True + has_valid_info = True + validation_message = "βœ… User information completed successfully" + else: + validation_message = "⚠️ Please fill in all required fields to continue" + + # Display validation message + if validation_message: + if "βœ…" in validation_message: + st.success(validation_message) + else: + st.warning(validation_message) + + # Navigation buttons + if render_navigation_buttons(3, 6, changes_made): + if has_valid_info: + # Store user information in session state + st.session_state['user_info'] = { + 'full_name': full_name, + 'email': email, + 'company': company, + 'role': role, + 'research_preferences': { + 'depth': research_depth, + 'content_types': content_types, + 'auto_research': auto_research + } + } + + # Update progress and move to next step + st.session_state['current_step'] = 4 + st.rerun() + else: + st.error("Please complete all required fields to continue") + + return {"current_step": 3, "changes_made": changes_made} + + except Exception as e: + error_msg = f"Error in AI research setup: {str(e)}" + logger.error(f"[render_ai_research] {error_msg}") + st.error(error_msg) + return {"current_step": 3, "error": error_msg} \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/ai_research_setup.py b/lib/utils/api_key_manager/components/ai_research_setup.py new file mode 100644 index 00000000..6eeaf853 --- /dev/null +++ b/lib/utils/api_key_manager/components/ai_research_setup.py @@ -0,0 +1,349 @@ +"""AI research setup component for the API key manager.""" + +import streamlit as st +from loguru import logger +from typing import Dict, Any +from ..manager import APIKeyManager +from .base import render_navigation_buttons +import os +from dotenv import load_dotenv +import sys + +# Configure logger +logger.remove() # Remove default handler +logger.add( + "logs/ai_research_setup.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}" +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +def render_ai_research_setup(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """Render the AI research setup step.""" + logger.info("[render_ai_research_setup] Rendering AI research setup component") + + st.markdown(""" +
+

πŸ” AI Research Setup

+

Configure your AI research providers for content analysis and research

+
+ """, unsafe_allow_html=True) + + # Create two columns for different search types + col1, col2 = st.columns(2) + + with col1: + st.markdown("### The Usual") + + # SerpAPI Card + st.markdown(""" +
+
+
πŸ”Ž
+
SerpAPI
+
+
+ Access search engine results for research +
+
+ """, unsafe_allow_html=True) + + serpapi_key = st.text_input( + "SerpAPI Key", + type="password", + key="serpapi_key", + help="Enter your SerpAPI key" + ) + + if serpapi_key: + st.markdown(""" +
+ βœ“ API key configured +
+ """, unsafe_allow_html=True) + + st.markdown(""" +
+
+ πŸ“‹ How to get your SerpAPI key +
+

Step-by-step guide:

+
    +
  1. Visit SerpAPI
  2. +
  3. Create an account
  4. +
  5. Go to your dashboard
  6. +
  7. Copy your API key
  8. +
  9. Paste it here
  10. +
+

Note: SerpAPI provides real-time search results from multiple engines.

+
+
+
+ """, unsafe_allow_html=True) + + st.markdown("
", unsafe_allow_html=True) + + # Firecrawl Card + st.markdown(""" +
+
+
πŸ•·οΈ
+
Firecrawl
+
+
+ Web content extraction and analysis +
+
+ """, unsafe_allow_html=True) + + firecrawl_key = st.text_input( + "Firecrawl API Key", + type="password", + key="firecrawl_key", + help="Enter your Firecrawl API key" + ) + + if firecrawl_key: + st.markdown(""" +
+ βœ“ API key configured +
+ """, unsafe_allow_html=True) + + st.markdown(""" +
+
+ πŸ“‹ How to get your Firecrawl API key +
+

Step-by-step guide:

+
    +
  1. Visit Firecrawl
  2. +
  3. Create an account
  4. +
  5. Go to your dashboard
  6. +
  7. Generate your API key
  8. +
  9. Copy and paste it here
  10. +
+

Note: Firecrawl provides powerful web content extraction and analysis capabilities.

+
+
+
+ """, unsafe_allow_html=True) + + st.markdown("
", unsafe_allow_html=True) + + with col2: + st.markdown("### AI Deep Research") + + # Tavily Card + st.markdown(""" +
+
+
πŸ€–
+
Tavily AI
+
+
+ AI-powered search with semantic understanding +
+
+ """, unsafe_allow_html=True) + + tavily_key = st.text_input( + "Tavily API Key", + type="password", + key="tavily_key", + help="Enter your Tavily API key" + ) + + if tavily_key: + st.markdown(""" +
+ βœ“ API key configured +
+ """, unsafe_allow_html=True) + + st.markdown(""" +
+
+ πŸ“‹ How to get your Tavily API key +
+

Step-by-step guide:

+
    +
  1. Visit Tavily
  2. +
  3. Create an account
  4. +
  5. Go to API settings
  6. +
  7. Generate a new API key
  8. +
  9. Copy and paste it here
  10. +
+

Note: Tavily provides AI-powered semantic search capabilities.

+
+
+
+ """, unsafe_allow_html=True) + + st.markdown("
", unsafe_allow_html=True) + + # Metaphor/Exa Card + st.markdown(""" +
+
+
🧠
+
Metaphor/Exa
+
+
+ Neural search engine for deep research +
+
+ """, unsafe_allow_html=True) + + metaphor_key = st.text_input( + "Metaphor/Exa API Key", + type="password", + key="metaphor_key", + help="Enter your Metaphor/Exa API key" + ) + + if metaphor_key: + st.markdown(""" +
+ βœ“ API key configured +
+ """, unsafe_allow_html=True) + + st.markdown(""" +
+
+ πŸ“‹ How to get your Metaphor/Exa API key +
+

Step-by-step guide:

+
    +
  1. Visit Metaphor/Exa
  2. +
  3. Create an account
  4. +
  5. Navigate to API settings
  6. +
  7. Generate your API key
  8. +
  9. Copy and paste it here
  10. +
+

Note: Metaphor/Exa provides neural search capabilities for deep research.

+
+
+
+ """, unsafe_allow_html=True) + + st.markdown("
", unsafe_allow_html=True) + + # Disabled Options Expander + with st.expander("πŸ”œ Coming Soon - More Search Options", expanded=False): + st.markdown(""" +
+

Bing Search API

+

Microsoft's powerful search API with web, news, and image search capabilities.

+ +

Google Search API

+

Google's programmable search engine with customizable search parameters.

+ +

These integrations are under development and will be available soon!

+
+ """, unsafe_allow_html=True) + + # Track changes + changes_made = bool(serpapi_key or tavily_key or metaphor_key or firecrawl_key) + + # Navigation buttons with correct arguments + if render_navigation_buttons(3, 5, changes_made): + if changes_made: + try: + # Load existing .env file if it exists + load_dotenv() + + # Create or update .env file with new API keys + with open('.env', 'a') as f: + if serpapi_key: + f.write(f"\nSERPAPI_KEY={serpapi_key}") + logger.info("[render_ai_research_setup] Saved SerpAPI key") + if tavily_key: + f.write(f"\nTAVILY_API_KEY={tavily_key}") + logger.info("[render_ai_research_setup] Saved Tavily API key") + if metaphor_key: + f.write(f"\nMETAPHOR_API_KEY={metaphor_key}") + logger.info("[render_ai_research_setup] Saved Metaphor API key") + if firecrawl_key: + f.write(f"\nFIRECRAWL_API_KEY={firecrawl_key}") + logger.info("[render_ai_research_setup] Saved Firecrawl API key") + + # Store the API keys in session state + st.session_state['api_keys'] = { + 'serpapi': serpapi_key, + 'tavily': tavily_key, + 'metaphor': metaphor_key, + 'firecrawl': firecrawl_key + } + + # Update progress and move to next step + st.session_state['current_step'] = 4 + st.rerun() + except Exception as e: + error_msg = f"Error saving API keys: {str(e)}" + logger.error(f"[render_ai_research_setup] {error_msg}") + st.error(error_msg) + else: + st.error("Please configure at least one research provider to continue") + + # Detailed Information Section + st.markdown(""" + --- + ### Understanding Your Research Options + + #### The Usual: Traditional Search + **SerpAPI** + - Real-time search results from multiple search engines + - Access to structured data from search results + - Great for gathering general information and market research + - Includes features like: + - Web search results + - News articles + - Knowledge graphs + - Related questions + + #### AI Deep Research: Advanced Search Capabilities + + **Tavily AI** + - AI-powered search with semantic understanding + - Automatically summarizes and analyzes search results + - Perfect for: + - Deep research tasks + - Academic research + - Fact-checking + - Real-time information gathering + + **Metaphor/Exa** + - Neural search engine that understands context and meaning + - Specialized in finding highly relevant content + - Ideal for: + - Technical research + - Finding similar content + - Discovering patterns in research + - Understanding topic landscapes + + #### Choosing the Right Tool + + 1. **For General Research:** + - Start with SerpAPI for broad coverage and structured data + + 2. **For Deep Analysis:** + - Use Tavily AI when you need AI-powered insights + - Choose Metaphor/Exa for neural search and pattern discovery + + 3. **For Comprehensive Research:** + - Combine multiple tools to get the most complete picture + - Use SerpAPI for initial research + - Follow up with AI tools for deeper insights + + > **Pro Tip:** Configure multiple providers to ensure you have backup options and can cross-reference results for better accuracy. + """) + + return {"current_step": 3, "changes_made": changes_made} diff --git a/lib/utils/api_key_manager/components/alwrity_integrations.py b/lib/utils/api_key_manager/components/alwrity_integrations.py new file mode 100644 index 00000000..981b2f21 --- /dev/null +++ b/lib/utils/api_key_manager/components/alwrity_integrations.py @@ -0,0 +1,176 @@ +"""ALwrity integrations setup component.""" + +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 + +def render_alwrity_integrations(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """Render the ALwrity integrations setup step.""" + try: + # Apply enhanced tab styling + render_tab_style() + + st.markdown(""" +
+

πŸ”„ ALwrity Integrations

+

Connect your content platforms and tools

+
+ """, unsafe_allow_html=True) + + # Create tabs for different integration types + tabs = st.tabs(["Website Platforms", "Social Media", "Analytics Tools"]) + + changes_made = False + has_valid_integrations = False + validation_message = "" + + with tabs[0]: + st.markdown(""" +
+

Website Platforms

+

Connect your website platforms for seamless content publishing

+
+ """, unsafe_allow_html=True) + + # Website Platforms Grid + col1, col2 = st.columns(2) + + with col1: + # WordPress Card (Coming Soon) + with st.container(): + st.markdown(""" +
+
+
🌐
+
WordPress Coming Soon
+
+
+

Connect your WordPress site for direct content publishing.

+
+
+ """, unsafe_allow_html=True) + st.info("WordPress integration will be available in the next update") + + with col2: + # Wix Card (Coming Soon) + with st.container(): + st.markdown(""" +
+
+
🎨
+
Wix Coming Soon
+
+
+

Connect your Wix site for direct content publishing.

+
+
+ """, unsafe_allow_html=True) + st.info("Wix integration will be available in the next update") + + with tabs[1]: + st.markdown(""" +
+

Social Media

+

Connect your social media accounts for content distribution

+
+ """, unsafe_allow_html=True) + + # Social Media Grid + col1, col2 = st.columns(2) + + with col1: + # Facebook Card (Coming Soon) + with st.container(): + st.markdown(""" +
+
+
πŸ“˜
+
Facebook Coming Soon
+
+
+

Connect your Facebook account for content sharing.

+
+
+ """, unsafe_allow_html=True) + st.info("Facebook integration will be available in the next update") + + with col2: + # Instagram Card (Coming Soon) + with st.container(): + st.markdown(""" +
+
+
πŸ“Έ
+
Instagram Coming Soon
+
+
+

Connect your Instagram account for content sharing.

+
+
+ """, unsafe_allow_html=True) + st.info("Instagram integration will be available in the next update") + + with tabs[2]: + st.markdown(""" +
+

Analytics Tools

+

Connect your analytics tools for content performance tracking

+
+ """, unsafe_allow_html=True) + + # Google Search Console Card (Coming Soon) + with st.container(): + st.markdown(""" +
+
+
πŸ“Š
+
Google Search Console Coming Soon
+
+
+

Connect your Google Search Console for SEO insights.

+
+
+ """, unsafe_allow_html=True) + st.info("Google Search Console integration will be available in the next update") + + # Validate integrations + changes_made = True # Always allow proceeding since integrations are coming soon + has_valid_integrations = True + validation_message = "βœ… Website platform integrations will be available in the next update" + + # Display validation message + if validation_message: + if "βœ…" in validation_message: + st.success(validation_message) + else: + st.warning(validation_message) + + # Navigation buttons + if render_navigation_buttons(5, 6, changes_made): + if has_valid_integrations: + # Store integration settings in session state + st.session_state['integrations'] = { + 'coming_soon': { + 'wordpress': True, + 'wix': True, + 'facebook': True, + 'instagram': True, + 'google_search_console': True + } + } + + # Update progress and move to next step + st.session_state['current_step'] = 6 + st.rerun() + else: + st.error("Please configure at least one integration to continue") + + return {"current_step": 5, "changes_made": changes_made} + + except Exception as e: + error_msg = f"Error in ALwrity integrations setup: {str(e)}" + logger.error(f"[render_alwrity_integrations] {error_msg}") + st.error(error_msg) + return {"current_step": 5, "error": error_msg} \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/base.py b/lib/utils/api_key_manager/components/base.py new file mode 100644 index 00000000..953df736 --- /dev/null +++ b/lib/utils/api_key_manager/components/base.py @@ -0,0 +1,185 @@ +"""Base components for the API key manager.""" + +import streamlit as st +from typing import Dict, Any +from loguru import logger +from ..styles import API_KEY_MANAGER_STYLES +from ..wizard_state import ( + get_current_step, + next_step, + previous_step, + can_proceed_to_next_step +) + +def render_step_indicator(current_step: int, total_steps: int) -> None: + """Render the step indicator.""" + try: + st.markdown(""" + + """, unsafe_allow_html=True) + + steps = [ + ("πŸ”‘", "AI LLM", 1), + ("πŸ€–", "Website Setup", 2), + ("πŸ‘€", "AI Research", 3), + ("🎨", "Personalization", 4), + ("πŸ”„", "Integrations", 5), + ("βœ…", "Complete", 6) + ] + + html = '
' + for i, (icon, title, step) in enumerate(steps): + step_class = "active" if step == current_step else "completed" if step < current_step else "" + line_class = "active" if step == current_step else "completed" if step < current_step else "" + + html += f''' +
+ {icon} + {step} + {title} +
+ ''' + if i < len(steps) - 1: + html += f'
' + html += '
' + + st.markdown(html, unsafe_allow_html=True) + + except Exception as e: + logger.error(f"Error rendering step indicator: {str(e)}") + st.error("Error displaying step indicator") + +def render_navigation_buttons(current_step: int, total_steps: int, changes_made: bool = False) -> bool: + """Render the navigation buttons with modern glassmorphic styling. + + Args: + current_step (int): Current step number + total_steps (int): Total number of steps + changes_made (bool): Whether changes were made in the current step + + Returns: + bool: True if next/complete button was clicked, False otherwise + """ + col1, col2, col3 = st.columns([1, 2, 1]) + + with col1: + if current_step > 1: + if st.button("**← Back**", use_container_width=True, key="back_button"): + st.session_state['current_step'] = current_step - 1 + st.rerun() + + with col3: + if current_step < total_steps: + next_text = "**Continue β†’**" + if st.button(next_text, use_container_width=True, disabled=not changes_made, key="next_button"): + return True + else: + if st.button("**Complete Setup βœ“**", use_container_width=True, type="primary", key="complete_button"): + # Save the configuration + st.success("βœ… Setup completed successfully!") + return True + + return False + +def render_tab_style() -> None: + """Render enhanced tab styling.""" + st.markdown(""" + + """, unsafe_allow_html=True) + +def render_success_message(): + """Render the success message with glassmorphic design.""" + st.markdown(""" +
+

βœ… API keys saved successfully!

+

+ Please restart the application for the changes to take effect. +

+
+ """, unsafe_allow_html=True) diff --git a/lib/utils/api_key_manager/components/final_setup.py b/lib/utils/api_key_manager/components/final_setup.py new file mode 100644 index 00000000..5f9eb06c --- /dev/null +++ b/lib/utils/api_key_manager/components/final_setup.py @@ -0,0 +1,146 @@ +"""Final setup component for the API key manager.""" + +import streamlit as st +from loguru import logger +import sys +import json +import os +from typing import Dict, Any +from ..manager import APIKeyManager +from ..validation import check_all_api_keys + +# Configure logger to output to both file and stdout +logger.remove() # Remove default handler +logger.add( + "logs/final_setup.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}" +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +def load_main_config() -> Dict[str, Any]: + """Load the main configuration file.""" + config_path = os.path.join("lib", "workspace", "alwrity_config", "main_config.json") + try: + with open(config_path, 'r') as f: + return json.load(f) + except Exception as e: + logger.error(f"Error loading main_config.json: {str(e)}") + return {} + +def render_final_setup(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """Render the final setup step. + + Args: + api_key_manager (APIKeyManager): The API key manager instance + + Returns: + Dict[str, Any]: Current state + """ + logger.info("[render_final_setup] Rendering final setup component") + + st.markdown("### Step 5: Final Setup") + + # Load main config + main_config = load_main_config() + + # Display configuration summary + st.markdown("#### Configuration Summary") + + # Blog Content Characteristics + st.markdown("##### Blog Content Characteristics") + blog_settings = main_config.get("Blog Content Characteristics", {}) + st.write(f"- Blog Length: {blog_settings.get('Blog Length', '2000')}") + st.write(f"- Blog Tone: {blog_settings.get('Blog Tone', 'Professional')}") + st.write(f"- Blog Demographic: {blog_settings.get('Blog Demographic', 'Professional')}") + st.write(f"- Blog Type: {blog_settings.get('Blog Type', 'Informational')}") + + # LLM Options + st.markdown("##### LLM Options") + llm_settings = main_config.get("LLM Options", {}) + st.write(f"- GPT Provider: {llm_settings.get('GPT Provider', 'google')}") + st.write(f"- Model: {llm_settings.get('Model', 'gemini-1.5-flash-latest')}") + st.write(f"- Temperature: {llm_settings.get('Temperature', 0.7)}") + st.write(f"- Max Tokens: {llm_settings.get('Max Tokens', 4000)}") + + # Personalization Settings + st.markdown("##### Personalization Settings") + personalization = main_config.get("personalization", {}) + st.write(f"- Writing Tone: {personalization.get('writing_tone', 'Professional')}") + st.write(f"- Target Audience: {personalization.get('target_audience', 'General')}") + st.write(f"- Content Type: {personalization.get('content_type', 'Blog Posts')}") + + # Navigation buttons + col1, col2 = st.columns(2) + + with col1: + if st.button("← Back to Personalization"): + logger.info("[render_final_setup] User clicked back to personalization") + st.session_state.current_step = 4 + st.session_state.next_step = "personalization_setup" + st.rerun() + + with col2: + if st.button("Complete Setup β†’"): + logger.info("[render_final_setup] User clicked complete setup") + try: + # Verify all required API keys are present and valid + is_valid, missing_keys, impact_messages = check_all_api_keys(api_key_manager) + + if not is_valid: + st.error("⚠️ Some required API keys are missing") + st.markdown("### Missing API Keys and Impact") + + # Display impact messages in a structured way + for message in impact_messages: + if message.startswith("⚠️"): + st.error(message) + else: + st.warning(message) + + st.markdown(""" +
+

Required Keys:

+
    +
  • At least one AI provider (OpenAI, Google Gemini, Anthropic Claude, or Mistral)
  • +
  • At least one research provider (SerpAPI, Tavily, Metaphor, or Firecrawl)
  • +
+

Please configure the required keys before proceeding.

+
+ """, unsafe_allow_html=True) + return {"current_step": 6, "changes_made": True} + + # Save final configuration + if not os.path.exists("lib/workspace/alwrity_config"): + os.makedirs("lib/workspace/alwrity_config") + + config_path = os.path.join("lib", "workspace", "alwrity_config", "main_config.json") + with open(config_path, 'w') as f: + json.dump(main_config, f, indent=4) + + # Show success message with HTML formatting + st.markdown(""" +
+

βœ… Setup Completed Successfully!

+

Your configuration has been saved and you're ready to use ALwrity.

+
+ """, unsafe_allow_html=True) + + # Set setup completion flag in session state + st.session_state['setup_completed'] = True + + # Redirect to main application + st.switch_page("alwrity.py") + + except Exception as e: + error_msg = f"Error completing setup: {str(e)}" + logger.error(f"[render_final_setup] {error_msg}") + st.error(error_msg) + + return {"current_step": 5, "changes_made": True} diff --git a/lib/utils/api_key_manager/components/health_monitor.py b/lib/utils/api_key_manager/components/health_monitor.py new file mode 100644 index 00000000..bb4e4475 --- /dev/null +++ b/lib/utils/api_key_manager/components/health_monitor.py @@ -0,0 +1,39 @@ +"""Health monitoring component for the API key manager.""" + +import streamlit as st +from loguru import logger +from ..health_monitor import APIKeyHealthMonitor +from ..key_rotation import KeyRotationManager +from ..wizard_state import get_api_keys + +def render_health_monitoring(): + """Render the API key health monitoring dashboard.""" + st.header("API Key Health & Rotation") + + # Initialize managers + health_monitor = APIKeyHealthMonitor() + rotation_manager = KeyRotationManager() + + # Create tabs for different views + health_tab, rotation_tab = st.tabs(["Health Monitor", "Key Rotation"]) + + with health_tab: + health_monitor.get_health_dashboard() + + with rotation_tab: + rotation_manager.display_rotation_dashboard() + + # Manual rotation controls + st.subheader("Manual Controls") + key_type = st.selectbox( + "Select Key Type", + options=[k.split('_')[0] for k in get_api_keys()] + ) + + if key_type: + if st.button("Force Rotation"): + new_key = rotation_manager.rotate_if_needed(key_type) + if new_key: + st.success(f"Rotated to new key: {new_key}") + else: + st.warning("No suitable key available for rotation") diff --git a/lib/utils/api_key_manager/components/personalization.py b/lib/utils/api_key_manager/components/personalization.py new file mode 100644 index 00000000..7d97dba9 --- /dev/null +++ b/lib/utils/api_key_manager/components/personalization.py @@ -0,0 +1,188 @@ +"""Personalization setup component.""" + +import streamlit as st +from typing import Dict, Any +from loguru import logger +from ..manager import APIKeyManager +from .base import render_navigation_buttons, render_step_indicator + +def render_personalization(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """Render the personalization setup step.""" + try: + st.markdown(""" +
+

🎨 Personalization Settings

+

Customize your content generation experience

+
+ """, unsafe_allow_html=True) + + # Create tabs for different sections + tabs = st.tabs(["Content Style", "Brand Voice", "Advanced Settings"]) + + changes_made = False + has_valid_settings = False + validation_message = "" + + with tabs[0]: + st.markdown("### Content Style") + st.markdown("Define your preferred content style and tone") + + # Content Style Card + with st.container(): + st.markdown(""" +
+
+
✨
+
Writing Style
+
+
+

Choose how you want your content to be written.

+
+
+ """, unsafe_allow_html=True) + + # Style Settings + writing_style = st.selectbox( + "Writing Style", + ["Professional", "Casual", "Technical", "Conversational", "Academic"], + help="Select your preferred writing style" + ) + + tone = st.select_slider( + "Content Tone", + options=["Formal", "Semi-Formal", "Neutral", "Friendly", "Humorous"], + value="Neutral", + help="Choose the tone for your content" + ) + + content_length = st.select_slider( + "Content Length", + options=["Concise", "Standard", "Detailed", "Comprehensive"], + value="Standard", + help="Select your preferred content length" + ) + + with tabs[1]: + st.markdown("### Brand Voice") + st.markdown("Configure your brand's unique voice and personality") + + # Brand Voice Card + with st.container(): + st.markdown(""" +
+
+
🎯
+
Brand Identity
+
+
+

Define your brand's personality and voice.

+
+
+ """, unsafe_allow_html=True) + + # Brand Settings + brand_personality = st.multiselect( + "Brand Personality Traits", + ["Professional", "Innovative", "Friendly", "Trustworthy", "Creative", "Expert"], + default=["Professional", "Trustworthy"], + help="Select traits that best describe your brand" + ) + + brand_voice = st.text_area( + "Brand Voice Description", + help="Describe how your brand should sound in content" + ) + + keywords = st.text_input( + "Brand Keywords", + help="Enter key terms that should be used in your content" + ) + + with tabs[2]: + st.markdown("### Advanced Settings") + st.markdown("Fine-tune your content generation preferences") + + # Advanced Settings Card + with st.container(): + st.markdown(""" +
+
+
βš™οΈ
+
Advanced Options
+
+
+

Configure advanced content generation settings.

+
+
+ """, unsafe_allow_html=True) + + # Advanced Settings + seo_optimization = st.toggle( + "Enable SEO Optimization", + help="Automatically optimize content for search engines" + ) + + readability_level = st.select_slider( + "Readability Level", + options=["Simple", "Standard", "Advanced", "Expert"], + value="Standard", + help="Choose the complexity level of your content" + ) + + content_structure = st.multiselect( + "Content Structure", + ["Introduction", "Key Points", "Examples", "Conclusion", "Call-to-Action"], + default=["Introduction", "Key Points", "Conclusion"], + help="Select required content sections" + ) + + # Validate settings + if all([writing_style, tone, content_length, brand_personality]): + changes_made = True + has_valid_settings = True + validation_message = "βœ… Personalization settings completed successfully" + else: + validation_message = "⚠️ Please complete all required settings to continue" + + # Display validation message + if validation_message: + if "βœ…" in validation_message: + st.success(validation_message) + else: + st.warning(validation_message) + + # Navigation buttons + if render_navigation_buttons(4, 6, changes_made): + if has_valid_settings: + # Store personalization settings in session state + st.session_state['personalization'] = { + 'content_style': { + 'writing_style': writing_style, + 'tone': tone, + 'content_length': content_length + }, + 'brand_voice': { + 'personality': brand_personality, + 'voice_description': brand_voice, + 'keywords': keywords + }, + 'advanced_settings': { + 'seo_optimization': seo_optimization, + 'readability_level': readability_level, + 'content_structure': content_structure + } + } + + # Update progress and move to next step + st.session_state['current_step'] = 5 + st.rerun() + else: + st.error("Please complete all required settings to continue") + + return {"current_step": 4, "changes_made": changes_made} + + except Exception as e: + error_msg = f"Error in personalization setup: {str(e)}" + logger.error(f"[render_personalization] {error_msg}") + st.error(error_msg) + return {"current_step": 4, "error": error_msg} \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/personalization_setup.py b/lib/utils/api_key_manager/components/personalization_setup.py new file mode 100644 index 00000000..f4f773c4 --- /dev/null +++ b/lib/utils/api_key_manager/components/personalization_setup.py @@ -0,0 +1,702 @@ +"""Personalization setup component for the API key manager.""" + +import streamlit as st +from loguru import logger +import sys +import json +from typing import Dict, Any +from ..manager import APIKeyManager +from ....web_crawlers.async_web_crawler import AsyncWebCrawlerService +from ....personalization.style_analyzer import StyleAnalyzer +from pages.style_utils import ( + get_analysis_section, + get_glass_container, + get_info_section, + get_example_box +) +from .base import render_navigation_buttons +from .alwrity_integrations import render_alwrity_integrations +import asyncio +import os +from pathlib import Path +import yaml + +# Configure logger to output to both file and stdout +logger.remove() # Remove default handler +logger.add( + "logs/personalization_setup.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}" +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +def load_main_config() -> Dict[str, Any]: + """Load the main configuration file.""" + config_path = os.path.join("lib", "workspace", "alwrity_config", "main_config.json") + try: + with open(config_path, 'r') as f: + return json.load(f) + except Exception as e: + logger.error(f"Error loading main_config.json: {str(e)}") + return {} + +def save_main_config(config: Dict[str, Any]) -> bool: + """Save the main configuration file.""" + try: + config_path = os.path.join("lib", "workspace", "alwrity_config", "main_config.json") + os.makedirs(os.path.dirname(config_path), exist_ok=True) + with open(config_path, 'w') as f: + json.dump(config, f, indent=4) + return True + except Exception as e: + logger.error(f"Error saving main_config.json: {str(e)}") + return False + +def display_style_analysis(analysis_results: dict): + """Display the style analysis results in a structured format.""" + try: + # Writing Style Section + writing_style = analysis_results.get("writing_style", {}) + writing_style_content = f""" +
    +
  • Tone: {writing_style.get("tone", "N/A")}
  • +
  • Voice: {writing_style.get("voice", "N/A")}
  • +
  • Complexity: {writing_style.get("complexity", "N/A")}
  • +
  • Formality: {writing_style.get("formality", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Writing Style", writing_style_content), unsafe_allow_html=True) + + # Target Audience Section + target_audience = analysis_results.get("target_audience", {}) + target_audience_content = f""" +
    +
  • Demographics: {', '.join(target_audience.get("demographics", ["N/A"]))}
  • +
  • Expertise Level: {target_audience.get("expertise_level", "N/A")}
  • +
  • Industry Focus: {target_audience.get("industry_focus", "N/A")}
  • +
  • Geographic Focus: {target_audience.get("geographic_focus", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Target Audience", target_audience_content), unsafe_allow_html=True) + + # Content Type Section + content_type = analysis_results.get("content_type", {}) + content_type_content = f""" +
    +
  • Primary Type: {content_type.get("primary_type", "N/A")}
  • +
  • Secondary Types: {', '.join(content_type.get("secondary_types", ["N/A"]))}
  • +
  • Purpose: {content_type.get("purpose", "N/A")}
  • +
  • Call to Action: {content_type.get("call_to_action", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Content Type", content_type_content), unsafe_allow_html=True) + + # Recommended Settings Section + recommended = analysis_results.get("recommended_settings", {}) + recommended_content = f""" +
    +
  • Writing Tone: {recommended.get("writing_tone", "N/A")}
  • +
  • Target Audience: {recommended.get("target_audience", "N/A")}
  • +
  • Content Type: {recommended.get("content_type", "N/A")}
  • +
  • Creativity Level: {recommended.get("creativity_level", "N/A")}
  • +
  • Geographic Location: {recommended.get("geographic_location", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Recommended Settings", recommended_content), unsafe_allow_html=True) + + except Exception as e: + logger.error(f"Error displaying style analysis: {str(e)}") + st.error(f"Error displaying analysis results: {str(e)}") + +def render_personalization_setup(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """Render the personalization setup step.""" + logger.info("[render_personalization_setup] Rendering personalization setup component") + + st.markdown(""" +
+

✨ Personalization Setup

+

Configure your content generation preferences and writing style

+
+ """, unsafe_allow_html=True) + + # Load main config + main_config = load_main_config() + + # Create tabs for different personalization methods + tab1, tab2 = st.tabs([ + "Manual Settings", + "ALwrity Personalization" + ]) + + with tab1: + st.markdown("### Manual Settings Configuration") + + # Add container for better width control + st.markdown(""" +
+ """, unsafe_allow_html=True) + + # Create two columns for settings and explanations (1:2 ratio) + settings_col, info_col = st.columns([1, 2]) + + with settings_col: + st.markdown(""" +
+ """, unsafe_allow_html=True) + + # Blog Content Characteristics + st.markdown("#### Blog Content Characteristics") + blog_settings = main_config.get("Blog Content Characteristics", {}) + + blog_length = st.text_input( + "Blog Length", + value=blog_settings.get("Blog Length", "2000"), + placeholder="e.g., 2000", + help="Target word count for your blog posts" + ) + + blog_tone = st.selectbox( + "Blog Tone", + options=["Professional", "Casual", "Technical", "Conversational"], + index=["Professional", "Casual", "Technical", "Conversational"].index(blog_settings.get("Blog Tone", "Professional")), + help="The overall tone of your content" + ) + + blog_demographic = st.selectbox( + "Target Demographic", + options=["Professional", "General", "Technical", "Academic"], + index=["Professional", "General", "Technical", "Academic"].index(blog_settings.get("Blog Demographic", "Professional")), + help="Your primary audience demographic" + ) + + blog_type = st.selectbox( + "Content Type", + options=["Informational", "Educational", "Entertainment", "Technical"], + index=["Informational", "Educational", "Entertainment", "Technical"].index(blog_settings.get("Blog Type", "Informational")), + help="The primary type of content you create" + ) + + blog_language = st.selectbox( + "Content Language", + options=["English", "Spanish", "French", "German", "Other"], + index=["English", "Spanish", "French", "German", "Other"].index(blog_settings.get("Blog Language", "English")), + help="Primary language for your content" + ) + + blog_format = st.selectbox( + "Output Format", + options=["markdown", "html", "plain text"], + index=["markdown", "html", "plain text"].index(blog_settings.get("Blog Output Format", "markdown")), + help="Format of the generated content" + ) + + # Blog Images Details + st.markdown("#### Blog Images") + image_settings = main_config.get("Blog Images Details", {}) + + image_model = st.selectbox( + "Image Generation Model", + options=["stable-diffusion", "dall-e", "midjourney"], + index=["stable-diffusion", "dall-e", "midjourney"].index(image_settings.get("Image Generation Model", "stable-diffusion")), + help="AI model for generating images" + ) + + num_images = st.number_input( + "Number of Images", + min_value=1, + max_value=5, + value=image_settings.get("Number of Blog Images", 1), + help="Number of images to generate per blog post" + ) + + # LLM Options + st.markdown("#### AI Generation Settings") + llm_settings = main_config.get("LLM Options", {}) + + gpt_provider = st.selectbox( + "AI Provider", + options=["google", "openai", "anthropic"], + index=["google", "openai", "anthropic"].index(llm_settings.get("GPT Provider", "google")), + help="Choose your preferred AI provider" + ) + + model = st.text_input( + "Model", + value=llm_settings.get("Model", "gemini-1.5-flash-latest"), + placeholder="e.g., gemini-1.5-flash-latest", + help="The specific AI model to use" + ) + + temperature = st.slider( + "Creativity Level", + min_value=0.0, + max_value=1.0, + value=float(llm_settings.get("Temperature", 0.7)), + help="Higher values = more creative, lower values = more focused" + ) + + top_p = st.slider( + "Output Diversity", + min_value=0.0, + max_value=1.0, + value=float(llm_settings.get("Top-p", 0.9)), + help="Controls diversity of generated content" + ) + + max_tokens = st.number_input( + "Maximum Length", + min_value=100, + max_value=8000, + value=int(llm_settings.get("Max Tokens", 4000)), + help="Maximum length of generated content" + ) + + frequency_penalty = st.slider( + "Frequency Penalty", + min_value=-2.0, + max_value=2.0, + value=float(llm_settings.get("Frequency Penalty", 1.0)), + help="Reduces repetition of the same words" + ) + + presence_penalty = st.slider( + "Presence Penalty", + min_value=-2.0, + max_value=2.0, + value=float(llm_settings.get("Presence Penalty", 1.0)), + help="Encourages discussion of new topics" + ) + + # Search Engine Parameters + st.markdown("#### Search Settings") + search_settings = main_config.get("Search Engine Parameters", {}) + + geo_location = st.text_input( + "Geographic Location", + value=search_settings.get("Geographic Location", "us"), + placeholder="e.g., us, uk, ca", + help="Target geographic location for search results" + ) + + search_language = st.selectbox( + "Search Language", + options=["en", "es", "fr", "de", "other"], + index=["en", "es", "fr", "de", "other"].index(search_settings.get("Search Language", "en")), + help="Language for search results" + ) + + num_results = st.number_input( + "Number of Results", + min_value=1, + max_value=50, + value=search_settings.get("Number of Results", 10), + help="Number of search results to analyze" + ) + + time_range = st.selectbox( + "Time Range", + options=["anytime", "day", "week", "month", "year"], + index=["anytime", "day", "week", "month", "year"].index(search_settings.get("Time Range", "anytime")), + help="Time range for search results" + ) + + st.markdown("
", unsafe_allow_html=True) + + with info_col: + st.markdown(""" +
+ """, unsafe_allow_html=True) + + st.markdown(""" +
+ ### Understanding Your Settings + + #### Blog Content Settings + + **Blog Length** + - Determines the target word count for your posts + - Affects content depth and detail level + - Impacts reader engagement and SEO performance + - Recommended: 1500-2500 words for comprehensive coverage + + **Blog Tone** + - Professional: Formal, business-oriented, authoritative + - Casual: Friendly, conversational, approachable + - Technical: Detailed, precise, industry-specific + - Conversational: Engaging, relatable, personal + + **Target Demographic** + - Professional: Business audience, decision-makers + - General: Broad readership, general public + - Technical: Specialized audience, industry experts + - Academic: Research-focused, scholarly readers + + **Content Type** + - Informational: Facts, insights, and analysis + - Educational: Teaching, tutorials, how-to guides + - Entertainment: Engaging, fun, light content + - Technical: Detailed analysis, specifications + + **Content Language** + - Select your primary content language + - Affects grammar, idioms, and cultural context + - Impacts SEO and audience reach + + **Output Format** + - Markdown: Best for most platforms + - HTML: For web publishing + - Plain Text: For simple content + + #### Image Generation Settings + + **Image Generation Model** + - Stable Diffusion: Best for general content + - DALL-E: Great for creative concepts + - Midjourney: Excellent for artistic content + + **Number of Images** + - Consider your content type and platform + - More images = better engagement but higher cost + - Recommended: 1-2 images per post + + #### AI Generation Settings + + **AI Provider** + - Google: Balanced, reliable, cost-effective + - OpenAI: Creative, nuanced, versatile + - Anthropic: Precise, ethical, focused + + **Model Selection** + - Latest models offer best performance + - Specialized models for specific needs + - Consider cost vs. quality trade-offs + + **Creativity Level (Temperature)** + - 0.0: Focused, consistent, predictable + - 0.5: Balanced creativity and coherence + - 1.0: Maximum creativity, more varied + + **Output Diversity (Top-p)** + - Controls variety in word choices + - Higher values = more diverse vocabulary + - Lower values = more focused terminology + + **Maximum Length** + - Affects content completeness + - Consider platform limits + - Balance detail vs. readability + + **Frequency & Presence Penalties** + - Reduce repetition of words + - Encourage topic diversity + - Fine-tune content variety + + #### Search Settings + + **Geographic Location** + - Target specific regions + - Affects local SEO + - Influences content relevance + + **Search Language** + - Match your content language + - Affects result relevance + - Impacts SEO performance + + **Number of Results** + - More results = better analysis + - Consider processing time + - Balance quality vs. speed + + **Time Range** + - Anytime: All available content + - Recent: Latest information + - Historical: Past content + + ### Best Practices + + 1. **Start Conservative** + - Begin with moderate settings + - Adjust based on results + - Monitor performance + + 2. **Consider Your Audience** + - Match tone to reader expectations + - Adjust complexity appropriately + - Focus on value delivery + + 3. **Optimize for Platform** + - Consider platform limitations + - Match format requirements + - Optimize for engagement + + 4. **Regular Review** + - Monitor content performance + - Adjust settings as needed + - Stay updated with trends +
+ """, unsafe_allow_html=True) + + st.markdown("
", unsafe_allow_html=True) + + # Close the container + st.markdown("
", unsafe_allow_html=True) + + # Add some spacing before the save button + st.markdown("
", unsafe_allow_html=True) + + if st.button("Save Manual Settings", type="primary", use_container_width=True): + # Update main config with new values + main_config["Blog Content Characteristics"] = { + "Blog Length": blog_length, + "Blog Tone": blog_tone, + "Blog Demographic": blog_demographic, + "Blog Type": blog_type, + "Blog Language": blog_language, + "Blog Output Format": blog_format + } + + main_config["Blog Images Details"] = { + "Image Generation Model": image_model, + "Number of Blog Images": num_images + } + + main_config["LLM Options"] = { + "GPT Provider": gpt_provider, + "Model": model, + "Temperature": temperature, + "Top-p": top_p, + "Max Tokens": max_tokens, + "Frequency Penalty": frequency_penalty, + "Presence Penalty": presence_penalty + } + + main_config["Search Engine Parameters"] = { + "Geographic Location": geo_location, + "Search Language": search_language, + "Number of Results": num_results, + "Time Range": time_range + } + + if save_main_config(main_config): + st.success("βœ… Your personalization settings have been saved successfully!") + else: + st.error("Unable to save settings. Please try again.") + + with tab2: + st.markdown("#### ALwrity Personalization") + + # Create two columns for the layout + col1, col2 = st.columns([2, 1]) + + with col1: + # Website URL input + st.markdown("### Website URL") + url = st.text_input( + "Enter your website URL", + placeholder="https://example.com", + help="Provide your website URL to analyze your content style. Leave empty if you want to provide written samples instead." + ) + logger.debug(f"Website URL input value: {url}") + + # Alternative: Written samples + if not url: + st.markdown("### Written Samples") + st.markdown(""" +
+

No website URL? No problem! You can provide written samples of your content instead.

+

Share your best articles, blog posts, or any content that represents your writing style.

+
+ """, unsafe_allow_html=True) + samples = st.text_area( + "Paste your content samples here", + help="Paste 2-3 samples of your best content. This helps ALwrity understand your writing style." + ) + logger.debug(f"Sample text length: {len(samples) if samples else 0}") + + # ALwrity Style button + st.markdown("
", unsafe_allow_html=True) + if st.button("🎨 ALwrity Style", use_container_width=True): + if url: + with st.status("Starting style analysis...", expanded=True) as status: + try: + logger.info(f"Starting style analysis for URL: {url}") + + # Step 1: Initialize crawler + status.update(label="Step 1/4: Initializing web crawler...", state="running") + crawler_service = AsyncWebCrawlerService() + + # Step 2: Crawl website + status.update(label="Step 2/4: Crawling website content...", state="running") + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + result = loop.run_until_complete(crawler_service.crawl_website(url)) + loop.close() + + if result.get('success', False): + content = result.get('content', {}) + + # Step 3: Initialize style analyzer + status.update(label="Step 3/4: Analyzing content style...", state="running") + style_analyzer = StyleAnalyzer() + + # Step 4: Perform style analysis + status.update(label="Step 4/4: Generating style recommendations...", state="running") + style_analysis = style_analyzer.analyze_content_style(content) + + if style_analysis.get('error'): + status.update(label="Analysis failed", state="error") + st.error(f"Style analysis failed: {style_analysis['error']}") + else: + status.update(label="Analysis complete!", state="complete") + # Display style analysis results + display_style_analysis(style_analysis) + + # Display original content in tabs + tab1, tab2, tab3 = st.tabs(["Content", "Metadata", "Links"]) + + with tab1: + st.markdown("### Main Content") + st.markdown(content.get('main_content', 'No content found')) + + with tab2: + st.markdown("### Metadata") + st.markdown(f""" + **Title:** {content.get('title', 'No title found')} + + **Description:** {content.get('description', 'No description found')} + + **Meta Tags:** + {content.get('meta_tags', {})} + """) + + with tab3: + st.markdown("### Links") + for link in content.get('links', []): + st.markdown(f"- [{link.get('text', '')}]({link.get('href', '')})") + + else: + status.update(label="Crawling failed", state="error") + st.error(f"Failed to analyze website: {result.get('error', 'Unknown error')}") + + except Exception as e: + logger.error(f"Error during style analysis: {str(e)}") + st.error(f"Analysis failed: {str(e)}") + elif samples: + with st.spinner("Analyzing content samples..."): + try: + # Initialize style analyzer + style_analyzer = StyleAnalyzer() + + # Analyze content samples + style_analysis = style_analyzer.analyze_content_style({"main_content": samples}) + + if style_analysis.get('error'): + st.error(f"Style analysis failed: {style_analysis['error']}") + else: + # Display style analysis results + display_style_analysis(style_analysis) + + except Exception as e: + logger.error(f"Error analyzing samples: {str(e)}") + st.error(f"Analysis failed: {str(e)}") + else: + st.warning("Please provide either a website URL or content samples") + + with col2: + st.markdown(""" + ### How ALwrity Discovers Your Style + + **AI-Powered Style Analysis** + + ALwrity AI analyzes your existing content to understand your unique writing style and preferences. This helps us generate content that matches your voice perfectly. + + **Step 1: Content Analysis** + + We'll analyze your website content or written samples to understand: + + - Writing tone and voice + - Vocabulary and language style + - Content structure and formatting + - Target audience and engagement style + + **Step 2: Style Recommendations** + + Based on the analysis, we'll provide: + + - Personalized writing guidelines + - Content structure templates + - Tone and voice recommendations + - Audience engagement strategies + + **Step 3: Content Generation** + + Finally, we'll use these insights to: + + - Generate content that matches your style + - Maintain consistency across all content + - Optimize for your target audience + - Ensure brand voice alignment + """) + + # API Configuration Form + st.markdown("### API Configuration") + with st.form("ai_config_form"): + # API Keys + st.text_input("OpenAI API Key", type="password", key="openai_key") + st.text_input("Google API Key", type="password", key="google_key") + st.text_input("SerpAPI Key", type="password", key="serpapi_key") + + # Model Selection + st.selectbox("Select Model", ["gpt-3.5-turbo", "gpt-4"], key="model") + + # Temperature + st.slider("Temperature", 0.0, 2.0, 0.7, 0.1, key="temperature") + + # Max Tokens + st.number_input("Max Tokens", 100, 4000, 2000, 100, key="max_tokens") + + # Submit button + submitted = st.form_submit_button("Save Configuration") + + if submitted: + # Create config directory if it doesn't exist + config_dir = Path("config") + config_dir.mkdir(exist_ok=True) + + # Save configuration + config = { + "openai_key": st.session_state.openai_key, + "google_key": st.session_state.google_key, + "serpapi_key": st.session_state.serpapi_key, + "model": st.session_state.model, + "temperature": st.session_state.temperature, + "max_tokens": st.session_state.max_tokens + } + + config_file = config_dir / "test_config.json" + with open(config_file, "w") as f: + json.dump(config, f, indent=4) + + st.success("Configuration saved successfully!") + + # Navigation buttons with correct arguments + if render_navigation_buttons(4, 5, changes_made=True): + st.session_state.current_step = 5 + st.rerun() + + return {"current_step": 4, "changes_made": True} \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/website_setup.py b/lib/utils/api_key_manager/components/website_setup.py new file mode 100644 index 00000000..6ae840ca --- /dev/null +++ b/lib/utils/api_key_manager/components/website_setup.py @@ -0,0 +1,266 @@ +"""Website setup component for the API key manager.""" + +import streamlit as st +from loguru import logger +from ...website_analyzer import analyze_website +from ...website_analyzer.seo_analyzer import analyze_seo +import asyncio +import sys +from typing import Dict, Any +from ..manager import APIKeyManager +from .base import render_navigation_buttons + +# Configure logger to output to both file and stdout +logger.remove() # Remove default handler +logger.add( + "logs/website_setup.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}" +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +def render_website_setup(api_key_manager: APIKeyManager) -> Dict[str, Any]: + """Render the website setup step. + + Args: + api_key_manager (APIKeyManager): The API key manager instance + + Returns: + Dict[str, Any]: Current state + """ + logger.info("[render_website_setup] Rendering website setup component") + + st.markdown("### Step 2: Website Setup") + + # Create two columns for input and results + col1, col2 = st.columns([1, 1]) + + with col1: + st.markdown("#### Enter Website URL") + url = st.text_input("Website URL", placeholder="https://example.com") + logger.debug(f"[render_website_setup] URL input value: {url}") + + analyze_type = st.radio( + "Analysis Type", + ["Basic Analysis", "Full Analysis with SEO"], + help="Choose between basic website analysis or comprehensive SEO analysis" + ) + + if st.button("Analyze Website"): + if url: + with st.spinner("Analyzing website..."): + try: + logger.info(f"[render_website_setup] Starting website analysis for URL: {url}") + + # Call the analyze_website function + results = analyze_website(url) + + # If full analysis is selected, add SEO analysis + if analyze_type == "Full Analysis with SEO": + seo_results = analyze_seo(url) + if seo_results.success: + results['data']['seo_analysis'] = { + 'overall_score': seo_results.overall_score, + 'meta_tags': { + 'title': seo_results.meta_tags.title, + 'description': seo_results.meta_tags.description, + 'keywords': seo_results.meta_tags.keywords, + 'has_robots': seo_results.meta_tags.has_robots, + 'has_sitemap': seo_results.meta_tags.has_sitemap + }, + 'content': { + 'word_count': seo_results.content.word_count, + 'readability_score': seo_results.content.readability_score, + 'content_quality_score': seo_results.content.content_quality_score, + 'headings_structure': seo_results.content.headings_structure, + 'keyword_density': seo_results.content.keyword_density + }, + 'recommendations': [ + { + 'priority': rec.priority, + 'category': rec.category, + 'issue': rec.issue, + 'recommendation': rec.recommendation, + 'impact': rec.impact + } + for rec in seo_results.recommendations + ] + } + + logger.debug(f"[render_website_setup] Analysis results received: {results.get('success', False)}") + + # Store results in session state + st.session_state.website_analysis = results + logger.info("[render_website_setup] Results stored in session state") + + if not results.get('success', False): + error_msg = results.get('error', 'Analysis failed') + logger.error(f"[render_website_setup] Analysis failed: {error_msg}") + st.error(error_msg) + else: + logger.info("[render_website_setup] Analysis completed successfully") + st.success("βœ… Website analysis completed successfully!") + except Exception as e: + error_msg = f"Analysis failed: {str(e)}" + logger.error(f"[render_website_setup] {error_msg}") + st.error(error_msg) + else: + logger.warning("[render_website_setup] No URL provided") + st.warning("Please enter a valid URL") + + with col2: + st.markdown("#### Analysis Results") + + # Check if we have analysis results + if 'website_analysis' in st.session_state: + results = st.session_state.website_analysis + + if results.get('success', False): + data = results.get('data', {}) + analysis = data.get('analysis', {}) + + # Create tabs for different sections + if analyze_type == "Full Analysis with SEO": + tab1, tab2, tab3, tab4, tab5 = st.tabs([ + "Basic Metrics", + "Content Analysis", + "SEO Analysis", + "Technical SEO", + "Strategy" + ]) + else: + tab1, tab2, tab3, tab4 = st.tabs([ + "Basic Metrics", + "Content Analysis", + "Technical Info", + "Strategy" + ]) + + with tab1: + st.markdown("##### Basic Metrics") + basic_info = analysis.get('basic_info', {}) + st.write(f"Status Code: {basic_info.get('status_code')}") + st.write(f"Content Type: {basic_info.get('content_type')}") + st.write(f"Title: {basic_info.get('title')}") + st.write(f"Meta Description: {basic_info.get('meta_description')}") + + # SSL Info + ssl_info = analysis.get('ssl_info', {}) + if ssl_info.get('has_ssl'): + st.success("SSL Certificate is valid") + st.write(f"Expiry: {ssl_info.get('expiry')}") + else: + st.error("No valid SSL certificate found") + + with tab2: + st.markdown("##### Content Analysis") + content_info = analysis.get('content_info', {}) + + # Content Overview + st.markdown("###### πŸ“Š Content Overview") + col1, col2, col3, col4 = st.columns(4) + with col1: + st.metric("Word Count", content_info.get('word_count', 0)) + with col2: + st.metric("Headings", content_info.get('heading_count', 0)) + with col3: + st.metric("Images", content_info.get('image_count', 0)) + with col4: + st.metric("Links", content_info.get('link_count', 0)) + + if analyze_type == "Full Analysis with SEO": + with tab3: + st.markdown("##### SEO Analysis") + seo_data = data.get('seo_analysis', {}) + + # Display SEO Score + seo_score = seo_data.get('overall_score', 0) + st.markdown(f"### SEO Score: {seo_score}/100") + st.progress(seo_score / 100) + + # Meta Tags Analysis + st.markdown("#### Meta Tags Analysis") + meta_analysis = seo_data.get('meta_tags', {}) + for key, value in meta_analysis.items(): + if isinstance(value, bool): + st.write(f"{'βœ…' if value else '❌'} {key.replace('_', ' ').title()}") + elif isinstance(value, dict): + st.write(f"**{key.replace('_', ' ').title()}:**") + st.write(f"Status: {value.get('status', 'N/A')}") + st.write(f"Value: {value.get('value', 'N/A')}") + if value.get('recommendation'): + st.write(f"Recommendation: {value['recommendation']}") + else: + st.write(f"**{key.replace('_', ' ').title()}:** {value}") + + # Content Analysis + st.markdown("#### AI Content Analysis") + content_analysis = seo_data.get('content', {}) + st.write(f"**Word Count:** {content_analysis.get('word_count', 0)}") + st.write(f"**Readability Score:** {content_analysis.get('readability_score', 0)}/100") + st.write(f"**Content Quality Score:** {content_analysis.get('content_quality_score', 0)}/100") + + # Recommendations + st.markdown("#### SEO Recommendations") + recommendations = seo_data.get('recommendations', []) + for rec in recommendations: + st.write(f"**{rec.get('priority', '').upper()} Priority - {rec.get('category', '')}**") + st.write(f"Issue: {rec.get('issue', '')}") + st.write(f"Recommendation: {rec.get('recommendation', '')}") + st.write(f"Impact: {rec.get('impact', '')}") + st.write("---") + + with tab4: + st.markdown("##### Technical SEO") + technical_seo = seo_data.get('technical_analysis', {}) + + # Mobile Friendliness + st.markdown("#### Mobile Friendliness") + mobile_friendly = technical_seo.get('mobile_friendly', False) + st.write(f"{'βœ…' if mobile_friendly else '❌'} Mobile Friendly") + + # Page Speed + st.markdown("#### Page Speed") + speed_metrics = technical_seo.get('speed_metrics', {}) + for metric, value in speed_metrics.items(): + st.write(f"**{metric.replace('_', ' ').title()}:** {value}") + + # Technical Issues + st.markdown("#### Technical Issues") + issues = technical_seo.get('issues', []) + for issue in issues: + st.write(f"β€’ {issue}") + + with tab4 if analyze_type == "Basic Analysis" else tab5: + st.markdown("##### Strategy Recommendations") + strategy_info = analysis.get('strategy', {}) + + if strategy_info: + for category, recommendations in strategy_info.items(): + st.markdown(f"###### {category.replace('_', ' ').title()}") + for rec in recommendations: + st.write(f"β€’ {rec}") + else: + st.info("No strategy recommendations available") + else: + error_msg = results.get('error', 'Analysis failed') + logger.error(f"[render_website_setup] Displaying error: {error_msg}") + st.error(error_msg) + else: + logger.debug("[render_website_setup] No analysis results in session state") + st.info("Enter a URL and click 'Analyze Website' to see results") + + # Navigation buttons + if render_navigation_buttons(2, 5, True): + # Move to next step (AI Research Setup) + st.session_state.current_step = 3 + st.session_state.next_step = "ai_research_setup" + st.rerun() + + return {"current_step": 2, "changes_made": True} \ No newline at end of file diff --git a/lib/utils/api_key_manager/key_rotation.py b/lib/utils/api_key_manager/key_rotation.py new file mode 100644 index 00000000..e0b9979f --- /dev/null +++ b/lib/utils/api_key_manager/key_rotation.py @@ -0,0 +1,121 @@ +"""API Key Rotation Manager.""" + +from datetime import datetime +from typing import Dict, Optional, List +import streamlit as st +from .health_monitor import APIKeyHealthMonitor +from .wizard_state import get_api_keys, set_api_key + +class KeyRotationManager: + """Manages automatic rotation of API keys based on health metrics.""" + + def __init__(self): + """Initialize the key rotation manager.""" + self.health_monitor = APIKeyHealthMonitor() + if 'active_keys' not in st.session_state: + st.session_state.active_keys = {} + + def get_active_key(self, key_type: str) -> str: + """Get the currently active key for a given type.""" + return st.session_state.active_keys.get(key_type) + + def set_active_key(self, key_type: str, key_name: str) -> None: + """Set the active key for a given type.""" + st.session_state.active_keys[key_type] = key_name + + def rotate_if_needed(self, key_type: str) -> Optional[str]: + """Check and rotate key if needed based on health metrics.""" + current_key = self.get_active_key(key_type) + + # If no current key or current key needs rotation + if not current_key or self.health_monitor.should_rotate_key(current_key): + new_key = self.health_monitor.get_best_available_key(key_type) + + if new_key and new_key != current_key: + # Set cooldown on the old key if it exists + if current_key: + self.health_monitor.set_cooldown(current_key, duration_minutes=30) + + # Update the active key + self.set_active_key(key_type, new_key) + return new_key + + return current_key + + def get_rotation_status(self) -> Dict[str, Dict]: + """Get rotation status for all key types.""" + status = {} + api_keys = get_api_keys() + + for key_name in api_keys: + key_type = key_name.split('_')[0] # e.g., OPENAI from OPENAI_API_KEY + + active_key = self.get_active_key(key_type) + health = self.health_monitor.get_key_health(key_name) + + if key_type not in status: + status[key_type] = { + 'active_key': active_key, + 'available_keys': [], + 'cooldown_keys': [] + } + + if health and health['in_cooldown']: + status[key_type]['cooldown_keys'].append(key_name) + else: + status[key_type]['available_keys'].append(key_name) + + return status + + def display_rotation_dashboard(self) -> None: + """Display the key rotation dashboard.""" + st.subheader("πŸ”„ API Key Rotation Status") + + rotation_status = self.get_rotation_status() + if not rotation_status: + st.info("No API keys configured for rotation.") + return + + for key_type, status in rotation_status.items(): + with st.expander(f"{key_type} Rotation Status"): + # Active Key + st.write("**Active Key:**") + if status['active_key']: + st.success(status['active_key']) + else: + st.warning("No active key") + + # Available Keys + st.write("**Available Keys:**") + if status['available_keys']: + for key in status['available_keys']: + st.write(f"- {key}") + else: + st.warning("No available keys") + + # Cooldown Keys + if status['cooldown_keys']: + st.write("**Keys in Cooldown:**") + for key in status['cooldown_keys']: + health = self.health_monitor.get_key_health(key) + if health and health['cooldown_until']: + time_left = (health['cooldown_until'] - datetime.now()) + minutes_left = int(time_left.total_seconds() / 60) + st.info(f"- {key} (Cooldown: {minutes_left} minutes remaining)") + + def initialize_rotation(self) -> None: + """Initialize key rotation for all API key types.""" + api_keys = get_api_keys() + key_types = set() + + # Get unique key types + for key_name in api_keys: + key_type = key_name.split('_')[0] + key_types.add(key_type) + + # Initialize rotation for each key type + for key_type in key_types: + if not self.get_active_key(key_type): + best_key = self.health_monitor.get_best_available_key(key_type) + if best_key: + self.set_active_key(key_type, best_key) \ No newline at end of file diff --git a/lib/utils/api_key_manager/manager.py b/lib/utils/api_key_manager/manager.py new file mode 100644 index 00000000..213c4d27 --- /dev/null +++ b/lib/utils/api_key_manager/manager.py @@ -0,0 +1,149 @@ +"""API key manager class.""" + +from typing import Dict, Any, Optional +from loguru import logger +import streamlit as st +import os +import json +import sys +from datetime import datetime +from dotenv import load_dotenv + +# Configure logger to output to both file and stdout +logger.remove() # Remove default handler +logger.add("logs/api_key_manager.log", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", + level="DEBUG") +logger.add(sys.stdout, + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}", + level="INFO") + +class APIKeyManager: + """Manager for handling API keys.""" + + def __init__(self): + """Initialize the API key manager.""" + logger.info("[APIKeyManager.__init__] Initializing API key manager") + self.api_keys = {} + self.load_api_keys() + self.api_key_groups = { + "Create": { + "GEMINI_API_KEY": { + "url": "https://makersuite.google.com/app/apikey", + "description": "Google's Gemini AI for content generation", + "setup_steps": [ + "Visit Google AI Studio", + "Create a Google Cloud account", + "Enable Gemini API", + "Generate API key" + ] + }, + "OPENAI_API_KEY": { + "url": "https://platform.openai.com/api-keys", + "description": "OpenAI's GPT models for content creation", + "setup_steps": [ + "Go to OpenAI platform", + "Create an account", + "Navigate to API keys", + "Create new API key" + ] + }, + "MISTRAL_API_KEY": { + "url": "https://console.mistral.ai/api-keys/", + "description": "Mistral AI for efficient content generation", + "setup_steps": [ + "Visit Mistral AI website", + "Sign up for an account", + "Access API section", + "Generate API key" + ] + } + }, + "Research": { + "TAVILY_API_KEY": { + "url": "https://tavily.com/#api", + "description": "Powers intelligent web research features", + "setup_steps": [ + "Go to Tavily's website", + "Create an account", + "Access your API dashboard", + "Generate a new API key" + ] + }, + "SERPER_API_KEY": { + "url": "https://serper.dev/signup", + "description": "Enables Google search functionality", + "setup_steps": [ + "Visit Serper.dev", + "Sign up for an account", + "Go to API section", + "Create your API key" + ] + } + }, + "Deep Search": { + "METAPHOR_API_KEY": { + "url": "https://dashboard.exa.ai/login", + "description": "Enables advanced web search capabilities", + "setup_steps": [ + "Visit the Exa AI dashboard", + "Sign up for a free account", + "Navigate to API Keys section", + "Create a new API key" + ] + }, + "FIRECRAWL_API_KEY": { + "url": "https://www.firecrawl.dev/account", + "description": "Enables web content extraction", + "setup_steps": [ + "Visit Firecrawl website", + "Sign up for an account", + "Access API dashboard", + "Create your API key" + ] + } + }, + "Integrations": { + "STABILITY_API_KEY": { + "url": "https://platform.stability.ai/", + "description": "Enables AI image generation", + "setup_steps": [ + "Access Stability AI platform", + "Create an account", + "Navigate to API settings", + "Generate your API key" + ] + } + } + } + + def load_api_keys(self): + """Load API keys from environment variables.""" + logger.info("[APIKeyManager.load_api_keys] Loading API keys from environment") + try: + # Load from environment variables + self.api_keys = { + "openai": os.getenv("OPENAI_API_KEY", ""), + "google": os.getenv("GOOGLE_API_KEY", ""), + "tavily": os.getenv("TAVILY_API_KEY", ""), + "metaphor": os.getenv("METAPHOR_API_KEY", ""), + "mistral": os.getenv("MISTRAL_API_KEY", "") + } + logger.info("[APIKeyManager.load_api_keys] Successfully loaded API keys") + except Exception as e: + logger.error(f"[APIKeyManager.load_api_keys] Error loading API keys: {str(e)}") + + def save_api_key(self, provider: str, key: str): + """Save an API key.""" + logger.info(f"[APIKeyManager.save_api_key] Saving API key for provider: {provider}") + try: + self.api_keys[provider] = key + # Save to environment variable + os.environ[f"{provider.upper()}_API_KEY"] = key + logger.info(f"[APIKeyManager.save_api_key] Successfully saved API key for {provider}") + except Exception as e: + logger.error(f"[APIKeyManager.save_api_key] Error saving API key: {str(e)}") + + def get_api_key(self, provider: str) -> Optional[str]: + """Get an API key.""" + return self.api_keys.get(provider) \ No newline at end of file diff --git a/lib/utils/api_key_manager/state.py b/lib/utils/api_key_manager/state.py new file mode 100644 index 00000000..6915529d --- /dev/null +++ b/lib/utils/api_key_manager/state.py @@ -0,0 +1,37 @@ +"""State management for the API key manager.""" + +import streamlit as st +from datetime import datetime + +def initialize_wizard_state(): + """Initialize or get the wizard state from session.""" + if 'wizard_state' not in st.session_state: + st.session_state.wizard_state = { + 'current_step': 0, + 'total_steps': 0, + 'completed_steps': set(), + 'api_keys_status': {}, + 'setup_progress': 0 + } + +def update_progress(api_keys_config): + """Update the overall setup progress.""" + total_keys = sum(len(keys) for keys in api_keys_config.values()) + configured_keys = sum(1 for status in st.session_state.wizard_state['api_keys_status'].values() + if status.get('configured', False)) + st.session_state.wizard_state['setup_progress'] = (configured_keys / total_keys) * 100 + +def update_key_status(key): + """Update the status of an API key in the wizard state.""" + st.session_state.wizard_state['api_keys_status'][key] = { + 'configured': True, + 'timestamp': datetime.now().isoformat() + } + +def get_key_status(key): + """Get the current status of an API key.""" + return st.session_state.wizard_state['api_keys_status'].get(key, {}) + +def get_progress(): + """Get the current setup progress.""" + return st.session_state.wizard_state['setup_progress'] \ No newline at end of file diff --git a/lib/utils/api_key_manager/styles.py b/lib/utils/api_key_manager/styles.py new file mode 100644 index 00000000..58ad020f --- /dev/null +++ b/lib/utils/api_key_manager/styles.py @@ -0,0 +1,482 @@ +API_KEY_MANAGER_STYLES = """ + +""" \ No newline at end of file diff --git a/lib/utils/api_key_manager/validation.py b/lib/utils/api_key_manager/validation.py new file mode 100644 index 00000000..a8dd812b --- /dev/null +++ b/lib/utils/api_key_manager/validation.py @@ -0,0 +1,95 @@ +"""API key validation module.""" + +from typing import Dict, Any, List, Tuple +from loguru import logger +import os +from dotenv import load_dotenv +from .manager import APIKeyManager + +def check_all_api_keys(api_key_manager: APIKeyManager) -> bool: + """Check if minimum required API keys are present. + + Args: + api_key_manager (APIKeyManager): The API key manager instance + + Returns: + bool: True if minimum required keys are present (at least one AI provider and one research provider) + """ + try: + # Load environment variables + logger.info("Starting API key validation process...") + + # Get the current working directory and .env file path + current_dir = os.getcwd() + env_path = os.path.join(current_dir, '.env') + logger.info(f"Looking for .env file at: {env_path}") + + # Check if .env file exists + if not os.path.exists(env_path): + logger.error(f".env file not found at {env_path}") + return False + + # Load environment variables + load_dotenv(env_path) + logger.debug("Environment variables loaded") + + # Log all environment variables (without their values) + logger.debug("Available environment variables:") + for key in os.environ.keys(): + if any(provider in key for provider in ['API_KEY', 'SERPAPI', 'TAVILY', 'METAPHOR', 'FIRECRAWL']): + logger.debug(f"Found environment variable: {key}") + + # Step 1: Check for at least one AI provider + logger.info("Checking AI provider API keys...") + ai_providers = [ + 'OPENAI_API_KEY', + 'GEMINI_API_KEY', + 'ANTHROPIC_API_KEY', + 'MISTRAL_API_KEY' + ] + + # Log which AI providers are found + for provider in ai_providers: + value = os.getenv(provider) + if value: + logger.info(f"Found {provider} (length: {len(value)})") + else: + logger.debug(f"Missing {provider}") + + has_ai_provider = any(os.getenv(key) for key in ai_providers) + if not has_ai_provider: + logger.warning("No AI provider API key found") + return False + else: + logger.success("βœ“ At least one AI provider key found") + + # Step 2: Check for at least one research provider + logger.info("Checking research provider API keys...") + research_providers = [ + 'SERPAPI_KEY', + 'TAVILY_API_KEY', + 'METAPHOR_API_KEY', + 'FIRECRAWL_API_KEY' + ] + + # Log which research providers are found + for provider in research_providers: + value = os.getenv(provider) + if value: + logger.info(f"Found {provider} (length: {len(value)})") + else: + logger.debug(f"Missing {provider}") + + has_research_provider = any(os.getenv(key) for key in research_providers) + if not has_research_provider: + logger.warning("No research provider API key found") + return False + else: + logger.success("βœ“ At least one research provider key found") + + logger.success("All required API keys validated successfully!") + return True + + except Exception as e: + logger.error(f"Error checking API keys: {str(e)}", exc_info=True) + return False \ No newline at end of file diff --git a/lib/utils/api_key_manager/wizard_state.py b/lib/utils/api_key_manager/wizard_state.py new file mode 100644 index 00000000..cb8ff282 --- /dev/null +++ b/lib/utils/api_key_manager/wizard_state.py @@ -0,0 +1,92 @@ +"""Wizard state management for the API key manager.""" + +import streamlit as st +from loguru import logger + +def initialize_wizard_state(): + """Initialize or get the wizard state from session.""" + if 'wizard_state' not in st.session_state: + st.session_state.wizard_state = { + 'current_step': 0, + 'total_steps': 0, + 'completed_steps': set(), + 'api_keys_status': {}, + 'setup_progress': 0 + } + logger.info("Initialized wizard state") + +def get_current_step(): + """Get the current step from the wizard state.""" + return st.session_state.wizard_state.get('current_step', 0) + +def next_step(): + """Move to the next step in the wizard.""" + current_step = get_current_step() + st.session_state.wizard_state['current_step'] = current_step + 1 + st.session_state.wizard_state['completed_steps'].add(current_step) + logger.info(f"Moving to next step: {current_step + 1}") + +def previous_step(): + """Move to the previous step in the wizard.""" + current_step = get_current_step() + if current_step > 0: + st.session_state.wizard_state['current_step'] = current_step - 1 + st.session_state.wizard_state['completed_steps'].discard(current_step - 1) + logger.info(f"Moving to previous step: {current_step - 1}") + +def update_progress(): + """Update the overall setup progress.""" + total_steps = st.session_state.wizard_state.get('total_steps', 0) + completed_steps = len(st.session_state.wizard_state.get('completed_steps', set())) + if total_steps > 0: + progress = (completed_steps / total_steps) * 100 + st.session_state.wizard_state['setup_progress'] = progress + logger.info(f"Updated progress: {progress:.1f}%") + +def is_step_completed(step): + """Check if a specific step is completed.""" + return step in st.session_state.wizard_state.get('completed_steps', set()) + +def get_step_status(step): + """Get the status of a specific step.""" + current_step = get_current_step() + if step < current_step: + return "completed" + elif step == current_step: + return "current" + else: + return "pending" + +def can_proceed_to_next_step(): + """Check if the user can proceed to the next step.""" + current_step = get_current_step() + + if current_step == 1: + # Get selected providers + selected_providers = get_selected_providers() + + # If no providers are selected, cannot proceed + if not selected_providers: + return False + + # Check if at least one selected provider has a valid API key + for provider in selected_providers: + validation_status = get_validation_status(provider) + if validation_status and validation_status.get('is_valid', False): + return True + + return False + + elif current_step == 2: + # Website URL is now optional + return True + + elif current_step == 3: + # AI Research setup - both Tavily and Metaphor are optional + return True + + elif current_step == 4: + # Final setup - always allow proceeding + return True + + return False diff --git a/lib/utils/content_generators.py b/lib/utils/content_generators.py index c26ccf6b..1af34e82 100644 --- a/lib/utils/content_generators.py +++ b/lib/utils/content_generators.py @@ -5,7 +5,7 @@ from lib.utils.alwrity_utils import ( ) from lib.ai_writers.ai_story_writer.story_writer import story_input_section from lib.ai_writers.ai_product_description_writer import write_ai_prod_desc -from lib.content_planning_calender.content_planning_agents_alwrity_crew import ai_agents_content_planner +#from lib.content_planning_calender.content_planning_agents_alwrity_crew import ai_agents_content_planner from lib.utils.seo_tools import ai_seo_tools @@ -62,6 +62,7 @@ def content_planning_tools(): ) if st.button("**Ideate Content Calender**"): if plan_keywords: - ai_agents_content_planner(plan_keywords) + #ai_agents_content_planner(plan_keywords) + st.header("COming Soon.") else: st.error("Come on, really, Enter some keywords to plan on..") diff --git a/lib/utils/read_main_config_params.py b/lib/utils/read_main_config_params.py index c283652c..dde24e2f 100644 --- a/lib/utils/read_main_config_params.py +++ b/lib/utils/read_main_config_params.py @@ -3,6 +3,8 @@ import sys import json from pathlib import Path from loguru import logger +import yaml + logger.remove() logger.add(sys.stdout, colorize=True, @@ -30,7 +32,6 @@ def read_return_config_section(config_section): with open(config_path, 'r', encoding="utf-8") as file: config = json.load(file) - if config_section == 'system_prompt': prompt_file_path = os.path.join(os.getcwd(), 'lib', 'workspace', 'alwrity_prompts', 'alwrity_system_instruction.prompts') with open(prompt_file_path, 'r') as file: @@ -81,3 +82,30 @@ def read_return_config_section(config_section): except Exception as err: logger.error(f"An unexpected error occurred: {err}") raise + +def get_personalization_settings(): + """Get personalization settings from ALWRITY_CONFIG.""" + try: + config_path = Path(os.environ["ALWRITY_CONFIG"]) + config = yaml.safe_load(config_path.read_text()) + return config.get('personalization', {}) + except Exception as e: + logger.error(f"Error reading personalization settings: {str(e)}") + return {} + +def save_personalization_settings(settings): + """Save personalization settings to ALWRITY_CONFIG.""" + try: + config_path = Path(os.environ["ALWRITY_CONFIG"]) + config = yaml.safe_load(config_path.read_text()) + + # Update personalization section + config['personalization'] = settings + + # Save back to file + config_path.write_text(yaml.dump(config, default_flow_style=False)) + logger.info("Personalization settings saved successfully") + + except Exception as e: + logger.error(f"Error saving personalization settings: {str(e)}") + raise diff --git a/lib/utils/ui_setup.py b/lib/utils/ui_setup.py index 799dde53..fb54c9fd 100644 --- a/lib/utils/ui_setup.py +++ b/lib/utils/ui_setup.py @@ -1,21 +1,74 @@ import os import streamlit as st -from .file_processor import load_image -from .content_generators import content_planning_tools, ai_writers -from .alwrity_utils import ai_agents_team, ai_social_writer -from .seo_tools import ai_seo_tools +from lib.utils.file_processor import load_image +from lib.utils.content_generators import content_planning_tools, ai_writers +from lib.utils.alwrity_utils import ai_social_writer +from lib.utils.seo_tools import ai_seo_tools def setup_ui(): - """Sets up the Streamlit UI with custom CSS and logo.""" - try: - css_file_path = os.path.join('lib', 'workspace', 'alwrity_ui_styling.css') - with open(css_file_path) as f: - custom_css = f.read() - st.set_page_config(page_title="Alwrity", layout="wide") - st.markdown(f'', unsafe_allow_html=True) - except Exception as err: - st.error(f"Failed in setting up Alwrity Streamlit UI: {err}") + """Set up the UI with custom styling.""" + # Add custom CSS + st.markdown(""" + + """, unsafe_allow_html=True) image_base64 = load_image("lib/workspace/alwrity_logo.png") st.markdown(f""" @@ -37,8 +90,9 @@ def setup_tabs(): ai_writers() with tab3: - ai_agents_team() - + #ai_agents_team() + st.subheader("Agents Teams") + with tab4: ai_seo_tools() diff --git a/lib/utils/website_analyzer/README.md b/lib/utils/website_analyzer/README.md new file mode 100644 index 00000000..5ad4568b --- /dev/null +++ b/lib/utils/website_analyzer/README.md @@ -0,0 +1,181 @@ +# Website Analyzer Module + +A comprehensive website analysis toolkit that provides detailed insights into website performance, SEO metrics, and content quality. This module combines traditional web analysis techniques with AI-powered content evaluation to deliver actionable recommendations. + +## Features + +### 1. Comprehensive Website Analysis +- Basic website information extraction +- SSL/TLS certificate validation +- DNS record analysis +- WHOIS information retrieval +- Content analysis and structure evaluation +- Performance metrics assessment + +### 2. Advanced SEO Analysis +- Meta tag optimization analysis +- Content quality evaluation +- Keyword density analysis +- Readability scoring +- Heading structure analysis +- AI-powered content recommendations + +### 3. Technical Infrastructure +- Asynchronous web crawling +- Multi-threaded analysis +- Robust error handling +- Comprehensive logging +- Type-safe data models + +## Module Structure + +### 1. `analyzer.py` +The main analysis engine that provides comprehensive website analysis. + +#### Key Components: +- `WebsiteAnalyzer` class + - URL validation + - Basic website information extraction + - SSL/TLS certificate checking + - DNS record analysis + - WHOIS information retrieval + - Content analysis + - Performance metrics assessment + +#### Features: +- Concurrent analysis using ThreadPoolExecutor +- Robust error handling and logging +- User-agent simulation for reliable scraping +- Timeout handling for requests +- Comprehensive result formatting + +### 2. `seo_analyzer.py` +Specialized SEO analysis module with AI integration. + +#### Key Components: +- `extract_content()`: Fetches and parses webpage content +- `analyze_meta_tags()`: Evaluates meta tags and SEO elements +- `analyze_content_with_ai()`: AI-powered content analysis +- `analyze_seo()`: Main SEO analysis function + +#### Features: +- Meta tag optimization analysis +- Content quality scoring +- Keyword density analysis +- Readability evaluation +- AI-powered recommendations +- Weighted scoring system + +### 3. `models.py` +Data models for structured analysis results. + +#### Key Components: +- `SEORecommendation`: Individual SEO recommendations +- `MetaTagAnalysis`: Meta tag analysis results +- `ContentAnalysis`: Content analysis metrics +- `SEOAnalysisResult`: Complete analysis results + +#### Features: +- Type-safe data structures +- Clear data organization +- Easy serialization/deserialization +- Comprehensive documentation + +## Usage Examples + +### Basic Website Analysis +```python +from website_analyzer import analyze_website + +# Analyze a website +results = analyze_website("https://example.com") + +# Access analysis results +if results["success"]: + data = results["data"] + print(f"Domain: {data['domain']}") + print(f"SSL Info: {data['analysis']['ssl_info']}") + print(f"Content Info: {data['analysis']['content_info']}") +``` + +### SEO Analysis +```python +from website_analyzer.seo_analyzer import analyze_seo + +# Perform SEO analysis +seo_results = analyze_seo("https://example.com", "your-openai-api-key") + +# Access SEO results +if seo_results.success: + print(f"Overall Score: {seo_results.overall_score}") + print(f"Meta Tags: {seo_results.meta_tags}") + print(f"Content Analysis: {seo_results.content}") + print(f"Recommendations: {seo_results.recommendations}") +``` + +## Dependencies + +- `requests`: HTTP requests +- `beautifulsoup4`: HTML parsing +- `python-whois`: WHOIS information +- `dnspython`: DNS record analysis +- `openai`: AI-powered analysis +- `loguru`: Logging +- `typing`: Type hints +- `dataclasses`: Data models + +## Error Handling + +The module implements comprehensive error handling: +- URL validation +- Request timeouts +- Connection errors +- Parsing errors +- API errors +- DNS resolution errors +- SSL/TLS errors + +All errors are logged and returned in a structured format for easy handling. + +## Logging + +The module uses `loguru` for logging with the following features: +- File rotation (500 MB) +- 10-day retention +- Debug level logging +- Structured log format +- Both file and stdout output + +## Best Practices + +1. **API Key Management** + - Store API keys securely + - Use environment variables + - Implement rate limiting + +2. **Error Handling** + - Always check success status + - Handle errors gracefully + - Log errors appropriately + +3. **Performance** + - Use concurrent analysis + - Implement timeouts + - Cache results when possible + +4. **Rate Limiting** + - Respect website robots.txt + - Implement delays between requests + - Use appropriate user agents + +## Contributing + +1. Fork the repository +2. Create a feature branch +3. Commit your changes +4. Push to the branch +5. Create a Pull Request + +## License + +This module is part of the ALwrity project and is licensed under the MIT License. \ No newline at end of file diff --git a/lib/utils/website_analyzer/__init__.py b/lib/utils/website_analyzer/__init__.py new file mode 100644 index 00000000..7db5cc2e --- /dev/null +++ b/lib/utils/website_analyzer/__init__.py @@ -0,0 +1,7 @@ +"""Website analyzer module for AI-powered website analysis.""" + +from .analyzer import analyze_website +from .seo_analyzer import analyze_seo +from .models import SEOAnalysisResult + +__all__ = ['analyze_seo', 'SEOAnalysisResult', 'analyze_website'] \ No newline at end of file diff --git a/lib/utils/website_analyzer/analyzer.py b/lib/utils/website_analyzer/analyzer.py new file mode 100644 index 00000000..f5869af8 --- /dev/null +++ b/lib/utils/website_analyzer/analyzer.py @@ -0,0 +1,323 @@ +"""Website scraping and AI analysis module.""" + +import asyncio +from typing import Dict, List, Optional +from bs4 import BeautifulSoup +from urllib.parse import urljoin, urlparse +import streamlit as st +import re +from loguru import logger +from ...web_crawlers.async_web_crawler import AsyncWebCrawlerService +from ...gpt_providers.text_generation.main_text_generation import llm_text_gen +import os +import sys +import logging +import json +from datetime import datetime +import requests +import ssl +import socket +import whois +import dns.resolver +from requests.exceptions import RequestException +from concurrent.futures import ThreadPoolExecutor + +# Configure logging +logging.basicConfig( + level=logging.DEBUG, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.StreamHandler(), + logging.FileHandler('website_analyzer.log') + ] +) +logger = logging.getLogger(__name__) + +def analyze_website(url: str) -> Dict: + """ + Analyze a website and return comprehensive results. + + Args: + url (str): The URL to analyze + + Returns: + Dict: Analysis results including various metrics and checks + """ + logger.info(f"Starting website analysis for URL: {url}") + try: + analyzer = WebsiteAnalyzer() + results = analyzer.analyze_website(url) + + # Add success status to results + if "error" in results: + return { + "success": False, + "error": results["error"] + } + + # Add success status and wrap results + return { + "success": True, + "data": results + } + except Exception as e: + logger.error(f"Error in analyze_website: {str(e)}", exc_info=True) + return { + "success": False, + "error": str(e) + } + +class WebsiteAnalyzer: + def __init__(self): + self.session = requests.Session() + self.session.headers.update({ + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' + }) + logger.info("WebsiteAnalyzer initialized") + + def analyze_website(self, url: str) -> Dict: + """ + Perform comprehensive analysis of a website. + + Args: + url (str): The URL to analyze + + Returns: + Dict: Analysis results including various metrics and checks + """ + logger.info(f"Starting analysis for URL: {url}") + try: + # Validate URL + if not self._validate_url(url): + logger.error(f"Invalid URL format: {url}") + return {"error": "Invalid URL format"} + + # Basic URL parsing + parsed_url = urlparse(url) + domain = parsed_url.netloc + logger.debug(f"Parsed domain: {domain}") + + # Initialize results dictionary + results = { + "url": url, + "domain": domain, + "timestamp": datetime.now().isoformat(), + "analysis": {} + } + + # Perform various analyses + with ThreadPoolExecutor(max_workers=4) as executor: + # Basic website info + basic_info = executor.submit(self._get_basic_info, url).result() + results["analysis"]["basic_info"] = basic_info + + # SSL/TLS info + ssl_info = executor.submit(self._check_ssl, domain).result() + results["analysis"]["ssl_info"] = ssl_info + + # DNS info + dns_info = executor.submit(self._check_dns, domain).result() + results["analysis"]["dns_info"] = dns_info + + # WHOIS info + whois_info = executor.submit(self._get_whois_info, domain).result() + results["analysis"]["whois_info"] = whois_info + + # Content analysis + content_info = executor.submit(self._analyze_content, url).result() + results["analysis"]["content_info"] = content_info + + # Performance metrics + performance = executor.submit(self._check_performance, url).result() + results["analysis"]["performance"] = performance + + logger.info(f"Analysis completed successfully for {url}") + return results + + except Exception as e: + logger.error(f"Error during website analysis: {str(e)}", exc_info=True) + return {"error": str(e)} + + def _validate_url(self, url: str) -> bool: + """Validate URL format.""" + try: + result = urlparse(url) + return all([result.scheme, result.netloc]) + except Exception as e: + logger.error(f"URL validation error: {str(e)}") + return False + + def _get_basic_info(self, url: str) -> Dict: + """Get basic website information.""" + logger.debug(f"Getting basic info for {url}") + try: + response = self.session.get(url, timeout=10) + response.raise_for_status() + + soup = BeautifulSoup(response.text, 'html.parser') + + return { + "status_code": response.status_code, + "content_type": response.headers.get('content-type', ''), + "title": soup.title.string if soup.title else '', + "meta_description": self._get_meta_description(soup), + "headers": dict(response.headers), + "robots_txt": self._get_robots_txt(url), + "sitemap": self._get_sitemap(url) + } + except Exception as e: + logger.error(f"Error getting basic info: {str(e)}", exc_info=True) + return {"error": str(e)} + + def _check_ssl(self, domain: str) -> Dict: + """Check SSL/TLS certificate information.""" + logger.debug(f"Checking SSL for {domain}") + try: + context = ssl.create_default_context() + with socket.create_connection((domain, 443)) as sock: + with context.wrap_socket(sock, server_hostname=domain) as ssock: + cert = ssock.getpeercert() + return { + "has_ssl": True, + "issuer": dict(x[0] for x in cert['issuer']), + "expiry": datetime.strptime(cert['notAfter'], '%b %d %H:%M:%S %Y %Z').isoformat(), + "version": cert['version'], + "subject": dict(x[0] for x in cert['subject']) + } + except Exception as e: + logger.error(f"SSL check error: {str(e)}", exc_info=True) + return {"has_ssl": False, "error": str(e)} + + def _check_dns(self, domain: str) -> Dict: + """Check DNS records.""" + logger.debug(f"Checking DNS for {domain}") + try: + records = {} + for record_type in ['A', 'AAAA', 'MX', 'NS', 'TXT']: + try: + answers = dns.resolver.resolve(domain, record_type) + records[record_type] = [str(rdata) for rdata in answers] + except dns.resolver.NoAnswer: + records[record_type] = [] + except Exception as e: + logger.warning(f"Error resolving {record_type} record: {str(e)}") + records[record_type] = [] + return records + except Exception as e: + logger.error(f"DNS check error: {str(e)}", exc_info=True) + return {"error": str(e)} + + def _get_whois_info(self, domain: str) -> Dict: + """Get WHOIS information for a domain.""" + try: + w = whois.whois(domain) + + def format_date(date_value): + if isinstance(date_value, list): + return date_value[0].isoformat() if date_value else 'Unknown' + return date_value.isoformat() if date_value else 'Unknown' + + return { + 'registrar': w.registrar if hasattr(w, 'registrar') else 'Unknown', + 'creation_date': format_date(w.creation_date), + 'expiration_date': format_date(w.expiration_date), + 'updated_date': format_date(w.updated_date) if hasattr(w, 'updated_date') else 'Unknown', + 'name_servers': w.name_servers if hasattr(w, 'name_servers') else [], + 'domain_name': w.domain_name if hasattr(w, 'domain_name') else domain, + 'text': w.text if hasattr(w, 'text') else '' + } + except Exception as e: + logger.error(f"WHOIS check error: {str(e)}") + return { + 'registrar': 'Unknown', + 'creation_date': 'Unknown', + 'expiration_date': 'Unknown', + 'updated_date': 'Unknown', + 'name_servers': [], + 'domain_name': domain, + 'text': '' + } + + def _analyze_content(self, url: str) -> Dict: + """Analyze website content.""" + logger.debug(f"Analyzing content for {url}") + try: + response = self.session.get(url, timeout=10) + response.raise_for_status() + soup = BeautifulSoup(response.text, 'html.parser') + + # Get all text content + text_content = soup.get_text() + + # Count words + words = re.findall(r'\w+', text_content.lower()) + word_count = len(words) + + # Count headings + headings = soup.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6']) + + # Count images + images = soup.find_all('img') + + # Count links + links = soup.find_all('a') + + return { + "word_count": word_count, + "heading_count": len(headings), + "image_count": len(images), + "link_count": len(links), + "has_meta_description": bool(self._get_meta_description(soup)), + "has_robots_txt": bool(self._get_robots_txt(url)), + "has_sitemap": bool(self._get_sitemap(url)) + } + except Exception as e: + logger.error(f"Content analysis error: {str(e)}", exc_info=True) + return {"error": str(e)} + + def _check_performance(self, url: str) -> Dict: + """Check website performance metrics.""" + logger.debug(f"Checking performance for {url}") + try: + start_time = datetime.now() + response = self.session.get(url, timeout=10) + end_time = datetime.now() + + load_time = (end_time - start_time).total_seconds() + + return { + "load_time": load_time, + "status_code": response.status_code, + "content_length": len(response.content), + "headers": dict(response.headers) + } + except Exception as e: + logger.error(f"Performance check error: {str(e)}", exc_info=True) + return {"error": str(e)} + + def _get_meta_description(self, soup: BeautifulSoup) -> Optional[str]: + """Extract meta description from HTML.""" + meta_desc = soup.find('meta', attrs={'name': 'description'}) + return meta_desc.get('content') if meta_desc else None + + def _get_robots_txt(self, url: str) -> Optional[str]: + """Get robots.txt content.""" + try: + robots_url = f"{url.rstrip('/')}/robots.txt" + response = self.session.get(robots_url, timeout=5) + if response.status_code == 200: + return response.text + except Exception as e: + logger.warning(f"Error fetching robots.txt: {str(e)}") + return None + + def _get_sitemap(self, url: str) -> Optional[str]: + """Get sitemap.xml content.""" + try: + sitemap_url = f"{url.rstrip('/')}/sitemap.xml" + response = self.session.get(sitemap_url, timeout=5) + if response.status_code == 200: + return response.text + except Exception as e: + logger.warning(f"Error fetching sitemap.xml: {str(e)}") + return None \ No newline at end of file diff --git a/lib/utils/website_analyzer/models.py b/lib/utils/website_analyzer/models.py new file mode 100644 index 00000000..b5b55054 --- /dev/null +++ b/lib/utils/website_analyzer/models.py @@ -0,0 +1,45 @@ +"""Data models for website analysis results.""" + +from dataclasses import dataclass +from typing import List, Dict, Optional +from datetime import datetime + +@dataclass +class SEORecommendation: + """A single SEO recommendation.""" + priority: str # 'high', 'medium', 'low' + category: str # 'content', 'technical', 'meta', etc. + issue: str + recommendation: str + impact: str + +@dataclass +class MetaTagAnalysis: + """Analysis of meta tags.""" + title: Dict[str, str] # {'status': 'good', 'value': 'actual title', 'recommendation': 'suggestion'} + description: Dict[str, str] + keywords: Dict[str, str] + has_robots: bool + has_sitemap: bool + +@dataclass +class ContentAnalysis: + """Analysis of page content.""" + word_count: int + headings_structure: Dict[str, int] # {'h1': 1, 'h2': 3, etc} + keyword_density: Dict[str, float] + readability_score: float + content_quality_score: float + +@dataclass +class SEOAnalysisResult: + """Complete SEO analysis result.""" + url: str + analyzed_at: datetime + overall_score: float # 0-100 + meta_tags: MetaTagAnalysis + content: ContentAnalysis + recommendations: List[SEORecommendation] + errors: List[str] + warnings: List[str] + success: bool \ No newline at end of file diff --git a/lib/utils/website_analyzer/seo_analyzer.py b/lib/utils/website_analyzer/seo_analyzer.py new file mode 100644 index 00000000..dac2ae05 --- /dev/null +++ b/lib/utils/website_analyzer/seo_analyzer.py @@ -0,0 +1,233 @@ +"""SEO analyzer module with AI integration.""" + +import requests +from bs4 import BeautifulSoup +from datetime import datetime +from typing import Dict, List, Tuple, Optional +from urllib.parse import urlparse +import openai +from loguru import logger +import os +from dotenv import load_dotenv +from .models import ( + SEOAnalysisResult, + MetaTagAnalysis, + ContentAnalysis, + SEORecommendation +) + +def extract_content(url: str) -> Tuple[Optional[str], Optional[BeautifulSoup], List[str]]: + """Extract content from URL.""" + errors = [] + try: + response = requests.get(url, timeout=10) + response.raise_for_status() + soup = BeautifulSoup(response.text, 'html.parser') + return response.text, soup, errors + except requests.RequestException as e: + error_msg = f"Error fetching URL: {str(e)}" + logger.error(error_msg) + errors.append(error_msg) + return None, None, errors + +def analyze_meta_tags(soup: BeautifulSoup) -> MetaTagAnalysis: + """Analyze meta tags using BeautifulSoup.""" + # Title analysis + title = soup.title.string if soup.title else "" + title_analysis = { + 'status': 'good' if title and 30 <= len(title) <= 60 else 'needs_improvement', + 'value': title, + 'recommendation': '' if title and 30 <= len(title) <= 60 else 'Title should be between 30-60 characters' + } + + # Meta description analysis + meta_desc = soup.find('meta', attrs={'name': 'description'}) + desc = meta_desc.get('content', '') if meta_desc else "" + desc_analysis = { + 'status': 'good' if desc and 120 <= len(desc) <= 160 else 'needs_improvement', + 'value': desc, + 'recommendation': '' if desc and 120 <= len(desc) <= 160 else 'Description should be between 120-160 characters' + } + + # Keywords analysis + meta_keywords = soup.find('meta', attrs={'name': 'keywords'}) + keywords = meta_keywords.get('content', '') if meta_keywords else "" + keywords_analysis = { + 'status': 'good' if keywords else 'needs_improvement', + 'value': keywords, + 'recommendation': '' if keywords else 'Add relevant keywords meta tag' + } + + return MetaTagAnalysis( + title=title_analysis, + description=desc_analysis, + keywords=keywords_analysis, + has_robots=bool(soup.find('meta', attrs={'name': 'robots'})), + has_sitemap=bool(soup.find('link', attrs={'rel': 'sitemap'})) + ) + +def analyze_content_with_ai(content: str) -> Tuple[ContentAnalysis, List[SEORecommendation]]: + """Analyze content using AI.""" + try: + # Load environment variables + load_dotenv() + + # Get API key from environment + api_key = os.getenv('OPENAI_API_KEY') + if not api_key: + raise ValueError("OpenAI API key not found in environment variables") + + # Initialize OpenAI client + client = openai.OpenAI(api_key=api_key) + + # Prepare prompt for content analysis + prompt = f"""Analyze the following webpage content for SEO and provide a structured analysis: + Content: {content[:4000]}... # Truncate to avoid token limits + + Provide analysis in the following format: + 1. Word count + 2. Heading structure analysis + 3. Keyword density for main topics + 4. Readability score (0-100) + 5. Content quality score (0-100) + 6. List of SEO recommendations with priority (high/medium/low), category, issue, recommendation, and impact + + Format the response as JSON.""" + + # Get AI analysis + response = client.chat.completions.create( + model="gpt-4", + messages=[ + {"role": "system", "content": "You are an SEO expert analyzing website content."}, + {"role": "user", "content": prompt} + ], + response_format={"type": "json_object"} + ) + + # Parse AI response + analysis = response.choices[0].message.content + + # Create ContentAnalysis object + content_analysis = ContentAnalysis( + word_count=len(content.split()), + headings_structure=analysis.get('heading_structure', {}), + keyword_density=analysis.get('keyword_density', {}), + readability_score=analysis.get('readability_score', 0), + content_quality_score=analysis.get('content_quality_score', 0) + ) + + # Create recommendations + recommendations = [ + SEORecommendation( + priority=rec['priority'], + category=rec['category'], + issue=rec['issue'], + recommendation=rec['recommendation'], + impact=rec['impact'] + ) + for rec in analysis.get('recommendations', []) + ] + + return content_analysis, recommendations + + except Exception as e: + logger.error(f"Error in AI analysis: {str(e)}") + return ContentAnalysis( + word_count=len(content.split()), + headings_structure={}, + keyword_density={}, + readability_score=0, + content_quality_score=0 + ), [] + +def analyze_seo(url: str) -> SEOAnalysisResult: + """Main function to analyze website SEO.""" + errors = [] + warnings = [] + + # Validate URL + try: + parsed_url = urlparse(url) + if not all([parsed_url.scheme, parsed_url.netloc]): + errors.append("Invalid URL format") + raise ValueError("Invalid URL format") + except Exception as e: + errors.append(f"URL parsing error: {str(e)}") + return SEOAnalysisResult( + url=url, + analyzed_at=datetime.now(), + overall_score=0, + meta_tags=None, + content=None, + recommendations=[], + errors=errors, + warnings=warnings, + success=False + ) + + # Extract content + content, soup, extract_errors = extract_content(url) + errors.extend(extract_errors) + + if not content or not soup: + return SEOAnalysisResult( + url=url, + analyzed_at=datetime.now(), + overall_score=0, + meta_tags=None, + content=None, + recommendations=[], + errors=errors, + warnings=warnings, + success=False + ) + + try: + # Analyze meta tags + meta_analysis = analyze_meta_tags(soup) + + # Analyze content with AI + content_analysis, recommendations = analyze_content_with_ai(content) + + # Calculate overall score + meta_score = sum([ + 1 if meta_analysis.title['status'] == 'good' else 0, + 1 if meta_analysis.description['status'] == 'good' else 0, + 1 if meta_analysis.keywords['status'] == 'good' else 0, + 1 if meta_analysis.has_robots else 0, + 1 if meta_analysis.has_sitemap else 0 + ]) * 20 # Scale to 100 + + overall_score = ( + meta_score * 0.3 + # 30% weight for meta tags + content_analysis.readability_score * 0.3 + # 30% weight for readability + content_analysis.content_quality_score * 0.4 # 40% weight for content quality + ) + + return SEOAnalysisResult( + url=url, + analyzed_at=datetime.now(), + overall_score=overall_score, + meta_tags=meta_analysis, + content=content_analysis, + recommendations=recommendations, + errors=errors, + warnings=warnings, + success=True + ) + + except Exception as e: + error_msg = f"Error in SEO analysis: {str(e)}" + logger.error(error_msg) + errors.append(error_msg) + return SEOAnalysisResult( + url=url, + analyzed_at=datetime.now(), + overall_score=0, + meta_tags=None, + content=None, + recommendations=[], + errors=errors, + warnings=warnings, + success=False + ) \ No newline at end of file diff --git a/lib/web_crawlers/README.md b/lib/web_crawlers/README.md new file mode 100644 index 00000000..b062c2eb --- /dev/null +++ b/lib/web_crawlers/README.md @@ -0,0 +1,151 @@ +# Web Crawler Guide for Content Creators + +## What is a Web Crawler? + +A web crawler is a powerful tool that helps content creators gather, analyze, and understand content from websites. It's like having a digital assistant that can quickly scan websites and extract valuable information to help you create better content. + +## Key Features + +### 1. Content Extraction +- **Main Content**: Extracts the primary content from web pages +- **Meta Information**: Captures titles, descriptions, and meta tags +- **Structure Analysis**: Identifies headings and content hierarchy +- **Media Elements**: Collects links and images with their descriptions + +### 2. AI-Powered Analysis +- **Topic Identification**: Automatically identifies main topics +- **Content Quality Assessment**: Evaluates readability and engagement +- **SEO Analysis**: Provides SEO scores and recommendations +- **Content Gap Analysis**: Identifies missing information +- **Opportunity Detection**: Suggests areas for improvement + +### 3. Smart Processing +- **Fast Performance**: Uses advanced async technology for quick results +- **Error Handling**: Gracefully handles website access issues +- **Content Cleaning**: Removes unnecessary elements for clean analysis +- **Multiple Page Support**: Can analyze multiple pages efficiently + +## Use Cases for Content Creators + +### 1. Content Research +- **Competitor Analysis**: Study competitor content and strategies +- **Topic Research**: Gather information for new content ideas +- **Industry Trends**: Track industry developments and updates +- **Content Inspiration**: Find inspiration from successful content + +### 2. Content Optimization +- **SEO Improvement**: Identify SEO opportunities +- **Content Structure**: Analyze and improve content organization +- **Readability Enhancement**: Get suggestions for better readability +- **Engagement Optimization**: Improve content engagement + +### 3. Content Strategy +- **Gap Analysis**: Identify content gaps in your niche +- **Topic Planning**: Plan content topics and themes +- **Audience Understanding**: Better understand target audience needs +- **Performance Tracking**: Monitor content performance + +## How to Use the Web Crawler + +### 1. Basic Usage +1. **Enter URL**: Provide the website URL you want to analyze +2. **Start Crawling**: The crawler will automatically extract content +3. **Review Results**: Get comprehensive analysis of the content + +### 2. Advanced Features +- **Custom Analysis**: Set specific parameters for content analysis +- **Batch Processing**: Analyze multiple pages at once +- **Detailed Reports**: Get in-depth content analysis reports +- **Export Options**: Export results in various formats + +### 3. Analysis Options +- **Content Quality**: Evaluate writing style and structure +- **SEO Metrics**: Check SEO performance +- **Engagement Factors**: Analyze reader engagement potential +- **Improvement Suggestions**: Get actionable recommendations + +## Benefits for Content Creators + +### 1. Time Savings +- Quick content research +- Automated analysis +- Efficient data gathering +- Streamlined workflow + +### 2. Quality Improvement +- Better content structure +- Enhanced readability +- Improved SEO performance +- Higher engagement potential + +### 3. Strategic Advantage +- Data-driven decisions +- Competitive insights +- Content optimization +- Performance tracking + +## Best Practices + +### 1. Before Crawling +- Identify clear objectives +- Select relevant websites +- Set analysis parameters +- Prepare for data collection + +### 2. During Analysis +- Review extracted content +- Validate information +- Check for accuracy +- Note important insights + +### 3. After Analysis +- Apply findings to content +- Track improvements +- Update content strategy +- Monitor results + +## Common Applications + +### 1. Blog Content +- Topic research +- Content structure analysis +- SEO optimization +- Engagement improvement + +### 2. Article Writing +- Research gathering +- Fact verification +- Source analysis +- Content enhancement + +### 3. Website Content +- Page optimization +- Content audit +- Structure improvement +- SEO enhancement + +### 4. Social Media Content +- Trend analysis +- Content ideas +- Engagement optimization +- Performance tracking + +## Tips for Optimal Results + +1. **Be Specific**: Clearly define your analysis goals +2. **Choose Quality Sources**: Select reliable websites for analysis +3. **Review Results**: Always verify extracted information +4. **Apply Insights**: Use findings to improve your content +5. **Track Progress**: Monitor improvements over time + +## ALwrity, Need Help? + +If you encounter any issues or need assistance: +1. Check the documentation +2. Review error messages +3. Verify website accessibility +4. Contact support if needed + +--- + +*Note: This tool is designed to help content creators gather and analyze web content efficiently. Always respect website terms of service and robots.txt files when crawling websites.* \ No newline at end of file diff --git a/lib/web_crawlers/async_web_crawler.py b/lib/web_crawlers/async_web_crawler.py new file mode 100644 index 00000000..a93d4cff --- /dev/null +++ b/lib/web_crawlers/async_web_crawler.py @@ -0,0 +1,246 @@ +"""Web crawler module using requests and BeautifulSoup.""" + +from typing import Dict, List, Optional +import json +from loguru import logger +import requests +import aiohttp +import asyncio +from bs4 import BeautifulSoup +from urllib.parse import urljoin, urlparse +from pydantic import BaseModel, Field +import os +from ..gpt_providers.text_generation.main_text_generation import llm_text_gen + +class WebsiteContent(BaseModel): + """Model for website content analysis.""" + title: str = Field("", description="Title of the webpage") + description: str = Field("", description="Meta description of the webpage") + main_content: str = Field("", description="Main content of the webpage") + headings: List[str] = Field([], description="All headings on the page") + links: List[Dict[str, str]] = Field([], description="All links on the page") + images: List[Dict[str, str]] = Field([], description="All images on the page") + meta_tags: Dict[str, str] = Field({}, description="Meta tags from the page") + +class AsyncWebCrawlerService: + """Service for crawling websites.""" + + def __init__(self): + """Initialize the crawler service.""" + logger.info("[AsyncWebCrawlerService.__init__] Initializing crawler service") + self.visited_urls = set() + self.base_url = None + self.domain = None + self.session = None + self.max_pages = 10 # Limit the number of pages to crawl + self.timeout = 30 # Timeout in seconds for requests + self.headers = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' + } + + async def __aenter__(self): + """Create aiohttp session when entering context.""" + logger.debug("[AsyncWebCrawlerService.__aenter__] Creating aiohttp session") + self.session = aiohttp.ClientSession(headers=self.headers) + return self + + async def __aexit__(self, exc_type, exc_val, exc_tb): + """Close aiohttp session when exiting context.""" + logger.debug("[AsyncWebCrawlerService.__aexit__] Closing aiohttp session") + if self.session: + await self.session.close() + + async def fetch_url(self, url: str) -> str: + """ + Fetch URL content asynchronously. + + Args: + url (str): URL to fetch + + Returns: + str: HTML content + """ + logger.debug(f"[AsyncWebCrawlerService.fetch_url] Fetching URL: {url}") + if not self.session: + logger.debug("[AsyncWebCrawlerService.fetch_url] Creating new session") + self.session = aiohttp.ClientSession(headers=self.headers) + + async with self.session.get(url) as response: + if response.status == 200: + logger.debug(f"[AsyncWebCrawlerService.fetch_url] Successfully fetched URL: {url}") + return await response.text() + else: + error_msg = f"Failed to fetch URL: Status code {response.status}" + logger.error(f"[AsyncWebCrawlerService.fetch_url] {error_msg}") + raise Exception(error_msg) + + async def crawl_website(self, url: str) -> Dict: + """ + Crawl a website and extract its content. + + Args: + url (str): The URL to crawl + + Returns: + Dict: Extracted website content and metadata + """ + try: + logger.info(f"[AsyncWebCrawlerService.crawl_website] Starting crawl for URL: {url}") + + # Fetch the page content + try: + html_content = await self.fetch_url(url) + logger.debug("[AsyncWebCrawlerService.crawl_website] Successfully fetched HTML content") + except Exception as e: + error_msg = f"Failed to fetch content from {url}: {str(e)}" + logger.error(f"[AsyncWebCrawlerService.crawl_website] {error_msg}") + return { + 'success': False, + 'error': error_msg + } + + # Parse HTML with BeautifulSoup + logger.debug("[AsyncWebCrawlerService.crawl_website] Parsing HTML content") + soup = BeautifulSoup(html_content, 'html.parser') + + # Extract main content (focusing on article-like content) + main_content_elements = soup.find_all(['article', 'main', 'div'], class_=['content', 'main-content', 'article', 'post']) + if not main_content_elements: + main_content_elements = soup.find_all(['p', 'article', 'section']) + + main_content = ' '.join([elem.get_text(strip=True) for elem in main_content_elements]) + + # If still no content, get all paragraph text + if not main_content: + main_content = ' '.join([p.get_text(strip=True) for p in soup.find_all('p')]) + + logger.debug(f"[AsyncWebCrawlerService.crawl_website] Extracted {len(main_content)} characters of main content") + + # Extract content + content = { + 'title': soup.title.string.strip() if soup.title else '', + 'description': soup.find('meta', {'name': 'description'}).get('content', '').strip() if soup.find('meta', {'name': 'description'}) else '', + 'main_content': main_content, + 'headings': [h.get_text(strip=True) for h in soup.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])], + 'links': [{'text': a.get_text(strip=True), 'href': urljoin(url, a.get('href', ''))} for a in soup.find_all('a', href=True)], + 'images': [{'alt': img.get('alt', '').strip(), 'src': urljoin(url, img.get('src', ''))} for img in soup.find_all('img', src=True)], + 'meta_tags': { + meta.get('name', meta.get('property', '')): meta.get('content', '').strip() + for meta in soup.find_all('meta') + if (meta.get('name') or meta.get('property')) and meta.get('content') + } + } + + logger.debug(f"[AsyncWebCrawlerService.crawl_website] Extracted {len(content['links'])} links and {len(content['images'])} images") + + # Close the session if it exists + if self.session: + logger.debug("[AsyncWebCrawlerService.crawl_website] Closing session") + await self.session.close() + self.session = None + + logger.info("[AsyncWebCrawlerService.crawl_website] Successfully completed website crawl") + return { + 'success': True, + 'content': content, + 'url': url + } + + except Exception as e: + error_msg = f"Error crawling {url}: {str(e)}" + logger.error(f"[AsyncWebCrawlerService.crawl_website] {error_msg}") + # Ensure session is closed even if there's an error + if self.session: + logger.debug("[AsyncWebCrawlerService.crawl_website] Closing session after error") + await self.session.close() + self.session = None + return { + 'success': False, + 'error': str(e) + } + + async def analyze_content_with_llm(self, content: Dict, api_key: str, gpt_provider: str) -> Dict: + """ + Analyze content using LLM. + + Args: + content (Dict): Content to analyze + api_key (str): API key for the LLM service + gpt_provider (str): Provider to use (openai/google) + + Returns: + Dict: Analysis results + """ + try: + logger.info(f"[AsyncWebCrawlerService.analyze_content_with_llm] Starting content analysis with {gpt_provider}") + + # Prepare the content for analysis + main_content = content.get("main_content", "") + if isinstance(main_content, dict): + main_content = main_content.get("text", "") + + logger.debug(f"[AsyncWebCrawlerService.analyze_content_with_llm] Prepared {len(main_content)} characters for analysis") + + # Construct the prompt for analysis + prompt = f"""Analyze the following website content and provide a comprehensive analysis: + +Content: +{main_content[:4000]} # Limit content length for API + +Please provide analysis in the following JSON format: +{{ + "topics": ["topic1", "topic2", ...], + "key_insights": ["insight1", "insight2", ...], + "content_quality": {{ + "readability": "score", + "engagement": "score", + "completeness": "score" + }}, + "recommendations": ["rec1", "rec2", ...], + "seo_score": "score", + "content_gaps": ["gap1", "gap2", ...], + "opportunities": ["opp1", "opp2", ...], + "priority_areas": ["area1", "area2", ...] +}} + +Ensure the response is valid JSON.""" + + # Call the LLM function + logger.debug("[AsyncWebCrawlerService.analyze_content_with_llm] Calling llm_text_gen with prompt") + response = llm_text_gen(prompt) + + if not response: + logger.error("[AsyncWebCrawlerService.analyze_content_with_llm] No response from LLM") + return {} + + # Clean up the response before parsing + logger.debug("[AsyncWebCrawlerService.analyze_content_with_llm] Cleaning response for JSON parsing") + try: + # Remove any leading/trailing whitespace + cleaned_response = response.strip() + + # If response starts with a newline or other characters before {, clean it + start_idx = cleaned_response.find('{') + end_idx = cleaned_response.rfind('}') + if start_idx != -1 and end_idx != -1: + cleaned_response = cleaned_response[start_idx:end_idx + 1] + + # Fix any line breaks within strings + cleaned_response = cleaned_response.replace('\n', ' ') + + logger.debug(f"[AsyncWebCrawlerService.analyze_content_with_llm] Attempting to parse cleaned response: {cleaned_response[:100]}...") + + # Parse the cleaned response + analysis_result = json.loads(cleaned_response) + logger.info("[AsyncWebCrawlerService.analyze_content_with_llm] Successfully parsed LLM response") + logger.debug(f"[AsyncWebCrawlerService.analyze_content_with_llm] Analysis result keys: {analysis_result.keys()}") + return analysis_result + + except json.JSONDecodeError as e: + logger.error(f"[AsyncWebCrawlerService.analyze_content_with_llm] Failed to parse LLM response as JSON: {str(e)}") + logger.debug(f"[AsyncWebCrawlerService.analyze_content_with_llm] Raw response: {response[:100]}...") + return {} + + except Exception as e: + logger.error(f"[AsyncWebCrawlerService.analyze_content_with_llm] Error analyzing content with LLM: {str(e)}") + return {} \ No newline at end of file diff --git a/lib/web_crawlers/crawl4ai_web_crawler.py b/lib/web_crawlers/crawl4ai_web_crawler.py new file mode 100644 index 00000000..670159a9 --- /dev/null +++ b/lib/web_crawlers/crawl4ai_web_crawler.py @@ -0,0 +1,94 @@ +"""Web crawler for ALwrity style analysis.""" + +import asyncio +from crawl4ai import AsyncWebCrawler +from crawl4ai.async_configs import BrowserConfig, CrawlerRunConfig, CacheMode +from loguru import logger + +async def analyze_website_style(url: str, sample_text: str = None) -> dict: + """ + Analyze website content or sample text for style analysis. + + Args: + url: Website URL to analyze + sample_text: Optional sample text to analyze instead of website + + Returns: + dict: Analysis results including content style metrics + """ + try: + if sample_text: + # Analyze sample text directly + return { + "success": True, + "content": sample_text, + "metrics": { + "word_count": len(sample_text.split()), + "sentence_count": len(sample_text.split('.')), + "avg_sentence_length": len(sample_text.split()) / max(len(sample_text.split('.')), 1) + } + } + browser_config = BrowserConfig() # Default browser configuration + run_config = CrawlerRunConfig() # Default crawl run configuration + + async with AsyncWebCrawler(config=browser_config) as crawler: + result = await crawler.arun( + url=url, + config=run_config + ) + print(result.markdown) # Print clean markdown content + + logger.debug(f"Crawl result: {result}") + if result.success: + # Process content for style analysis + content = result.markdown + sentences = [s.strip() for s in content.split('.') if s.strip()] + + return { + "success": True, + "content": content, + "metrics": { + "word_count": len(content.split()), + "sentence_count": len(sentences), + "avg_sentence_length": len(content.split()) / max(len(sentences), 1), + "internal_links": len(result.links["internal"]), + "images": len(result.media["images"]) + } + } + else: + return { + "success": False, + "error": result.error_message + } + + except Exception as e: + logger.error(f"Error in style analysis: {str(e)}") + return { + "success": False, + "error": str(e) + } + +def analyze_style(url: str = None, sample_text: str = None) -> dict: + """ + Synchronous wrapper for style analysis. + + Args: + url: Website URL to analyze + sample_text: Optional sample text to analyze + + Returns: + dict: Analysis results + """ + return asyncio.run(analyze_website_style(url, sample_text)) + + +# Deep Crawling +# One of Crawl4AI's most powerful features is its ability to perform +# configurable deep crawling that can explore websites beyond a single page. +# With fine-tuned control over crawl depth, domain boundaries, +# and content filtering, Crawl4AI gives you the tools to extract precisely the content you need. +# +# +# +# +# diff --git a/pages/ai_research_setup_page.py b/pages/ai_research_setup_page.py new file mode 100644 index 00000000..5d094cd4 --- /dev/null +++ b/pages/ai_research_setup_page.py @@ -0,0 +1,50 @@ +"""Page for AI Research Setup redirection.""" + +import streamlit as st +from loguru import logger +import sys +import os + +# Configure logger +logger.remove() # Remove default handler +logger.add( + "logs/ai_research_setup_page.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", + backtrace=True, + diagnose=True +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +# Set page config +st.set_page_config( + layout="wide", + initial_sidebar_state="collapsed", + menu_items={ + 'Get Help': None, + 'Report a bug': None, + 'About': None + } +) + +def render_ai_research_setup_page(): + """Render the AI Research Setup page.""" + try: + logger.info("Starting AI Research Setup page") + + # Import and render the AI Research Setup component + from lib.utils.api_key_manager.components.ai_research_setup import render_ai_research_setup + render_ai_research_setup() + + except Exception as e: + logger.error(f"Error in render_ai_research_setup_page: {str(e)}") + st.error(f"An error occurred: {str(e)}") + +if __name__ == "__main__": + render_ai_research_setup_page() \ No newline at end of file diff --git a/pages/personalization_setup.py b/pages/personalization_setup.py new file mode 100644 index 00000000..d35e9930 --- /dev/null +++ b/pages/personalization_setup.py @@ -0,0 +1,84 @@ +import streamlit as st +import os +import json +from pathlib import Path + +st.set_page_config( + page_title="Personalization Setup", + page_icon="βš™οΈ", + layout="wide" +) + +st.title("Personalization Setup") + +# Initialize session state for active tab if not exists +if 'active_tab' not in st.session_state: + st.session_state.active_tab = "Writing Preferences" + +# Create tabs for different sections +tab1, tab2 = st.tabs(["Writing Preferences", "AI Configuration"]) + +with tab1: + st.write(""" + This section allows you to customize your AI writing experience. + Configure your preferences and settings here. + """) + + # Add your personalization options here + st.subheader("Writing Style Preferences") + tone = st.selectbox( + "Select your preferred writing tone", + ["Professional", "Casual", "Academic", "Creative"] + ) + + st.subheader("Content Preferences") + content_type = st.multiselect( + "Select your preferred content types", + ["Blog Posts", "Articles", "Social Media", "Technical Writing", "Creative Writing"] + ) + + if st.button("Save Preferences"): + st.success("Your preferences have been saved!") + +with tab2: + st.subheader("AI Configuration Settings") + + # Create a form for AI configuration + with st.form("ai_config_form"): + # API Keys + st.text_input("OpenAI API Key", type="password", key="openai_key") + st.text_input("Google API Key", type="password", key="google_key") + st.text_input("SerpAPI Key", type="password", key="serpapi_key") + + # Model Selection + st.selectbox("Select Model", ["gpt-3.5-turbo", "gpt-4"], key="model") + + # Temperature + st.slider("Temperature", 0.0, 2.0, 0.7, 0.1, key="temperature") + + # Max Tokens + st.number_input("Max Tokens", 100, 4000, 2000, 100, key="max_tokens") + + # Submit button + submitted = st.form_submit_button("Save Configuration") + + if submitted: + # Create config directory if it doesn't exist + config_dir = Path("config") + config_dir.mkdir(exist_ok=True) + + # Save configuration + config = { + "openai_key": st.session_state.openai_key, + "google_key": st.session_state.google_key, + "serpapi_key": st.session_state.serpapi_key, + "model": st.session_state.model, + "temperature": st.session_state.temperature, + "max_tokens": st.session_state.max_tokens + } + + config_file = config_dir / "test_config.json" + with open(config_file, "w") as f: + json.dump(config, f, indent=4) + + st.success("Configuration saved successfully!") \ No newline at end of file diff --git a/pages/style_utils.py b/pages/style_utils.py new file mode 100644 index 00000000..cf0345cc --- /dev/null +++ b/pages/style_utils.py @@ -0,0 +1,352 @@ +"""CSS styles and utilities for ALwrity pages.""" + +def get_base_styles() -> str: + """ + Get the base CSS styles for ALwrity. + + Returns: + str: CSS styles as a string + """ + return """ + + """ + +def get_glassmorphic_styles() -> str: + """ + Get the glassmorphic CSS styles for ALwrity. + + Returns: + str: CSS styles as a string + """ + return """ + + """ + +def get_glass_container(content: str) -> str: + """Wrap content in a glass container.""" + return f""" +
+ {content} +
+ """ + +def get_info_section(content: str) -> str: + """Wrap content in an info section.""" + return f""" +
+ {content} +
+ """ + +def get_example_box(content: str) -> str: + """Wrap content in an example box.""" + return f""" +
+ {content} +
+ """ + +def get_analysis_section(title: str, content: str) -> str: + """Create an analysis section with title and content.""" + return f""" +
+

{title}

+ {content} +
+ """ + +def get_style_guide_html() -> str: + """ + Get the style guide HTML content. + + Returns: + str: HTML content for the style guide section + """ + return """ + ### How ALwrity Discovers Your Style + + **AI-Powered Style Analysis** + + ALwrity AI analyzes your existing content to understand your unique writing style and preferences. This helps us generate content that matches your voice perfectly. + + **Step 1: Content Analysis** + + We'll analyze your website content or written samples to understand: + + - Writing tone and voice + - Vocabulary and language style + - Content structure and formatting + - Target audience and engagement style + + **Step 2: Style Recommendations** + + Based on the analysis, we'll provide: + + - Personalized writing guidelines + - Content structure templates + - Tone and voice recommendations + - Audience engagement strategies + + **Step 3: Content Generation** + + Finally, we'll use these insights to: + + - Generate content that matches your style + - Maintain consistency across all content + - Optimize for your target audience + - Ensure brand voice alignment + """ + +def get_test_config_styles() -> str: + """ + Get all CSS styles for test configuration settings page. + + Returns: + str: Combined CSS styles as a string + """ + return f"{get_base_styles()}{get_glassmorphic_styles()}" \ No newline at end of file diff --git a/pages/test_config_settings.py b/pages/test_config_settings.py new file mode 100644 index 00000000..1ab9a2c8 --- /dev/null +++ b/pages/test_config_settings.py @@ -0,0 +1,310 @@ +"""Test configuration settings page for ALwrity.""" + +import streamlit as st +from loguru import logger +import asyncio +from lib.web_crawlers.async_web_crawler import AsyncWebCrawlerService +from pages.style_utils import ( + get_test_config_styles, + get_glass_container, + get_info_section, + get_example_box, + get_analysis_section, + get_style_guide_html +) +import sys +from lib.personalization.style_analyzer import StyleAnalyzer + +# Set page config - must be the first Streamlit command +st.set_page_config( + layout="wide", + initial_sidebar_state="collapsed", + menu_items={ + 'Get Help': None, + 'Report a bug': None, + 'About': None + } +) + +import yaml +from pathlib import Path +import os +from loguru import logger +from lib.utils.read_main_config_params import get_personalization_settings +from lib.web_crawlers.crawl4ai_web_crawler import analyze_style + +# Configure logger +logger.remove() # Remove default handler +logger.add( + "logs/test_config_settings.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", + backtrace=True, + diagnose=True +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +# Apply CSS styles +st.markdown(get_test_config_styles(), unsafe_allow_html=True) + +def load_website_url(): + """Load website URL from config file.""" + try: + logger.debug("Loading website URL from config file") + config_path = Path(os.environ["ALWRITY_CONFIG"]) + config = yaml.safe_load(config_path.read_text()) + url = config.get('website', {}).get('url', '') + logger.info(f"Loaded website URL: {url}") + return url + except Exception as e: + logger.error(f"Error loading website URL: {str(e)}", exc_info=True) + return '' + +def display_style_analysis(analysis_results: dict): + """Display the style analysis results in a structured format.""" + try: + # Writing Style Section + st.markdown("### 🎨 Writing Style Analysis") + writing_style = analysis_results.get("writing_style", {}) + writing_style_content = f""" +
    +
  • Tone: {writing_style.get("tone", "N/A")}
  • +
  • Voice: {writing_style.get("voice", "N/A")}
  • +
  • Complexity: {writing_style.get("complexity", "N/A")}
  • +
  • Engagement Level: {writing_style.get("engagement_level", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Writing Style", writing_style_content), unsafe_allow_html=True) + + # Content Characteristics Section + content_chars = analysis_results.get("content_characteristics", {}) + content_chars_content = f""" +
    +
  • Sentence Structure: {content_chars.get("sentence_structure", "N/A")}
  • +
  • Vocabulary Level: {content_chars.get("vocabulary_level", "N/A")}
  • +
  • Paragraph Organization: {content_chars.get("paragraph_organization", "N/A")}
  • +
  • Content Flow: {content_chars.get("content_flow", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Content Characteristics", content_chars_content), unsafe_allow_html=True) + + # Target Audience Section + target_audience = analysis_results.get("target_audience", {}) + target_audience_content = f""" +
    +
  • Demographics: {', '.join(target_audience.get("demographics", ["N/A"]))}
  • +
  • Expertise Level: {target_audience.get("expertise_level", "N/A")}
  • +
  • Industry Focus: {target_audience.get("industry_focus", "N/A")}
  • +
  • Geographic Focus: {target_audience.get("geographic_focus", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Target Audience", target_audience_content), unsafe_allow_html=True) + + # Content Type Section + content_type = analysis_results.get("content_type", {}) + content_type_content = f""" +
    +
  • Primary Type: {content_type.get("primary_type", "N/A")}
  • +
  • Secondary Types: {', '.join(content_type.get("secondary_types", ["N/A"]))}
  • +
  • Purpose: {content_type.get("purpose", "N/A")}
  • +
  • Call to Action: {content_type.get("call_to_action", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Content Type", content_type_content), unsafe_allow_html=True) + + # Recommended Settings Section + recommended = analysis_results.get("recommended_settings", {}) + recommended_content = f""" +
    +
  • Writing Tone: {recommended.get("writing_tone", "N/A")}
  • +
  • Target Audience: {recommended.get("target_audience", "N/A")}
  • +
  • Content Type: {recommended.get("content_type", "N/A")}
  • +
  • Creativity Level: {recommended.get("creativity_level", "N/A")}
  • +
  • Geographic Location: {recommended.get("geographic_location", "N/A")}
  • +
+ """ + st.markdown(get_analysis_section("Recommended Settings", recommended_content), unsafe_allow_html=True) + + except Exception as e: + logger.error(f"Error displaying style analysis: {str(e)}") + st.error(f"Error displaying analysis results: {str(e)}") + +def render_test_config_settings(): + """Render the test configuration settings page.""" + try: + logger.info("Starting to render test configuration settings") + + # Add back button at the top + col1, col2 = st.columns([1, 3]) + with col1: + if st.button("← Back to Personalization Setup"): + logger.info("User clicked back to personalization setup") + # Set session state for navigation + st.session_state.current_step = 4 + st.session_state.next_step = "personalization_setup" + # Navigate back to personalization setup + st.switch_page("pages/personalization_setup.py") + + # Title and description + st.title("🎨 Find Your Style with ALwrity") + st.markdown(get_glass_container( + "

Enter a website URL or provide content samples to analyze your writing style and get personalized recommendations.

" + ), unsafe_allow_html=True) + + # Create two columns for the layout + col1, col2 = st.columns([2, 1]) + + with col1: + # Website URL input + st.markdown("### Website URL") + url = st.text_input( + "Enter your website URL", + placeholder="https://example.com", + help="Provide your website URL to analyze your content style. Leave empty if you want to provide written samples instead." + ) + logger.debug(f"Website URL input value: {url}") + + # Alternative: Written samples + if not url: + st.markdown("### Written Samples") + st.markdown(get_info_section(""" +

No website URL? No problem! You can provide written samples of your content instead.

+

Share your best articles, blog posts, or any content that represents your writing style.

+ """), unsafe_allow_html=True) + samples = st.text_area( + "Paste your content samples here", + help="Paste 2-3 samples of your best content. This helps ALwrity understand your writing style." + ) + logger.debug(f"Sample text length: {len(samples) if samples else 0}") + + st.markdown('', unsafe_allow_html=True) + + # ALwrity Style button + st.markdown("
", unsafe_allow_html=True) + if st.button("🎨 ALwrity Style", use_container_width=True): + if url: + with st.status("Starting style analysis...", expanded=True) as status: + try: + logger.info(f"Starting style analysis for URL: {url}") + + # Step 1: Initialize crawler + status.update(label="Step 1/4: Initializing web crawler...", state="running") + crawler_service = AsyncWebCrawlerService() + + # Step 2: Crawl website + status.update(label="Step 2/4: Crawling website content...", state="running") + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + result = loop.run_until_complete(crawler_service.crawl_website(url)) + loop.close() + + if result.get('success', False): + content = result.get('content', {}) + + # Step 3: Initialize style analyzer + status.update(label="Step 3/4: Analyzing content style...", state="running") + style_analyzer = StyleAnalyzer() + + # Step 4: Perform style analysis + status.update(label="Step 4/4: Generating style recommendations...", state="running") + style_analysis = style_analyzer.analyze_content_style(content) + + if style_analysis.get('error'): + status.update(label="Analysis failed", state="error") + st.error(f"Style analysis failed: {style_analysis['error']}") + else: + status.update(label="Analysis complete!", state="complete") + # Display style analysis results + display_style_analysis(style_analysis) + + # Display original content in tabs + tab1, tab2, tab3 = st.tabs(["Content", "Metadata", "Links"]) + + with tab1: + st.markdown("### Main Content") + st.markdown(content.get('main_content', 'No content found')) + + with tab2: + st.markdown("### Metadata") + st.markdown(f""" + **Title:** {content.get('title', 'No title found')} + + **Description:** {content.get('description', 'No description found')} + + **Meta Tags:** + {content.get('meta_tags', {})} + """) + + with tab3: + st.markdown("### Links") + for link in content.get('links', []): + st.markdown(f"- [{link.get('text', '')}]({link.get('href', '')})") + + else: + status.update(label="Crawling failed", state="error") + st.error(f"Failed to analyze website: {result.get('error', 'Unknown error')}") + + except Exception as e: + logger.error(f"Error during style analysis: {str(e)}") + st.error(f"Analysis failed: {str(e)}") + elif samples: + with st.spinner("Analyzing content samples..."): + try: + # TODO: Implement sample text analysis + st.info("Sample text analysis coming soon!") + except Exception as e: + logger.error(f"Error analyzing samples: {str(e)}") + st.error(f"Analysis failed: {str(e)}") + else: + st.warning("Please provide either a website URL or content samples") + + with col2: + st.markdown(""" + ### How ALwrity Discovers Your Style + + **AI-Powered Style Analysis** + + ALwrity AI analyzes your existing content to understand your unique writing style and preferences. This helps us generate content that matches your voice perfectly. + + **Step 1: Content Analysis** + + We'll analyze your website content or written samples to understand: + + - Writing tone and voice + - Vocabulary and language style + - Content structure and formatting + - Target audience and engagement style + + **Step 2: Style Recommendations** + + Based on the analysis, we'll provide: + + - Personalized writing guidelines + - Content structure templates + - Tone and voice recommendations + - Audience engagement strategies + + **Step 3: Content Generation** + + Finally, we'll use these insights to: + + - Generate content that matches your style + - Maintain consistency across all content + - Optimize for your target audience + - Ensure brand voice alignment + """) + + except Exception as e: + logger.error(f"Error in render_test_config_settings: {str(e)}") + st.error(f"An error occurred: {str(e)}") + +if __name__ == "__main__": + logger.info("Starting test config settings page") + render_test_config_settings() + logger.info("Test config settings page rendered successfully") \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 11b8c695..4760f08b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,47 +1,48 @@ -requests -typer[all] -rich -python-dotenv -loguru -openai -crewai[tools] -crewai_tools -python-docx -PyPDF2 -google.generativeai -anthropic -tenacity -tavily-python -tabulate -metaphor_python -exa_py -GoogleNews -langchain-google-genai -clint -scikit-learn -matplotlib -plotly -textstat -requests_html -pytrends -pytube -pytubefix -readability -wordcloud -prompt_toolkit -ipython -html2image -lxml_html_clean -streamlit -yfinance -pandas_ta -firecrawl-py -gTTS -validators -streamlit-mic-recorder -tinify -cloudscraper -xmlschema -moviepy -googlesearch-python -streamlit-aggrid +requests>=2.31.0 +typer>=0.9.0 +rich>=13.7.0 +python-dotenv>=1.0.0 +beautifulsoup4==4.12.2 +aiohttp>=3.11.11 +openai>=1.3.7 +PyPDF2>=3.0.1 +google-generativeai<0.9.0,>=0.8.0 +anthropic>=0.18.1 +tenacity>=8.2.3 +tabulate>=0.9.0 +metaphor-python==0.1.16 +exa_py>=1.9.1 +GoogleNews>=1.6.15 +langchain-google-genai>=2.0.10 +clint>=0.5.1 +numpy>=1.22.4,<2.0.0 +pandas>=2.0.3 +scikit-learn>=1.3.2 +matplotlib>=3.8.2 +plotly>=5.18.0 +textstat>=0.7.3 +requests_html>=0.10.0 +pytrends>=4.9.0 +pytube>=15.0.0 +pytubefix>=8.12.2 +readability>=0.3.2 +wordcloud>=1.9.3 +prompt_toolkit>=3.0.43 +html2image>=2.0.5 +lxml[html_clean]>=5.3.0 +lxml_html_clean>=0.4.1 +streamlit>=1.29.0 +yfinance>=0.2.36 +pandas_ta>=0.3.14b0 +firecrawl-py>=1.14.1 +gTTS>=2.5.1 +streamlit-mic-recorder>=0.0.8 +streamlit-aggrid>=1.1.2 +crawl4ai>=0.5.0 +playwright>=1.51.0 +loguru==0.7.2 +tavily-python>=0.2.8 +tinify>=1.6.0 +validators>=0.20.0 +python-whois==0.9.5 +dnspython \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..7ab576a6 --- /dev/null +++ b/setup.py @@ -0,0 +1,157 @@ +import sys +import os +import platform +import subprocess +import shutil +import datetime +import socket +import traceback +import pkg_resources +from setuptools import setup, find_packages + +def log_error(error_type, details): + """ + Logs installation errors to a file with timestamp and system information. + """ + log_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'install_errors.log') + timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + system_info = { + "OS": platform.system(), + "OS Version": platform.version(), + "Architecture": platform.machine(), + "Python Version": f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}", + "Hostname": socket.gethostname() + } + + log_entry = f"[{timestamp}] ERROR: {error_type}\n" + log_entry += f"Details: {details}\n" + log_entry += "System Information:\n" + for key, value in system_info.items(): + log_entry += f" {key}: {value}\n" + log_entry += "-" * 80 + "\n" + + with open(log_file, 'a') as f: + f.write(log_entry) + + print(f"Error logged to {log_file}") + +def check_system_dependencies(): + """Check for required system dependencies.""" + print("Checking system dependencies...") + all_checks_passed = True + + # Check Python version + print("Checking Python version...") + if sys.version_info < (3, 11) or sys.version_info >= (3, 12): + error_msg = "ALwrity requires Python 3.11.x" + print(f"Error: {error_msg}") + log_error("Python Version Check", error_msg) + all_checks_passed = False + else: + print(f"βœ“ Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro} found") + + # Check Visual C++ Build Tools on Windows + if platform.system() == "Windows": + print("Checking for Visual C++ Build Tools...") + if not shutil.which("cl"): + error_msg = "Visual C++ Build Tools not found" + print("❌ Visual C++ Build Tools not found") + print("\nTo install Visual C++ Build Tools, run in an administrative PowerShell:") + print("winget install Microsoft.VisualStudio.2022.BuildTools --silent --override \"--wait --quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended\"") + log_error("Visual C++ Build Tools Check", error_msg) + all_checks_passed = False + else: + print("βœ“ Visual C++ Build Tools found") + + # Check Rust compiler + print("Checking for Rust compiler...") + if not shutil.which("rustc"): + error_msg = "Rust compiler not found" + print("❌ Rust compiler not found") + if platform.system() == "Windows": + print("\nTo install Rust on Windows, run:") + print("Invoke-WebRequest -Uri https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe -OutFile rustup-init.exe") + print("./rustup-init.exe -y") + else: + print("\nTo install Rust on Linux/macOS, run:") + print("curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y") + print("source $HOME/.cargo/env") + log_error("Rust Compiler Check", error_msg) + all_checks_passed = False + else: + print("βœ“ Rust compiler found") + + return all_checks_passed + +def get_requirements(): + """Read requirements from requirements.txt.""" + with open('requirements.txt') as f: + requirements = [line.strip() for line in f if line.strip() and not line.startswith('#')] + return requirements + +def install_requirements(requirements): + """Install each requirement, showing progress.""" + print("Installing required packages...") + for requirement in requirements: + try: + print(f"Installing {requirement}...") + subprocess.check_call([sys.executable, "-m", "pip", "install", requirement]) + except subprocess.CalledProcessError as e: + error_msg = f"Error installing {requirement}: {e}" + print(error_msg) + log_error("Package Installation", error_msg) + sys.exit(1) + +def main(): + """Main installation function.""" + print("ALwrity Installation\n") + + # Check system dependencies + if not check_system_dependencies(): + print("\nPlease install the missing dependencies and try again.") + print("Check the install_errors.log file for detailed error information.") + sys.exit(1) + + # Create virtual environment if it doesn't exist + if not os.path.exists("venv"): + print("\nCreating virtual environment...") + try: + subprocess.check_call([sys.executable, "-m", "venv", "venv"]) + except subprocess.CalledProcessError as e: + error_msg = f"Failed to create virtual environment: {e}" + print(error_msg) + log_error("Virtual Environment Creation", error_msg) + sys.exit(1) + + # Install requirements + requirements = get_requirements() + install_requirements(requirements) + + # Run setup + setup( + name="alwrity", + version="1.0.0", + description="AI-powered content writing assistant", + author="Your Name", + packages=find_packages(), + python_requires=">=3.11, <3.12", + install_requires=requirements, + entry_points={ + 'console_scripts': [ + 'alwrity=alwrity:main', + ], + }, + ) + + print("\nInstallation complete! To start ALwrity:") + print("1. Activate the virtual environment:") + if platform.system() == "Windows": + print(" .\\venv\\Scripts\\activate") + else: + print(" source venv/bin/activate") + print("2. Run the application:") + print(" streamlit run alwrity.py") + +if __name__ == '__main__': + main() \ No newline at end of file From d6c0bc11ae9fd26ecbbb5b739fcf4bda884bc727 Mon Sep 17 00:00:00 2001 From: ajaysi Date: Wed, 2 Apr 2025 22:41:25 +0530 Subject: [PATCH 2/7] Google Search Grounded results, Content Calendar Ideator, Competitor Analysis, and Keyword Researcher --- .gitignore | 4 + alwrity.py | 147 +++-- .../.gpt_online_researcher.py.swp | Bin 16384 -> 0 bytes .../gemini_grounding_search_streamlit.py | 155 +++++ lib/utils/alwrity_sidebar.py | 244 -------- .../components/personalization_setup.py | 19 +- lib/utils/settings_page.py | 438 ++++++++++++++ {pages => lib/utils}/style_utils.py | 160 ++++-- {pages => lib/utils}/test_config_settings.py | 4 +- lib/utils/ui_setup.py | 90 ++- lib/workspace/AskAlwrity-min.ico | Bin 0 -> 80525 bytes lib/workspace/alwrity_ui_styling.css | 541 ++++++++++++++++-- lib/workspace/structured_data_seo.mp4 | Bin 543527 -> 0 bytes pages/ai_research_setup_page.py | 50 -- pages/personalization_setup.py | 84 --- requirements.txt | 2 +- 16 files changed, 1408 insertions(+), 530 deletions(-) delete mode 100644 lib/ai_web_researcher/.gpt_online_researcher.py.swp create mode 100644 lib/ai_web_researcher/gemini_grounding_search_streamlit.py delete mode 100644 lib/utils/alwrity_sidebar.py create mode 100644 lib/utils/settings_page.py rename {pages => lib/utils}/style_utils.py (64%) rename {pages => lib/utils}/test_config_settings.py (99%) create mode 100644 lib/workspace/AskAlwrity-min.ico delete mode 100644 lib/workspace/structured_data_seo.mp4 delete mode 100644 pages/ai_research_setup_page.py delete mode 100644 pages/personalization_setup.py diff --git a/.gitignore b/.gitignore index c20efe30..b6b32d43 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,10 @@ __pycache__ *.pywpz *.pywpzp +lib/workspace/alwrity_web_research/* +lib/workspace/alwrity_web_research_cache/* +web_research_report* + .swp .swo .swn diff --git a/alwrity.py b/alwrity.py index b6ffb3fd..e55f793b 100644 --- a/alwrity.py +++ b/alwrity.py @@ -1,11 +1,16 @@ import streamlit as st +import os +import json +import base64 +import logging +from datetime import datetime # Set page config - must be the first Streamlit command st.set_page_config( page_title="AI Writer - Content Generation Platform", page_icon="✍️", layout="wide", - initial_sidebar_state="collapsed", # Start with collapsed sidebar + initial_sidebar_state="expanded", # Changed from collapsed to expanded menu_items={ 'Get Help': None, 'Report a bug': None, @@ -13,27 +18,32 @@ st.set_page_config( } ) -# Add CSS to hide sidebar during setup -st.markdown(""" +# Load and apply custom CSS +with open('lib/workspace/alwrity_ui_styling.css', 'r') as f: + css = f.read() + +st.markdown(f""" """, unsafe_allow_html=True) -import os -import json -import base64 -import logging -from datetime import datetime - # Configure logging logging.basicConfig( level=logging.DEBUG, @@ -45,18 +55,13 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -from lib.utils.config_manager import save_config from lib.utils.ui_setup import setup_ui -from lib.utils.alwrity_sidebar import sidebar_configuration from lib.utils.api_key_manager.api_key_manager import APIKeyManager, render from lib.utils.api_key_manager.validation import check_all_api_keys from dotenv import load_dotenv -from lib.utils.content_generators import ai_writers, content_planning_tools, blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis -from lib.utils.seo_tools import ai_seo_tools -from lib.utils.ui_setup import setup_ui, setup_tabs -from lib.utils.alwrity_utils import ai_agents_team, ai_social_writer -from lib.utils.file_processor import load_image, read_prompts, write_prompts -from lib.utils.voice_processing import record_voice +from lib.utils.content_generators import blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis +from lib.utils.ui_setup import setup_ui, setup_alwrity_ui + def process_folder_for_rag(folder_path): """Placeholder for the process_folder_for_rag function.""" @@ -94,36 +99,110 @@ def main(): # Check API keys and show setup if needed if not check_all_api_keys(api_key_manager): logger.info("API keys not verified") + # Add CSS to hide sidebar during setup + st.markdown(""" + + """, unsafe_allow_html=True) render(api_key_manager) return else: logger.info("All API keys verified") - # Remove the CSS that hides the sidebar + # Remove the CSS that hides the sidebar and ensure it's expanded st.markdown(""" + + """, unsafe_allow_html=True) + + # Set session state to ensure sidebar stays expanded + if 'sidebar_expanded' not in st.session_state: + st.session_state.sidebar_expanded = True + + # Force sidebar state + st.sidebar.markdown(""" + """, unsafe_allow_html=True) - - setup_environment_paths() - sidebar_configuration() - setup_tabs() + + setup_alwrity_ui() def setup_environment_paths(): diff --git a/lib/ai_web_researcher/.gpt_online_researcher.py.swp b/lib/ai_web_researcher/.gpt_online_researcher.py.swp deleted file mode 100644 index 1dd76695784a03bcec06f880faafe02f360a85f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/lib/ai_web_researcher/gemini_grounding_search_streamlit.py b/lib/ai_web_researcher/gemini_grounding_search_streamlit.py new file mode 100644 index 00000000..b3535c84 --- /dev/null +++ b/lib/ai_web_researcher/gemini_grounding_search_streamlit.py @@ -0,0 +1,155 @@ +import os +import streamlit as st +from google import genai +from google.genai.types import Tool, GenerateContentConfig, GoogleSearch + +# Set page config +st.set_page_config( + page_title="Gemini Grounding Search", + page_icon="πŸ”", + layout="wide" +) + +# Custom CSS for styling +st.markdown(""" + +""", unsafe_allow_html=True) + +# Title +st.title("Gemini Grounding Search") + +# Initialize Gemini client +if 'GEMINI_API_KEY' not in os.environ: + api_key = st.text_input("Enter your Gemini API Key:", type="password") + if api_key: + os.environ['GEMINI_API_KEY'] = api_key + +# Search input +search_query = st.text_input("Enter your search query:", "When is the next total solar eclipse in the United States?") + +if st.button("Search"): + if 'GEMINI_API_KEY' not in os.environ: + st.error("Please enter your Gemini API Key first!") + else: + try: + client = genai.Client(api_key=os.environ['GEMINI_API_KEY']) + model_id = "gemini-2.0-flash" + + google_search_tool = Tool( + google_search = GoogleSearch() + ) + + with st.spinner("Searching..."): + response = client.models.generate_content( + model=model_id, + contents=search_query, + config=GenerateContentConfig( + tools=[google_search_tool], + response_modalities=["TEXT"], + ) + ) + + # Display search results header + st.header("Search Results") + + # Display the response text + if response.candidates[0].content.parts: + st.markdown('
' + + response.candidates[0].content.parts[0].text.replace('\n', '
') + + '
', + unsafe_allow_html=True) + + # Display the grounding metadata + if hasattr(response.candidates[0], 'grounding_metadata') and \ + hasattr(response.candidates[0].grounding_metadata, 'search_entry_point') and \ + hasattr(response.candidates[0].grounding_metadata.search_entry_point, 'rendered_content'): + + st.header("Related Searches") + rendered_content = response.candidates[0].grounding_metadata.search_entry_point.rendered_content + st.markdown(rendered_content, unsafe_allow_html=True) + + except Exception as e: + st.error(f"An error occurred: {str(e)}") \ No newline at end of file diff --git a/lib/utils/alwrity_sidebar.py b/lib/utils/alwrity_sidebar.py deleted file mode 100644 index 8665bead..00000000 --- a/lib/utils/alwrity_sidebar.py +++ /dev/null @@ -1,244 +0,0 @@ -import streamlit as st -import logging - -from .config_manager import save_config - -# Configure logging -logging.basicConfig( - level=logging.DEBUG, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', - handlers=[ - logging.StreamHandler(), # Output to console - #logging.FileHandler('alwrity.log') # Output to file - ] -) -logger = logging.getLogger(__name__) - -# Sidebar configuration -def sidebar_configuration(): - """Configure the sidebar with all necessary options.""" - try: - # Configure sidebar styling - st.sidebar.markdown(""" - - """, unsafe_allow_html=True) - - logger.info("Initializing sidebar configuration") - st.sidebar.title("πŸ› οΈ Personalization & Settings πŸ—οΈ") - - with st.sidebar.expander("**πŸ‘· Content Personalization**"): - logger.debug("Setting up content personalization options") - blog_length = st.text_input("**Content Length (words)**", value="2000", - help="Approximate word count for blogs. Note: Actual length may vary based on GPT provider and max token count.") - - blog_tone_options = ["Casual", "Professional", "How-to", "Beginner", "Research", "Programming", "Social Media", "Customize"] - blog_tone = st.selectbox("**Content Tone**", - options=blog_tone_options, - help="Select the desired tone for the blog content.") - logger.debug(f"Selected blog tone: {blog_tone}") - - if blog_tone == "Customize": - custom_tone = st.text_input("Enter the tone of your content", help="Specify the tone of your content.") - if custom_tone: - blog_tone = custom_tone - logger.debug(f"Custom tone set to: {custom_tone}") - else: - logger.warning("Custom tone not specified") - st.warning("Please specify the tone of your content.") - - blog_demographic_options = ["Professional", "Gen-Z", "Tech-savvy", "Student", "Digital Marketing", "Customize"] - - blog_demographic = st.selectbox("**Target Audience**", - options=blog_demographic_options, - help="Select the primary audience for the blog content.") - if blog_demographic == "Customize": - custom_demographic = st.text_input("Enter your target audience", - help="Specify your target audience.", - placeholder="Eg. Domain expert, Content creator, Financial expert etc..") - if custom_demographic: - blog_demographic = custom_demographic - else: - st.warning("Please specify your target audience.") - - blog_type = st.selectbox("**Content Type**", - options=["Informational", "Commercial", "Company", "News", "Finance", "Competitor", "Programming", "Scholar"], - help="Select the category that best describes the blog content.") - - blog_language = st.selectbox("**Content Language**", - options=["English", "Spanish", "German", "Chinese", "Arabic", "Nepali", "Hindi", "Hindustani", "Customize"], - help="Select the language in which the blog will be written.") - if blog_language == "Customize": - custom_lang = st.text_input("Enter the language of your choice", help="Specify the content language.") - if custom_lang: - blog_language = custom_lang - else: - st.warning("Please specify the language of your content.") - - blog_output_format = st.selectbox("**Content Output Format**", - options=["markdown", "HTML", "plaintext"], - help="Select the format for the blog output.") - - with st.sidebar.expander("**🩻 Images Personalization**"): - image_generation_model = st.selectbox("**Image Generation Model**", - options=["stable-diffusion", "dalle2", "dalle3"], - help="Select the model to generate images for the blog.") - number_of_blog_images = st.number_input("**Number of Blog Images**", value=1, help="Specify the number of images to include in the blog.") - - with st.sidebar.expander("**πŸ€– LLM Personalization**"): - gpt_provider = st.selectbox("**GPT Provider**", - options=["google", "openai", "minstral"], - help="Select the provider for the GPT model.") - model = st.text_input("**Model**", value="gemini-1.5-flash-latest", help="Specify the model version to use from the selected provider.") - temperature = st.slider( - "Temperature", - min_value=0.1, - max_value=1.0, - value=0.7, - step=0.1, - format="%.1f", - help="""Temperature controls the 'creativity' or randomness of the text generated by GPT. - Greater determinism with higher values indicating more randomness.""" - ) - - top_p = st.slider( - "Top-p", - min_value=0.0, - max_value=1.0, - value=0.9, - step=0.1, - format="%.1f", - help="Top-p sampling controls the level of diversity in the generated text." - ) - - # Selectbox for max tokens - max_tokens_options = [500, 1000, 2000, 4000, 16000, 32000, 64000] - max_tokens = st.selectbox( - "Max Tokens", - options=max_tokens_options, - index=max_tokens_options.index(4000), - help="Max tokens determine the maximum length of the output sequence generated by a model." - ) - n = st.number_input("N", - value=1, - min_value=1, - max_value=10, - help="Defines the number of words or characters grouped together in a sequence when analyzing text.") - frequency_penalty = st.slider( - "Frequency Penalty", - min_value=0.0, - max_value=2.0, - value=1.0, - step=0.1, - format="%.1f", - help="Influences word selection during text generation, promoting diversity with higher values." - ) - - presence_penalty = st.slider( - "Presence Penalty", - min_value=0.0, - max_value=2.0, - value=1.0, - step=0.1, - format="%.1f", - help="Encourages the use of diverse words by discouraging repetition." - ) - - with st.sidebar.expander("**πŸ•΅οΈ Search Engine Personalization**"): - geographic_location = st.selectbox("**Geographic Location**", - options=["us", "in", "fr", "cn"], - help="Select the geographic location for tailoring search results.") - search_language = st.selectbox("**Search Language**", - options=["en", "zn-cn", "de", "hi"], - help="Select the language for the search results.") - number_of_results = st.number_input("**Number of Results**", - value=10, - max_value=20, - min_value=1, - help="Specify the number of search results to retrieve.") - time_range = st.selectbox("**Time Range**", - options=["anytime", "past day", "past week", "past month", "past year"], - help="Select the time range for filtering search results.") - include_domains = st.text_input("**Include Domains**", value="", - help="List specific domains to include in search results. Leave blank to include all domains.") - similar_url = st.text_input("**Similar URL**", value="", help="Provide a URL to find similar results. Leave blank if not needed.") - - # Storing collected inputs in a dictionary - config = { - "Blog Content Characteristics": { - "Blog Length": blog_length, - "Blog Tone": blog_tone, - "Blog Demographic": blog_demographic, - "Blog Type": blog_type, - "Blog Language": blog_language, - "Blog Output Format": blog_output_format - }, - "Blog Images Details": { - "Image Generation Model": image_generation_model, - "Number of Blog Images": number_of_blog_images - }, - "LLM Options": { - "GPT Provider": gpt_provider, - "Model": model, - "Temperature": temperature, - "Top-p": top_p, - "Max Tokens": max_tokens, - "N": n, - "Frequency Penalty": frequency_penalty, - "Presence Penalty": presence_penalty - }, - "Search Engine Parameters": { - "Geographic Location": geographic_location, - "Search Language": search_language, - "Number of Results": number_of_results, - "Time Range": time_range, - "Include Domains": include_domains, - "Similar URL": similar_url - } - } - - # Writing the configuration to a file whenever a change is made - save_config(config) - except Exception as e: - logger.error(f"Error configuring sidebar: {str(e)}") - st.error(f"Error configuring sidebar: {str(e)}") \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/personalization_setup.py b/lib/utils/api_key_manager/components/personalization_setup.py index f4f773c4..cd61fb15 100644 --- a/lib/utils/api_key_manager/components/personalization_setup.py +++ b/lib/utils/api_key_manager/components/personalization_setup.py @@ -8,11 +8,13 @@ from typing import Dict, Any from ..manager import APIKeyManager from ....web_crawlers.async_web_crawler import AsyncWebCrawlerService from ....personalization.style_analyzer import StyleAnalyzer -from pages.style_utils import ( - get_analysis_section, +from lib.utils.style_utils import ( + get_test_config_styles, get_glass_container, get_info_section, - get_example_box + get_example_box, + get_analysis_section, + get_style_guide_html ) from .base import render_navigation_buttons from .alwrity_integrations import render_alwrity_integrations @@ -618,7 +620,7 @@ def render_personalization_setup(api_key_manager: APIKeyManager) -> Dict[str, An st.warning("Please provide either a website URL or content samples") with col2: - st.markdown(""" + st.markdown(get_glass_container(""" ### How ALwrity Discovers Your Style **AI-Powered Style Analysis** @@ -651,10 +653,15 @@ def render_personalization_setup(api_key_manager: APIKeyManager) -> Dict[str, An - Maintain consistency across all content - Optimize for your target audience - Ensure brand voice alignment - """) + """)) # API Configuration Form - st.markdown("### API Configuration") + st.markdown(get_glass_container(""" + ### API Configuration + + Configure your API settings for optimal content generation. + """)) + with st.form("ai_config_form"): # API Keys st.text_input("OpenAI API Key", type="password", key="openai_key") diff --git a/lib/utils/settings_page.py b/lib/utils/settings_page.py new file mode 100644 index 00000000..74f2b9a8 --- /dev/null +++ b/lib/utils/settings_page.py @@ -0,0 +1,438 @@ +import streamlit as st +from loguru import logger +import asyncio +from lib.web_crawlers.async_web_crawler import AsyncWebCrawlerService +from lib.personalization.style_analyzer import StyleAnalyzer +import sys + +# Configure logger +logger.remove() # Remove default handler +logger.add( + "logs/settings_page.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", + backtrace=True, + diagnose=True +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +def display_style_analysis(analysis_results: dict): + """Display the style analysis results in a structured format.""" + try: + # Writing Style Section + st.markdown("### 🎨 Writing Style Analysis") + writing_style = analysis_results.get("writing_style", {}) + writing_style_content = f""" +
    +
  • Tone: {writing_style.get("tone", "N/A")}
  • +
  • Voice: {writing_style.get("voice", "N/A")}
  • +
  • Complexity: {writing_style.get("complexity", "N/A")}
  • +
  • Engagement Level: {writing_style.get("engagement_level", "N/A")}
  • +
+ """ + st.markdown(writing_style_content, unsafe_allow_html=True) + + # Content Characteristics Section + content_chars = analysis_results.get("content_characteristics", {}) + content_chars_content = f""" +
    +
  • Sentence Structure: {content_chars.get("sentence_structure", "N/A")}
  • +
  • Vocabulary Level: {content_chars.get("vocabulary_level", "N/A")}
  • +
  • Paragraph Organization: {content_chars.get("paragraph_organization", "N/A")}
  • +
  • Content Flow: {content_chars.get("content_flow", "N/A")}
  • +
+ """ + st.markdown(content_chars_content, unsafe_allow_html=True) + + # Target Audience Section + target_audience = analysis_results.get("target_audience", {}) + target_audience_content = f""" +
    +
  • Demographics: {', '.join(target_audience.get("demographics", ["N/A"]))}
  • +
  • Expertise Level: {target_audience.get("expertise_level", "N/A")}
  • +
  • Industry Focus: {target_audience.get("industry_focus", "N/A")}
  • +
  • Geographic Focus: {target_audience.get("geographic_focus", "N/A")}
  • +
+ """ + st.markdown(target_audience_content, unsafe_allow_html=True) + + # Content Type Section + content_type = analysis_results.get("content_type", {}) + content_type_content = f""" +
    +
  • Primary Type: {content_type.get("primary_type", "N/A")}
  • +
  • Secondary Types: {', '.join(content_type.get("secondary_types", ["N/A"]))}
  • +
  • Purpose: {content_type.get("purpose", "N/A")}
  • +
  • Call to Action: {content_type.get("call_to_action", "N/A")}
  • +
+ """ + st.markdown(content_type_content, unsafe_allow_html=True) + + # Recommended Settings Section + recommended = analysis_results.get("recommended_settings", {}) + recommended_content = f""" +
    +
  • Writing Tone: {recommended.get("writing_tone", "N/A")}
  • +
  • Target Audience: {recommended.get("target_audience", "N/A")}
  • +
  • Content Type: {recommended.get("content_type", "N/A")}
  • +
  • Creativity Level: {recommended.get("creativity_level", "N/A")}
  • +
  • Geographic Location: {recommended.get("geographic_location", "N/A")}
  • +
+ """ + st.markdown(recommended_content, unsafe_allow_html=True) + + except Exception as e: + logger.error(f"Error displaying style analysis: {str(e)}") + st.error(f"Error displaying analysis results: {str(e)}") + +def render_settings_page(): + """Renders the settings page with all configuration options in tabs""" + st.title("πŸ› οΈ Settings & Configuration") + + # Create tabs for different settings categories + tabs = st.tabs([ + "πŸ‘· Content", + "🩻 Images", + "πŸ€– LLM", + "πŸ•΅οΈ Search", + "🎨 AI Personalization" + ]) + + # Content Settings Tab + with tabs[0]: + st.header("Content Personalization") + blog_length = st.text_input( + "**Content Length (words)**", + value="2000", + key="settings_blog_length", + help="Approximate word count for blogs. Note: Actual length may vary based on GPT provider and max token count." + ) + + blog_tone_options = ["Casual", "Professional", "How-to", "Beginner", "Research", "Programming", "Social Media", "Customize"] + blog_tone = st.selectbox( + "**Content Tone**", + options=blog_tone_options, + key="settings_blog_tone", + help="Select the desired tone for the blog content." + ) + + if blog_tone == "Customize": + custom_tone = st.text_input( + "Enter the tone of your content", + key="settings_custom_tone", + help="Specify the tone of your content." + ) + if custom_tone: + blog_tone = custom_tone + else: + st.warning("Please specify the tone of your content.") + + blog_demographic_options = ["Professional", "Gen-Z", "Tech-savvy", "Student", "Digital Marketing", "Customize"] + blog_demographic = st.selectbox( + "**Target Audience**", + options=blog_demographic_options, + key="settings_blog_demographic", + help="Select the primary audience for the blog content." + ) + + blog_type = st.selectbox( + "**Content Type**", + options=["Informational", "Commercial", "Company", "News", "Finance", "Competitor", "Programming", "Scholar"], + key="settings_blog_type", + help="Select the category that best describes the blog content." + ) + + blog_language = st.selectbox( + "**Content Language**", + options=["English", "Spanish", "German", "Chinese", "Arabic", "Nepali", "Hindi", "Hindustani", "Customize"], + key="settings_blog_language", + help="Select the language in which the blog will be written." + ) + + blog_output_format = st.selectbox( + "**Content Output Format**", + options=["markdown", "HTML", "plaintext"], + key="settings_blog_output_format", + help="Select the format for the blog output." + ) + + # Images Settings Tab + with tabs[1]: + st.header("Images Personalization") + image_generation_model = st.selectbox( + "**Image Generation Model**", + options=["stable-diffusion", "dalle2", "dalle3"], + key="settings_image_model", + help="Select the model to generate images for the blog." + ) + + number_of_blog_images = st.number_input( + "**Number of Blog Images**", + value=1, + min_value=1, + max_value=10, + key="settings_number_of_images", + help="Specify the number of images to include in the blog." + ) + + # LLM Settings Tab + with tabs[2]: + st.header("LLM Personalization") + gpt_provider = st.selectbox( + "**GPT Provider**", + options=["google", "openai", "minstral"], + key="settings_gpt_provider", + help="Select the provider for the GPT model." + ) + + model = st.text_input( + "**Model**", + value="gemini-1.5-flash-latest", + key="settings_model", + help="Specify the model version to use from the selected provider." + ) + + col1, col2 = st.columns(2) + with col1: + temperature = st.slider( + "Temperature", + min_value=0.1, + max_value=1.0, + value=0.7, + step=0.1, + key="settings_temperature", + help="Controls the creativity level of the generated text." + ) + + max_tokens = st.selectbox( + "Max Tokens", + options=[500, 1000, 2000, 4000, 16000, 32000, 64000], + index=3, + key="settings_max_tokens", + help="Maximum length of the output sequence." + ) + + with col2: + top_p = st.slider( + "Top-p", + min_value=0.0, + max_value=1.0, + value=0.9, + step=0.1, + key="settings_top_p", + help="Controls diversity in text generation." + ) + + frequency_penalty = st.slider( + "Frequency Penalty", + min_value=0.0, + max_value=2.0, + value=1.0, + step=0.1, + key="settings_frequency_penalty", + help="Reduces word repetition in output." + ) + + # Search Settings Tab + with tabs[3]: + st.header("Search Engine Personalization") + geographic_location = st.selectbox( + "**Geographic Location**", + options=["us", "in", "fr", "cn"], + key="settings_geographic_location", + help="Select the geographic location for tailoring search results." + ) + + search_language = st.selectbox( + "**Search Language**", + options=["en", "zn-cn", "de", "hi"], + key="settings_search_language", + help="Select the language for the search results." + ) + + number_of_results = st.number_input( + "**Number of Results**", + value=10, + min_value=1, + max_value=20, + key="settings_number_of_results", + help="Specify the number of search results to retrieve." + ) + + time_range = st.selectbox( + "**Time Range**", + options=["anytime", "past day", "past week", "past month", "past year"], + key="settings_time_range", + help="Select the time range for filtering search results." + ) + + include_domains = st.text_input( + "**Include Domains**", + value="", + key="settings_include_domains", + help="List specific domains to include in search results (comma-separated)." + ) + + similar_url = st.text_input( + "**Similar URL**", + value="", + key="settings_similar_url", + help="Provide a URL to find similar results." + ) + + # AI Personalization Tab + with tabs[4]: + st.header("🎨 AI Style Analysis") + st.markdown(""" +
+

Enter a website URL or provide content samples to analyze your writing style and get personalized recommendations.

+
+ """, unsafe_allow_html=True) + + # Create two columns for the layout + col1, col2 = st.columns([2, 1]) + + with col1: + # Website URL input + st.markdown("### Website URL") + url = st.text_input( + "Enter your website URL", + placeholder="https://example.com", + key="settings_website_url", + help="Provide your website URL to analyze your content style. Leave empty if you want to provide written samples instead." + ) + + # Alternative: Written samples + if not url: + st.markdown("### Written Samples") + st.markdown(""" +
+

No website URL? No problem! You can provide written samples of your content instead.

+

Share your best articles, blog posts, or any content that represents your writing style.

+
+ """, unsafe_allow_html=True) + samples = st.text_area( + "Paste your content samples here", + key="settings_content_samples", + help="Paste 2-3 samples of your best content. This helps ALwrity understand your writing style." + ) + + # ALwrity Style button + st.markdown("
", unsafe_allow_html=True) + if st.button("🎨 Analyze Style", use_container_width=True, key="settings_analyze_style"): + if url: + with st.status("Starting style analysis...", expanded=True) as status: + try: + # Step 1: Initialize crawler + status.update(label="Step 1/4: Initializing web crawler...", state="running") + crawler_service = AsyncWebCrawlerService() + + # Step 2: Crawl website + status.update(label="Step 2/4: Crawling website content...", state="running") + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + result = loop.run_until_complete(crawler_service.crawl_website(url)) + loop.close() + + if result.get('success', False): + content = result.get('content', {}) + + # Step 3: Initialize style analyzer + status.update(label="Step 3/4: Analyzing content style...", state="running") + style_analyzer = StyleAnalyzer() + + # Step 4: Perform style analysis + status.update(label="Step 4/4: Generating style recommendations...", state="running") + style_analysis = style_analyzer.analyze_content_style(content) + + if style_analysis.get('error'): + status.update(label="Analysis failed", state="error") + st.error(f"Style analysis failed: {style_analysis['error']}") + else: + status.update(label="Analysis complete!", state="complete") + # Display style analysis results + display_style_analysis(style_analysis) + + # Display original content in tabs + tab1, tab2, tab3 = st.tabs(["Content", "Metadata", "Links"]) + + with tab1: + st.markdown("### Main Content") + st.markdown(content.get('main_content', 'No content found')) + + with tab2: + st.markdown("### Metadata") + st.markdown(f""" + **Title:** {content.get('title', 'No title found')} + + **Description:** {content.get('description', 'No description found')} + + **Meta Tags:** + {content.get('meta_tags', {})} + """) + + with tab3: + st.markdown("### Links") + for link in content.get('links', []): + st.markdown(f"- [{link.get('text', '')}]({link.get('href', '')})") + else: + status.update(label="Crawling failed", state="error") + st.error("Failed to crawl the website. Please check the URL and try again.") + except Exception as e: + status.update(label="Analysis failed", state="error") + st.error(f"An error occurred during analysis: {str(e)}") + elif samples: + with st.status("Starting style analysis...", expanded=True) as status: + try: + # Initialize style analyzer + status.update(label="Analyzing content style...", state="running") + style_analyzer = StyleAnalyzer() + + # Perform style analysis + style_analysis = style_analyzer.analyze_content_style({"main_content": samples}) + + if style_analysis.get('error'): + status.update(label="Analysis failed", state="error") + st.error(f"Style analysis failed: {style_analysis['error']}") + else: + status.update(label="Analysis complete!", state="complete") + # Display style analysis results + display_style_analysis(style_analysis) + except Exception as e: + status.update(label="Analysis failed", state="error") + st.error(f"An error occurred during analysis: {str(e)}") + else: + st.warning("Please provide either a website URL or content samples to analyze.") + + # Save Settings Button + if st.button("πŸ’Ύ Save Settings", type="primary", use_container_width=True, key="settings_save_button"): + # Save all settings to session state + st.session_state.update({ + 'blog_length': blog_length, + 'blog_tone': blog_tone, + 'blog_demographic': blog_demographic, + 'blog_type': blog_type, + 'blog_language': blog_language, + 'blog_output_format': blog_output_format, + 'image_generation_model': image_generation_model, + 'number_of_blog_images': number_of_blog_images, + 'gpt_provider': gpt_provider, + 'model': model, + 'temperature': temperature, + 'top_p': top_p, + 'max_tokens': max_tokens, + 'frequency_penalty': frequency_penalty, + 'geographic_location': geographic_location, + 'search_language': search_language, + 'number_of_results': number_of_results, + 'time_range': time_range, + 'include_domains': include_domains, + 'similar_url': similar_url + }) + st.success("βœ… Settings saved successfully!") \ No newline at end of file diff --git a/pages/style_utils.py b/lib/utils/style_utils.py similarity index 64% rename from pages/style_utils.py rename to lib/utils/style_utils.py index cf0345cc..049f5038 100644 --- a/pages/style_utils.py +++ b/lib/utils/style_utils.py @@ -267,79 +267,147 @@ def get_glassmorphic_styles() -> str: """ +def get_test_config_styles(): + """Returns CSS styles for the test configuration page.""" + return """ + + """ + def get_glass_container(content: str) -> str: - """Wrap content in a glass container.""" + """Returns HTML for a glass-morphism container.""" return f""" -
+
{content}
""" def get_info_section(content: str) -> str: - """Wrap content in an info section.""" + """Returns HTML for an info section.""" return f""" -
+
{content}
""" def get_example_box(content: str) -> str: - """Wrap content in an example box.""" + """Returns HTML for an example box.""" return f""" -
+
{content}
""" def get_analysis_section(title: str, content: str) -> str: - """Create an analysis section with title and content.""" + """Returns HTML for an analysis section.""" return f""" -
+

{title}

{content}
""" def get_style_guide_html() -> str: - """ - Get the style guide HTML content. - - Returns: - str: HTML content for the style guide section - """ + """Returns HTML for the style guide section.""" return """ - ### How ALwrity Discovers Your Style - - **AI-Powered Style Analysis** - - ALwrity AI analyzes your existing content to understand your unique writing style and preferences. This helps us generate content that matches your voice perfectly. - - **Step 1: Content Analysis** - - We'll analyze your website content or written samples to understand: - - - Writing tone and voice - - Vocabulary and language style - - Content structure and formatting - - Target audience and engagement style - - **Step 2: Style Recommendations** - - Based on the analysis, we'll provide: - - - Personalized writing guidelines - - Content structure templates - - Tone and voice recommendations - - Audience engagement strategies - - **Step 3: Content Generation** - - Finally, we'll use these insights to: - - - Generate content that matches your style - - Maintain consistency across all content - - Optimize for your target audience - - Ensure brand voice alignment +
+

Style Guide

+

This section will contain your style guide and brand guidelines.

+
""" def get_test_config_styles() -> str: diff --git a/pages/test_config_settings.py b/lib/utils/test_config_settings.py similarity index 99% rename from pages/test_config_settings.py rename to lib/utils/test_config_settings.py index 1ab9a2c8..316c0de9 100644 --- a/pages/test_config_settings.py +++ b/lib/utils/test_config_settings.py @@ -148,8 +148,8 @@ def render_test_config_settings(): # Set session state for navigation st.session_state.current_step = 4 st.session_state.next_step = "personalization_setup" - # Navigate back to personalization setup - st.switch_page("pages/personalization_setup.py") + # Navigate back to the main page where personalization setup is rendered + st.switch_page("alwrity.py") # Title and description st.title("🎨 Find Your Style with ALwrity") diff --git a/lib/utils/ui_setup.py b/lib/utils/ui_setup.py index fb54c9fd..e2b6d623 100644 --- a/lib/utils/ui_setup.py +++ b/lib/utils/ui_setup.py @@ -4,6 +4,7 @@ from lib.utils.file_processor import load_image from lib.utils.content_generators import content_planning_tools, ai_writers from lib.utils.alwrity_utils import ai_social_writer from lib.utils.seo_tools import ai_seo_tools +from lib.utils.settings_page import render_settings_page def setup_ui(): @@ -67,40 +68,73 @@ def setup_ui(): border-radius: 8px; color: white; } + + /* Sidebar navigation styling */ + .sidebar-nav { + padding: 1rem 0; + } + + .nav-button { + width: 100%; + text-align: left; + padding: 0.5rem 1rem; + background: transparent; + border: none; + color: #2c3e50; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + margin: 0.2rem 0; + border-radius: 4px; + } + + .nav-button:hover { + background: rgba(0,0,0,0.05); + padding-left: 1.5rem; + } + + .nav-button.active { + background: #1565C0; + color: white; + } """, unsafe_allow_html=True) - image_base64 = load_image("lib/workspace/alwrity_logo.png") - st.markdown(f""" -
- Alwrity Logo - Welcome to Alwrity! -
- """, unsafe_allow_html=True) +def setup_alwrity_ui(): + """Sets up the main navigation in the sidebar.""" + # Initialize session state for active tab if not exists + if 'active_tab' not in st.session_state: + st.session_state.active_tab = "Content Planning" -def setup_tabs(): - """Sets up the main tabs in the Streamlit app.""" - tab1, tab2, tab3, tab4, tab5, tab6 = st.tabs( - ["πŸ“…Content Planning", " πŸ“πŸ€–AI Writers", "πŸ€πŸ€–Agents Teams", "πŸ› οΈπŸ”AI SEO tools", "πŸ“±AI Social Tools", " πŸ’¬Ask Alwrity"]) - with tab1: - content_planning_tools() + # Define the navigation items with their icons and functions + nav_items = { + "Content Planning": ("πŸ“…", content_planning_tools), + "AI Writers": ("πŸ“", ai_writers), + "Agents Teams": ("🀝", lambda: st.subheader("Agents Teams - Coming Soon!")), + "AI SEO Tools": ("πŸ”", ai_seo_tools), + "AI Social Tools": ("πŸ“±", ai_social_writer), + "Ask Alwrity": ("πŸ’¬", lambda: ( + st.subheader("Chat with your Data, Chat with any Data.. COMING SOON !"), + st.markdown("Create a collection by uploading files (PDF, MD, CSV, etc), or crawl a data source (Websites, more sources coming soon."), + st.markdown("One can ask/chat, summarize and do semantic search over the uploaded data") + )), + "ALwrity Settings": ("βš™οΈ", render_settings_page) + } - with tab2: - ai_writers() + # Create sidebar navigation + st.sidebar.markdown("### ALwrity Options") + st.sidebar.markdown('', unsafe_allow_html=True) - with tab6: - st.subheader("Chat with your Data, Chat with any Data.. COMING SOON !") - st.markdown("Create a collection by uploading files (PDF, MD, CSV, etc), or crawl a data source (Websites, more sources coming soon.") - st.markdown("One can ask/chat, summarize and do semantic search over the uploaded data") - # alwrity_chat_docqa() + # Display content based on active tab + st.title(f"{nav_items[st.session_state.active_tab][0]} {st.session_state.active_tab}") + nav_items[st.session_state.active_tab][1]() \ No newline at end of file diff --git a/lib/workspace/AskAlwrity-min.ico b/lib/workspace/AskAlwrity-min.ico new file mode 100644 index 0000000000000000000000000000000000000000..abaf82cefdd4a1dd973604ac6b0eab04c68cf00f GIT binary patch literal 80525 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 v#V79HPZp;8aM=9SnL}@$ div { + background: #FFFFFF; +} + +.stTextInput > div > div > input { + background: #F7FAFC; + border: 2px solid #E2E8F0; + border-radius: 10px; + padding: 12px 16px; + font-size: 15px; + color: #2D3748; + transition: all 0.3s ease; +} + +.stTextInput > div > div > input:hover { + border-color: #CBD5E0; + background: #EDF2F7; +} + +.stTextInput > div > div > input:focus { + border-color: #C53030; + box-shadow: 0 0 0 3px rgba(197, 48, 48, 0.2); + background: #FFFFFF; +} + +/* Sidebar container styling - subtle modern gradient */ +[data-testid="stSidebar"] { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + color: #334155; + padding: 20px; + border-right: 1px solid rgba(148, 163, 184, 0.2); + box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05); + transition: width 0.3s ease-in-out !important; +} + +/* Collapsed sidebar styling */ +[data-testid="stSidebar"][aria-expanded="false"] { + margin-left: -21rem; +} + +/* Sidebar title styling - improved contrast */ +[data-testid="stSidebar"] h1, [data-testid="stSidebar"] h2, [data-testid="stSidebar"] h3 { + color: #1e293b; + font-weight: 600; + margin-bottom: 1.5rem; + letter-spacing: 0.02em; + border-bottom: 2px solid #e2e8f0; + padding-bottom: 0.75rem; +} + +/* Sidebar expander styling - modern and subtle */ +[data-testid="stSidebar"] .st-expander { + background: linear-gradient(135deg, #ffffff, #f8fafc); + border: 1px solid #e2e8f0; + border-radius: 8px; + margin-bottom: 1rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03); + overflow: hidden; +} + +[data-testid="stSidebar"] .st-expander > div:first-child { + color: #334155; + font-weight: 600; + padding: 0.875rem 1rem; + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + border-bottom: 1px solid #e2e8f0; +} + +/* Radio button styling - improved visibility */ +[data-testid="stSidebar"] .stRadio > div { + display: flex; + flex-direction: column; + gap: 0.625rem; +} + +[data-testid="stSidebar"] .stRadio > div > label { + background: #ffffff; + color: #334155; + padding: 0.75rem 1rem; + border-radius: 6px; + font-weight: 500; + border: 1px solid #e2e8f0; + transition: all 0.2s ease; +} + +[data-testid="stSidebar"] .stRadio > div > label:hover { + background: linear-gradient(135deg, #f1f5f9, #e2e8f0); + transform: translateY(-1px); + border-color: #cbd5e1; +} + +[data-testid="stSidebar"] .stRadio > div > label[data-selected="true"] { + background: linear-gradient(135deg, #0ea5e9, #0284c7); + color: #ffffff; + border-color: #0284c7; + box-shadow: 0 2px 4px rgba(2, 132, 199, 0.2); +} + +/* Input and select styling - improved contrast */ +[data-testid="stSidebar"] input, [data-testid="stSidebar"] select { + background: #ffffff; + color: #334155; + border: 1px solid #e2e8f0; + border-radius: 6px; + padding: 0.75rem; + font-size: 0.875rem; + margin-bottom: 0.75rem; + transition: all 0.2s ease; +} + +[data-testid="stSidebar"] input:focus, [data-testid="stSidebar"] select:focus { + border-color: #0ea5e9; + box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.1); + outline: none; +} + +/* Button styling - modern and subtle */ +[data-testid="stSidebar"] button { + background: linear-gradient(135deg, #0ea5e9, #0284c7); + color: #ffffff; + border: none; + border-radius: 6px; + padding: 0.75rem 1rem; + font-weight: 500; cursor: pointer; - transition: color 0.3s ease; + transition: all 0.2s ease; } -.sidebar-option:hover { - color: #1976D2; +[data-testid="stSidebar"] button:hover { + background: linear-gradient(135deg, #0284c7, #0369a1); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(2, 132, 199, 0.2); +} + +/* Settings button styling */ +[data-testid="stSidebar"] .stButton > button { + background: linear-gradient(135deg, #3182CE, #2C5282); + color: white; + border: none; + padding: 0.75rem 1rem; + font-weight: 600; + border-radius: 8px; + transition: all 0.3s ease; + width: 100%; + margin-bottom: 1rem; +} + +[data-testid="stSidebar"] .stButton > button:hover { + background: linear-gradient(135deg, #2C5282, #1A365D); + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +/* Scrollbar styling - subtle and modern */ +[data-testid="stSidebar"]::-webkit-scrollbar { + width: 8px; +} + +[data-testid="stSidebar"]::-webkit-scrollbar-track { + background: #f8fafc; +} + +[data-testid="stSidebar"]::-webkit-scrollbar-thumb { + background: #cbd5e1; + border-radius: 4px; + border: 2px solid #f8fafc; +} + +[data-testid="stSidebar"]::-webkit-scrollbar-thumb:hover { + background: #94a3b8; } /* Content section styling */ @@ -86,7 +392,6 @@ body { background-color: #ffffff; } - /* Custom button styling */ div.stButton > button:first-child { background: #1565C0; @@ -203,3 +508,169 @@ select option { padding: 10px; } +/* Content Planning Tools Styling */ +.content-header { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + padding: 1rem; + border-radius: 2px; + margin-bottom: 2rem; + border: 1px solid rgba(148, 163, 184, 0.2); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); +} + +.content-header h2 { + color: #1e293b; + font-size: 1rem; + font-weight: 300; + margin-bottom: 0.5rem; +} + +.content-header .subtitle { + color: #475569; + font-size: 1.1rem; + line-height: 1; +} + +.tool-section { + background: white; + padding: 1rem; + border-radius: 2px; + margin-bottom: 1.5rem; + border: 1px solid #e2e8f0; +} + +.tool-section h3 { + color: #1e293b; + font-size: 1.4rem; + font-weight: 600; + margin-bottom: 0.75rem; +} + +.tool-section p { + color: #475569; + font-size: 1rem; + line-height: 1.5; +} + +/* Button styling */ +.stButton > button { + background: linear-gradient(135deg, #3182ce, #2c5282); + color: white; + border: none; + padding: 0.75rem 1.5rem; + font-weight: 600; + border-radius: 8px; + transition: all 0.3s ease; +} + +.stButton > button:hover { + background: linear-gradient(135deg, #2c5282, #1a365d); + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +/* Search option containers styling */ +.search-option-container { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + border: 1px solid rgba(148, 163, 184, 0.2); + border-radius: 8px; + padding: 1rem; + margin-bottom: 1rem; + text-align: center; + height: 100%; + transition: all 0.3s ease; +} + +.search-option-container:hover { + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); +} + +.search-option-container h4 { + color: #1e293b; + margin-bottom: 0.5rem; +} + +.search-option-container p { + color: #64748b; + margin: 0; +} + +/* Button styling for search options */ +.stButton > button { + background: linear-gradient(135deg, #3182ce, #2c5282); + color: white; + border: none; + padding: 0.5rem 1rem; + font-weight: 600; + border-radius: 6px; + transition: all 0.3s ease; +} + +.stButton > button:disabled { + background: linear-gradient(135deg, #94a3b8, #64748b); + cursor: not-allowed; +} + +.stButton > button:not(:disabled):hover { + background: linear-gradient(135deg, #2c5282, #1e3a8a); + transform: translateY(-1px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +/* Search options styling */ +.search-option { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + border: 1px solid rgba(148, 163, 184, 0.2); + border-radius: 8px; + padding: 1rem; + height: 100%; + transition: all 0.3s ease; + text-align: center; +} + +.search-option:hover { + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); +} + +.search-option h4 { + color: #1e293b; + margin-bottom: 0.5rem; + font-weight: 600; +} + +.search-option p { + color: #64748b; + font-size: 0.9em; + margin-bottom: 1rem; +} + +.search-option.active { + border: 2px solid #3182ce; + background: linear-gradient(135deg, #ebf8ff, #e6fffa); +} + +/* Add these to your existing search-option styles */ +.search-option.disabled { + background: linear-gradient(135deg, #f1f5f9, #e2e8f0); + opacity: 0.8; + cursor: not-allowed; + border: 1px solid #cbd5e1; +} + + +.search-option .api-missing { + display: inline-block; + background: #fee2e2; + color: #dc2626; + padding: 2px 8px; + border-radius: 4px; + font-size: 0.8em; + margin-top: 0.5rem; +} + +.search-option.disabled h4, +.search-option.disabled p { + color: #64748b; +} \ No newline at end of file diff --git a/lib/workspace/structured_data_seo.mp4 b/lib/workspace/structured_data_seo.mp4 deleted file mode 100644 index af17702784a992a2036f2df167441356f317e5f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543527 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%0Ao&w{Y8WBLP!n5&`W7 zmSMjb$*6eG`T!HY4vm^)7~*w6cBKLymwCEzx}gpGeBj(FGQoV7SK1cOY<-unvs@w< z4`6+k^Q(FFz6Z_ZKN>Yw18HY7(u{7w-=MxZQ(B{6WvY*O<<6A!sIadu_h`s~K-(3@ zpv25N(`vhqm276M6rYxBwWZJCA7saQ_Vp{ESaQJfe}Ds(F`0b`>G# z6+ItQj@b)JDj{NsI1qempQGA1Q$REsxwbRMMG3I!KUtf~(AOF#2sV4JL{Qn6 z47K)@7r;`@w(RFcv|dj$MAk{{)k~0AWi84J1(@-Tvx{HjP8fnCyPrAegU8ptC6>nMo++aH z)x0xxYwsabx-tq4-UNRT!*SE1qbp1DU!Pw|v!p-CWws+_L_A2b{8}s`^|s>n5L18w z2An>-cXfX)H`DT}xX0X%^qmwvjjx{)g18%kK^#bZF*mvNc%2t$kKXyRx`q+>VG;b` z>!+`BMkeg?B{fwmL9T?7gM%@nWwA%LRpey)gDd9E=!JB547VFrros8V2DZ8l2KG7@zZf;>f z&`KxDNC;pkmKT{1F(SU`siW5RDKFI`dkxb*EaOU*L?y?8U$Lx(F0xz+uP&2WG%jA- zO$$;@sSpuAZa0p3UMIFgSJT?p73=-Q6Yvrdn#u^Le})%Ey_oq4HXfe*@{p4OFI+Cj5O{85FCSm4Y`m5xm zwKad)vE(m44rQI!#q&P4uwICc%td~x6`D!yj_2rS` z7H!KF!fY;SQBp%BFuNBh(66EW-thulkIcj%&!Q)0z-3S$eRmUMV@wDkV3LBjoq}%hJp2@dGVDE$*6p5q!3+P-24Xr#TB|_-#i#@SO2<+VgL&>2_siwk^+J9AGM{=aYN5 zCu-44Gzz&m{Ls#^(Bg!muF5?EFYCnIlqE+zFCBGJJf-jgK0NVRR)g#&t#>Trn8Nm+ zuGXT)&sOis<`0@CBGakbRuips?eCo!Uq9m$xDg>_`T0e#K)|kkEC4sf<^vp}T;8&I zVR4nXQ=4Pnx28G{b|)vn%O(r>V;G`Cp}?(-8IpiJ|5FUI@5CO0Jp>=~%lpLMe=4M( z$*fou`mU4~=+{^Q=t0tVZhMw;%GOZ=dBQCJuMuh2L=oOJ!X^d*kCsKI&Tia8eJPq9 zwm#TV2lu%pqr*{OPwI8+ZTXK*GK$yCYcPf%FV&e`0Wk>{0nZy9x504one+Ijz4CzP zui9hA`FZU>9`Z_VMn2LgRBWapOTk=zq9F3H;>lY5&T*P=X7trfm>d_$3UV)_`W~CK z7V**$2HNJKh54`3r&5I(_D1Ri&^OQ4c&21#CQa^!U2a>~?#)h*q*t-{Mfc&RhiFW{ z_b=v$Ac*N(x54rgMdgd8Kif62ShL-g9q4UT_az;4n%r1lb5=*}fJ^+NFz^G%zHO2f zOnm=*WcjYhJ~(M~NQmIe5UMG@J;liE^~7x$Jm_c`iM@u`2xuJNKbBD|G5SpXUp6kb4+|YeZrTYfvniR92=UlkHY7 zlQPetuY~mhsr?$yM%qxhW5iM$dg`F^E@KFrdwA=upoYe&(*o5z6uIMNBnC+yFV)F$ zD$2b&vQABw{?=xrQ}<=Ub{ZyEu*yo7S3nQ1CVI+|hDU=l#9uNhxb~;WbQkh(F0%dM zG*>oT6Js0Ja&WGT!IQk09melhe)%bDl|jw7@Z` zj+*Lgp2TT@U<-YDt|ZKqb&u?ok~$KH8L@dOFG1jBQ|YYaZR*=Zmu6F(cO?YW?0}2B z?SwPi(=wZh2%otCW~XhdGYtKmXExs)^s_s4y=+Q%BM>&`4!VwKr|3Ms9KqL>--Vb0 z{HUI80`D}1*78oz@3?0Vr)aD_hLy&6CJOm1by@ZH`~6ZLt6+JZxfW9Rc!i~swvKcS zoPxz8TgB}fL1XY?ea9(MxMD3=s`^UcNsVoyCcMOF1y3c$c5czB*HwUVY5Q2()Vqg1 zfW-!qew$h}i018^>bQ+I7T7Vy2dThUcJ~qO7;;>ctncR{KVX!$p(D8`Y4+T;Fs!}C zo|K$7?4si6X@GjCr9zrTGyBIWS{r1;4g zq>s6dsMqDof$;!>z5okjq;8stI;ququMvmazidT|&TW}rGv;H=uQ<5VP)rvRFZIpC zx|kHLt2wdT8k!Pvi7qV3OLp{$EJsN@>xyg1ZXLpd;GrxL_$gU0ponT8|5%}+XpJB@ zd={yExKv(GKk3Sf&naVfL5-14Ucv396WX4Z7K0#>>{vl(go32WC6KUa7kS#mk|;wR z&>q2cSnxFql=J z%@a#Wo`xM1u`lNBjdT`UMEGFCB?Y4cs}H||(LV)_^9BYrc=h>+C}P-)*+*fRwg;)s zwy5VZCuF0Zziy2pCFu7vv?9X3mk~kKLd_MI^ArnVo+;G4hI83mrnbJ)&zM^nR%Hr< zC*Sj)u+3ju*T1*xGmF;s0(@{;jp(w_tRNR9>lFr1$glSxH&wX*lOCcv5P&NA7%3*RotaXAFP=53L~@GenuSU*T6G&gnVHeXl> zjAAh-kDi6yFhM6pS$w1D5vm-wHZ7~YX!L^5xaT8tF?t`hqRBubi7Xg!-`km7!fbKO zgh&MFM!M7a?jWvVTzlSBsIQ{@0SuF|-dYF7aUw_LGoNIdX{UM^d)yj&h4^WH? zG&5U!m#5J0xLU%$32K!vJpw2+0}o*v<#P{JiVNtwh3_`WTw0Y|C7_-I>b!KXb;v@Rv<|y+tXildEV4^a#2QKKJI-XXmAH{ z&T~}Tzm()T>N@MGbx5vNed|P}*zWL9-P-oS+zz%CKvDsxu`I~iSGoYLkcAV#;2v&; z;8JnF-pYxitpthU1DS?G(}Cc?wIKw=1a&27A~9b(>@h6|f)@wg zfS}Q};V0q67Ef;tgI~15-=H9b(Yp2$WF5V+g(GPUh`jyo0d^DNlJG96mpnP3kr=*} zQg{iswkL6@aqGJkag9BhrDLsyPU}iP=bO^aXgs+`q6C-aWJf{O^o0mlO%eLM49O6u(=~dyAJmM19*u$ykK5GK^i6LVxT0Vtdk@Nape(H~J z37dzbT3b4;Kh`jOa(plSx-X6b*J&4zET9znmuCt@aMzW*Z9=JHSl`(TKdS7>WNT_~wFz z!J@jEl~ms@z;LgA75{4H5vE`vSWLiN_^uwl6js-=*5&_|LupjdyJlYRT?Ju7M@yyN zfRC_w6HS;EqL2;@)|j2k0O=wR6&a%~!nA}M^pQq&q7hL+tNHM3!6n<%YNi$g$1$;@ z>XGm;^MwyTX-cY(WtZ?e?vp(|69&-#5^b9%W6!g<`;q30z91?&dW-s$gLd(yP`u`Y zyNvK+7Uc6Cz|;N7S+7^%S{*>iM*a0(V!_)+66e%?8DgCk42~`SgwkZy(%=DUH>L9r!R zYM8dyypT_=@()yG(`o@WTes7Oqwbkp+p;mV4PsYIqs9P7ir#K(c;89F7C{I`yk(#So zA@sEsz^e_!+_hz?q7B*85^mrd9)*6MQi5Di31`Fm8&EP+hLZKa{hEcfh-G8#bNqWH!(CBF;(f^;ccaV?U^DDj;DE^RRJFC@6bgLP)@;5 z%dP-2R=4vS7fA8<0XS@8AI4rE;>;M`t~a?_Z|42A0&hQi9e_#R1Dq)3#a%L=z0%5C zY^6|b6{U}EZH{Jq+jaIAx0XEnG>^RW>?F8e)TvRVMk^^WDsl+p9*)?PamrdNTDd8C zr!k32Y)k?FiG1o2pg+;*qOrFcGAGpoMv1T4#8B=-&qQGC@y2VEbrJ-a#FygGCZNx3 zVq-TB{0Rc6v1i;Uki?~NOiLH=9CuU3fiRlNB+L|CIcq^d1|-Ik+f1Kan#>a)nLEEt(uq-O#o{QUayiyKR{zqa|*M8>Hhn11+ z7cj*NIL^e5VHo+#^vASTfF>erAp;z$>57Y1>Tud$0`2b3Cy&6ItQ8r$3@N2yowS>p zm8v7yYLLz5{cy(Tgu99PrCl_@-MZ=*@u2UTd)lL@WtBqG6+{x#(*65x4LEQCaW#|#~=s!rAN z5Gf2pJNLfaM)2;}hXUxBL5hLEg6J$IpNXqm{=c_N%s!lxPAwqvoIZ6kPVjeEL zNr2bcQhu{8qM8(vG`%tV#4x?{xo1{0J?a4aG(FrNisE!VB*s$#@?*6rAZ04|+#GC*=eE-dQHl>r9(zL;)3h zOLZnCci1VVk88_CXNY`&r@We@tFJ0@j$cm)H%EK5!Sa1K^=}RrUM^u0VQv$m$cp5Tb15e#}pGRqJ)w7&M zag*K~_uPEJl>wUY0woNWD>G%DYq{y3j*e>aD!H!lFjZ0PWFLe2c|=akwIN~kS0~p# z5$)aS2z6Z@Uy?RtKZmL@YkZ^6A%F=SfSU?K;_|m=W}I`imM=deFeeb2cT1!%6`G*3 z78@nWh*X*ZiWK=jzmdyob2oh+Yn2Mdi#FW@bH0qCKSpk5*ZrvZ)^L(w4&J_>e++iu z;LZF=KI?**8T_v5z1KEYYD3lefMx30+gj!7J#f)c!<;G^GPZtZMD`3N0odPYJFX%B zT`Tv&w^w74^hsd~KZ)Ac*TH5IF+0osU600daN!=%!ng0Q%MfE=cM#c^-gbK|&&OQdYSx#d`1NBs zHNLT8`nVq%s#22lNI2z+1uH;C7VJcAm)yM#EFvp-1f4edm6m2p0+IcXBh=Ju2FF33 zYX@Kf=Je>~5?%As*!(Y%C2*nJnom2iO}f-}h{{U6KVY7Mvo8AGrw32H(x@`H=vu5X zlc7G#$ddE->Z2^8v`oA&3p!SW-MQ8gz_^Z5>ax1YO?OrRYYvh)t8Bk}Zd!^N)%85W zOrup6RW<|p@OdrEVC${;)Ey-GCWW())RT|;J&{V^3v8s!O%>@l@TZ>Y%xhRnX&pYm z4=JsMtSs(M-d0oJ`S~&aR`SBBYGPKaI6-5h1cR0K)=Ina^R>Mme**nY&GSCV{8Zn; zVeZ>+*-xCY5nz9rKidTNw#J2>Eiz8hLSG%-kUKGWe&#qB#FN>R*u~%pYrk^)AW6NM z=KSlMm34FLC_^y$nZP*MB;^k%!xq%P@oNcW&tzj+8c)!q=h29=h_Y;_veI5WHF8sB z#s8`Fdw`PaaHa}K%HVj>Yi(5`TrE8adh6v(nWX3hE}|z_cMcggy26Iv-(3b8<5n82 z&M~$`9yq<`o7cJWEaue67fzII^p~_Go_!fA)9kf_3!X8FY_CTjmG}D8&gYrN*v`C6 zEzZ-|;waElk9F|9wbzWn!AO%QH#r%+HF`3T=mQ}UzE8ST}|2Y)b#~DrY_$vbJR)iqmgOG9Y5qxEuRGHTpek5N#rjPWW0|*x2KE_LjQP+3LqB02dMR8qs+7j^T|Ew0kJ z+J(Gv@{dxilT)oQRs=KE>5v|{S8L;Cj3afbWYrCTCw;P&U3pUrH!%`h*R0}Kw?Vnh zeShuD$?Yo+pUd1-*516Vo5Mbm(#B4m3wH4PiD{>^Wn}P>biGWo8qV$Mi&MbAMI|d^ zj)^Cq72x@f0goAroNPOJ;KLkel5il~%L>Qb!RnSS{Bj7jDFg}BPtJt)PpC#Rs?96c z(*|_)x8>v)zXiD^Kx|S`!`ja}aEdH(&!~JC1i`5|EX%bOla2MHqBmh1x2X~(2a3_Y z+G?aoK&P}>cc<5ElDe!5-fYqU4&x%1#J<2^PxN*Uziee-wl_K z7tnOv%4ftH4fj&YOtUB+7db8$ZJnG_az-H83uG&;ZJCE@o7hrs3@_o2Ev(*1B5{QX ziniT)j;_SCW@0(?7nw`0e8cTf5Y9eKU82Kj_pv3Dm;?;gnP_O8SdHuj^nO|# z4_h_rXD3%(SOTZm;0|HGURS((s0cKDLbNz=Xj|Ujm#l z{v^tCEgfPOjakE7EXbG|2uPDAcP(DYtKmZaQE4tj<_nd@oRI`IHDb=o7s=<8Zzs61 zM>U3l&A|i{P1yAWJCCLyy{_EcQ|AFs&lMWN~1^pX>W@%;Myu zQ4l0$P^I>jh)>*dcl_?x_Wc8|pyfrfr7+e&z9vkcVe=9O_gt_q$%Ot}r&9oK^%zIo zaC1DOFXa6P0(Hueo^_YjGW%g$i(Ic)ZV5x}kbNr)Rozc*dxkh_>FOD0t=^tzig&w4 zQokGCU+Tv!^5Ax@6ulZ?EtT8*F$ikY&AVu

(|YI16KrL0$OXbBO+h%Z!QMsb-E&wME;>d7 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�+6!i6%zc~kr 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%0A$r{9xtr=0y@<=VFp-`v|F5ohD9j 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�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 {yz$I!eV*^}jf~ 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 diff --git a/pages/ai_research_setup_page.py b/pages/ai_research_setup_page.py deleted file mode 100644 index 5d094cd4..00000000 --- a/pages/ai_research_setup_page.py +++ /dev/null @@ -1,50 +0,0 @@ -"""Page for AI Research Setup redirection.""" - -import streamlit as st -from loguru import logger -import sys -import os - -# Configure logger -logger.remove() # Remove default handler -logger.add( - "logs/ai_research_setup_page.log", - rotation="500 MB", - retention="10 days", - level="DEBUG", - format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", - backtrace=True, - diagnose=True -) -logger.add( - sys.stdout, - level="INFO", - format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" -) - -# Set page config -st.set_page_config( - layout="wide", - initial_sidebar_state="collapsed", - menu_items={ - 'Get Help': None, - 'Report a bug': None, - 'About': None - } -) - -def render_ai_research_setup_page(): - """Render the AI Research Setup page.""" - try: - logger.info("Starting AI Research Setup page") - - # Import and render the AI Research Setup component - from lib.utils.api_key_manager.components.ai_research_setup import render_ai_research_setup - render_ai_research_setup() - - except Exception as e: - logger.error(f"Error in render_ai_research_setup_page: {str(e)}") - st.error(f"An error occurred: {str(e)}") - -if __name__ == "__main__": - render_ai_research_setup_page() \ No newline at end of file diff --git a/pages/personalization_setup.py b/pages/personalization_setup.py deleted file mode 100644 index d35e9930..00000000 --- a/pages/personalization_setup.py +++ /dev/null @@ -1,84 +0,0 @@ -import streamlit as st -import os -import json -from pathlib import Path - -st.set_page_config( - page_title="Personalization Setup", - page_icon="βš™οΈ", - layout="wide" -) - -st.title("Personalization Setup") - -# Initialize session state for active tab if not exists -if 'active_tab' not in st.session_state: - st.session_state.active_tab = "Writing Preferences" - -# Create tabs for different sections -tab1, tab2 = st.tabs(["Writing Preferences", "AI Configuration"]) - -with tab1: - st.write(""" - This section allows you to customize your AI writing experience. - Configure your preferences and settings here. - """) - - # Add your personalization options here - st.subheader("Writing Style Preferences") - tone = st.selectbox( - "Select your preferred writing tone", - ["Professional", "Casual", "Academic", "Creative"] - ) - - st.subheader("Content Preferences") - content_type = st.multiselect( - "Select your preferred content types", - ["Blog Posts", "Articles", "Social Media", "Technical Writing", "Creative Writing"] - ) - - if st.button("Save Preferences"): - st.success("Your preferences have been saved!") - -with tab2: - st.subheader("AI Configuration Settings") - - # Create a form for AI configuration - with st.form("ai_config_form"): - # API Keys - st.text_input("OpenAI API Key", type="password", key="openai_key") - st.text_input("Google API Key", type="password", key="google_key") - st.text_input("SerpAPI Key", type="password", key="serpapi_key") - - # Model Selection - st.selectbox("Select Model", ["gpt-3.5-turbo", "gpt-4"], key="model") - - # Temperature - st.slider("Temperature", 0.0, 2.0, 0.7, 0.1, key="temperature") - - # Max Tokens - st.number_input("Max Tokens", 100, 4000, 2000, 100, key="max_tokens") - - # Submit button - submitted = st.form_submit_button("Save Configuration") - - if submitted: - # Create config directory if it doesn't exist - config_dir = Path("config") - config_dir.mkdir(exist_ok=True) - - # Save configuration - config = { - "openai_key": st.session_state.openai_key, - "google_key": st.session_state.google_key, - "serpapi_key": st.session_state.serpapi_key, - "model": st.session_state.model, - "temperature": st.session_state.temperature, - "max_tokens": st.session_state.max_tokens - } - - config_file = config_dir / "test_config.json" - with open(config_file, "w") as f: - json.dump(config, f, indent=4) - - st.success("Configuration saved successfully!") \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 4760f08b..881f53b4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ beautifulsoup4==4.12.2 aiohttp>=3.11.11 openai>=1.3.7 PyPDF2>=3.0.1 -google-generativeai<0.9.0,>=0.8.0 +google-genai==1.9.0 anthropic>=0.18.1 tenacity>=8.2.3 tabulate>=0.9.0 From 65f452be0590c1d696321a9cb338a0f3b9f8b2b3 Mon Sep 17 00:00:00 2001 From: ajaysi Date: Wed, 2 Apr 2025 22:44:16 +0530 Subject: [PATCH 3/7] Google Grounded Search and Styling Fixes --- alwrity.py | 68 --------------------------------- lib/utils/content_generators.py | 65 ++++++++++++++++++++++++------- 2 files changed, 51 insertions(+), 82 deletions(-) diff --git a/alwrity.py b/alwrity.py index e55f793b..9650cd27 100644 --- a/alwrity.py +++ b/alwrity.py @@ -59,30 +59,9 @@ from lib.utils.ui_setup import setup_ui from lib.utils.api_key_manager.api_key_manager import APIKeyManager, render from lib.utils.api_key_manager.validation import check_all_api_keys from dotenv import load_dotenv -from lib.utils.content_generators import blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis from lib.utils.ui_setup import setup_ui, setup_alwrity_ui -def process_folder_for_rag(folder_path): - """Placeholder for the process_folder_for_rag function.""" - logger.info(f"Processing folder for RAG: {folder_path}") - st.write(f"This is a placeholder for processing the folder: {folder_path}") - - -def save_config(config): - """ - Saves the provided configuration dictionary to a JSON file specified by the environment variable. - """ - try: - logger.debug(f"Saving configuration to {os.getenv('ALWRITY_CONFIG')}") - with open(os.getenv("ALWRITY_CONFIG"), "w") as config_file: - json.dump(config, config_file, indent=4) - logger.info("Configuration saved successfully") - except Exception as e: - logger.error(f"Error saving configuration: {str(e)}", exc_info=True) - st.error(f"An error occurred while saving the configuration: {e}") - - def main(): """Main application entry point.""" # Initialize API key manager @@ -221,52 +200,5 @@ def setup_environment_paths(): raise -# Functions for the main options -def ai_writers(): - options = [ - "AI Blog Writer", - "Story Writer", - "Essay writer", - "Write News reports", - "Write Financial TA report", - "AI Product Description Writer", - "AI Copywriter", - "Quit" - ] - choice = st.selectbox("**πŸ‘‡Select a content creation type:**", options, index=0, format_func=lambda x: f"πŸ“ {x}") - - if choice == "AI Blog Writer": - blog_from_keyword() - elif choice == "Story Writer": - story_input_section() - elif choice == "Essay writer": - essay_writer() - elif choice == "Write News reports": - ai_news_writer() - elif choice == "Write Financial TA report": - ai_finance_ta_writer() - elif choice == "AI Product Description Writer": - write_ai_prod_desc() - elif choice == "Quit": - st.subheader("Exiting, Getting Lost. But.... I have nowhere to go πŸ₯ΉπŸ₯Ή") - - - -def alwrity_brain(): - st.title("🧠 Alwrity Brain, Better than yours!") - st.write("Choose a folder to write content on. Alwrity will do RAG on these documents. The documents can of any type, pdf, pptx, docs, txt, cs etc. Video files and Audio files are also permitted.") - - folder_path = st.text_input("**Enter folder path:**") - if st.button("**Process Folder**"): - if folder_path: - try: - process_folder_for_rag(folder_path) - st.success("Folder processed successfully!") - except Exception as e: - st.error(f"Error processing folder: {e}") - else: - st.warning("Please enter a valid folder path.") - - if __name__ == "__main__": main() diff --git a/lib/utils/content_generators.py b/lib/utils/content_generators.py index 1af34e82..161bb6f0 100644 --- a/lib/utils/content_generators.py +++ b/lib/utils/content_generators.py @@ -39,30 +39,67 @@ def ai_writers(): def content_planning_tools(): - st.markdown("""**Alwrity content Ideation & Planning** : Provide few keywords to do comprehensive web research. - Provide few keywords to get Google, Neural, pytrends analysis. Know keywords, blog titles to target. - Generate months long content calendar around given keywords.""") + # Add custom CSS for compact layout + st.markdown(""" + + """, unsafe_allow_html=True) - options = [ - "Keywords Researcher", - "Competitor Analysis", - "Content Calender Ideator" - ] - choice = st.radio("Select a content planning tool:", options, index=0, format_func=lambda x: f"πŸ” {x}") + # Make description more compact using a smaller font + st.markdown(""" +

+ """, unsafe_allow_html=True) - if choice == "Keywords Researcher": + # Create tabs with reduced spacing + tab_keywords, tab_competitor, tab_calendar = st.tabs([ + "πŸ” Keywords Researcher", + "πŸ“Š Competitor Analysis", + "πŸ“… Content Calendar Ideator" + ]) + + # Keywords Researcher tab + with tab_keywords: do_web_research() - elif choice == "Competitor Analysis": + + # Competitor Analysis tab + with tab_competitor: competitor_analysis() - elif choice == "Content Calender Ideator": + + # Content Calendar Ideator tab + with tab_calendar: plan_keywords = st.text_input( "**Enter Your main Keywords to get 2 months content calendar:**", placeholder="Enter 2-3 main keywords to generate AI content calendar with keyword researched blog titles", help="The keywords are the ones where you would want to generate 50-60 blogs/articles on." ) - if st.button("**Ideate Content Calender**"): + if st.button("**Ideate Content Calendar**"): if plan_keywords: #ai_agents_content_planner(plan_keywords) - st.header("COming Soon.") + st.header("Coming Soon.") else: st.error("Come on, really, Enter some keywords to plan on..") From dcd8917805261ffe59f067566391d16472115474 Mon Sep 17 00:00:00 2001 From: ajaysi Date: Fri, 4 Apr 2025 10:48:46 +0530 Subject: [PATCH 4/7] ALwrity AI Keyword Web Researcher --- lib/alwrity_ui/keyword_web_researcher.py | 515 +++++++++++++++++++++++ lib/utils/alwrity_utils.py | 20 - lib/utils/content_generators.py | 4 +- requirements.txt | 5 +- 4 files changed, 520 insertions(+), 24 deletions(-) create mode 100644 lib/alwrity_ui/keyword_web_researcher.py diff --git a/lib/alwrity_ui/keyword_web_researcher.py b/lib/alwrity_ui/keyword_web_researcher.py new file mode 100644 index 00000000..97a9ed5c --- /dev/null +++ b/lib/alwrity_ui/keyword_web_researcher.py @@ -0,0 +1,515 @@ +import os +import time +import logging +import streamlit as st +from datetime import datetime + +from lib.ai_web_researcher.gpt_online_researcher import gpt_web_researcher +from lib.utils.read_main_config_params import read_return_config_section + +# Configure module-level logging +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + +# Create console handler if it doesn't exist +if not logger.handlers: + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.DEBUG) + formatter = logging.Formatter( + '%(asctime)s - %(name)s - %(levelname)s - %(message)s', + datefmt='%Y-%m-%d %H:%M:%S' + ) + console_handler.setFormatter(formatter) + logger.addHandler(console_handler) + +def reload_env_variables(): + """Reload environment variables from .env file.""" + try: + from dotenv import load_dotenv + load_dotenv(override=True) + return True + except Exception as e: + logger.error(f"Failed to reload environment variables: {str(e)}") + return False + +def save_api_key_to_env(key_name, key_value): + """Save API key to .env file.""" + try: + env_path = os.path.join(os.getcwd(), '.env') + + # Read existing .env content + existing_content = {} + if os.path.exists(env_path): + with open(env_path, 'r') as f: + for line in f: + if '=' in line: + key, value = line.strip().split('=', 1) + existing_content[key] = value + + # Update or add new key + existing_content[key_name] = key_value + + # Write back to .env + with open(env_path, 'w') as f: + for key, value in existing_content.items(): + f.write(f"{key}={value}\n") + + # Update environment variable and reload all env vars + os.environ[key_name] = key_value + if reload_env_variables(): + return True + return False + except Exception as e: + logger.error(f"Failed to save API key to .env: {str(e)}") + return False + +def validate_api_keys(): + """Validate required API keys and return their status.""" + + logger.info("Validating API keys") + + # Get API keys + api_keys = { + 'SERPER_API_KEY': os.getenv('SERPER_API_KEY'), + 'METAPHOR_API_KEY': os.getenv('METAPHOR_API_KEY'), + 'TAVILY_API_KEY': os.getenv('TAVILY_API_KEY'), + 'FIRECRAWL_API_KEY': os.getenv('FIRECRAWL_API_KEY') + } + + # Test SERPER_API_KEY validity + if api_keys['SERPER_API_KEY']: + try: + # Make a test request + import requests + test_url = "https://google.serper.dev/search" + headers = { + 'X-API-KEY': api_keys['SERPER_API_KEY'], + 'Content-Type': 'application/json' + } + test_payload = {"q": "test", "gl": "us", "hl": "en", "num": 1} + + response = requests.post(test_url, headers=headers, json=test_payload) + api_keys['SERPER_API_KEY_VALID'] = response.status_code == 200 + + if not api_keys['SERPER_API_KEY_VALID']: + logger.error(f"SERPER_API_KEY validation failed: {response.status_code} - {response.text}") + except Exception as e: + logger.error(f"Error validating SERPER_API_KEY: {str(e)}") + api_keys['SERPER_API_KEY_VALID'] = False + else: + api_keys['SERPER_API_KEY_VALID'] = False + + return api_keys + +def do_web_research(): + """Input keywords and do web research with advanced options.""" + logger.info("Starting do_web_research function") + + try: + # Get API keys without validation + api_keys = { + 'SERPER_API_KEY': os.getenv('SERPER_API_KEY'), + 'METAPHOR_API_KEY': os.getenv('METAPHOR_API_KEY'), + 'TAVILY_API_KEY': os.getenv('TAVILY_API_KEY'), + 'FIRECRAWL_API_KEY': os.getenv('FIRECRAWL_API_KEY') + } + + if not api_keys['SERPER_API_KEY']: + st.error(""" + 🚫 SERPER_API_KEY is missing. Please configure your API key. + """) + with st.popover("βš™οΈ Configure API Keys"): + st.markdown(""" + ### API Key Configuration + Enter your API keys below to enable research features. + """) + + # SERPER API Key + serper_col1, serper_col2 = st.columns([3, 1]) + with serper_col1: + serper_key = st.text_input( + "Serper API Key", + type="password", + placeholder="Enter your Serper API key", + help="Get your key at https://serper.dev" + ) + test_key = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with serper_col2: + if st.button("Save Serper", use_container_width=True): + if serper_key: + if test_key: + # Test the API key + try: + import requests + test_url = "https://google.serper.dev/search" + headers = { + 'X-API-KEY': serper_key, + 'Content-Type': 'application/json' + } + test_payload = {"q": "test", "gl": "us", "hl": "en", "num": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('SERPER_API_KEY', serper_key): + st.success("βœ… Serper API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('SERPER_API_KEY', serper_key): + st.success("βœ… Serper API key saved!") + time.sleep(0.5) # Small delay to ensure the key is saved + st.rerun() + else: + st.error("Failed to save API key") + + # METAPHOR API Key + if not api_keys.get('METAPHOR_API_KEY'): + metaphor_col1, metaphor_col2 = st.columns([3, 1]) + with metaphor_col1: + metaphor_key = st.text_input( + "Metaphor API Key", + type="password", + placeholder="Enter your Metaphor API key", + help="Get your key at https://metaphor.systems" + ) + test_metaphor = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with metaphor_col2: + if st.button("Save Metaphor", use_container_width=True): + if metaphor_key: + if test_metaphor: + # Test the API key + try: + import requests + test_url = "https://api.metaphor.systems/v1/search" + headers = { + 'Authorization': f'Bearer {metaphor_key}', + 'Content-Type': 'application/json' + } + test_payload = {"query": "test", "numResults": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('METAPHOR_API_KEY', metaphor_key): + st.success("βœ… Metaphor API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('METAPHOR_API_KEY', metaphor_key): + st.success("βœ… Metaphor API key saved!") + st.rerun() + else: + st.error("Failed to save API key") + + # TAVILY API Key + if not api_keys.get('TAVILY_API_KEY'): + tavily_col1, tavily_col2 = st.columns([3, 1]) + with tavily_col1: + tavily_key = st.text_input( + "Tavily API Key", + type="password", + placeholder="Enter your Tavily API key", + help="Get your key at https://tavily.com" + ) + test_tavily = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with tavily_col2: + if st.button("Save Tavily", use_container_width=True): + if tavily_key: + if test_tavily: + # Test the API key + try: + import requests + test_url = "https://api.tavily.com/v1/search" + headers = { + 'Authorization': f'Bearer {tavily_key}', + 'Content-Type': 'application/json' + } + test_payload = {"query": "test", "max_results": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('TAVILY_API_KEY', tavily_key): + st.success("βœ… Tavily API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('TAVILY_API_KEY', tavily_key): + st.success("βœ… Tavily API key saved!") + st.rerun() + else: + st.error("Failed to save API key") + + # FIRECRAWL API Key + if not api_keys.get('FIRECRAWL_API_KEY'): + firecrawl_col1, firecrawl_col2 = st.columns([3, 1]) + with firecrawl_col1: + firecrawl_key = st.text_input( + "Firecrawl API Key", + type="password", + placeholder="Enter your Firecrawl API key", + help="Get your key at https://firecrawl.co" + ) + test_firecrawl = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with firecrawl_col2: + if st.button("Save Firecrawl", use_container_width=True): + if firecrawl_key: + if test_firecrawl: + # Test the API key + try: + import requests + test_url = "https://api.firecrawl.co/v1/search" + headers = { + 'Authorization': f'Bearer {firecrawl_key}', + 'Content-Type': 'application/json' + } + test_payload = {"query": "test", "limit": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('FIRECRAWL_API_KEY', firecrawl_key): + st.success("βœ… Firecrawl API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('FIRECRAWL_API_KEY', firecrawl_key): + st.success("βœ… Firecrawl API key saved!") + st.rerun() + else: + st.error("Failed to save API key") + + st.markdown(""" + --- + ### Need Help? + 1. Click the links above to get your API keys + 2. Enter the keys in the fields above + 3. Click Save to store them securely + 4. The app will refresh automatically + """) + return + + # Initialize session state for research options + if "research_options" not in st.session_state: + st.session_state.research_options = { + "primary_keywords": "", + "related_keywords": "", + "target_audience": ["General"], + "content_type": ["Blog Posts"], + "search_depth": 3, + "geo_location": "us", + "search_language": "en", + "num_results": 10, + "time_range": "past month", + "include_domains": "", + "similar_url": "" + } + + # Define the research options dialog function + @st.dialog("πŸ” Research Options", width="large") + def show_research_options(): + tab1, tab2, tab3 = st.tabs(["Basic", "Advanced", "Technical"]) + + with tab1: + st.session_state.research_options["related_keywords"] = st.text_input( + "Related Keywords", + value=st.session_state.research_options["related_keywords"], + placeholder="Enter related terms...", + help="Additional keywords to provide context and expand research" + ) + + st.session_state.research_options["target_audience"] = st.multiselect( + "Target Audience", + ["General", "Technical", "Business", "Academic", "Youth", "Senior"], + default=st.session_state.research_options["target_audience"], + help="Select your target audience to focus research" + ) + + st.session_state.research_options["content_type"] = st.multiselect( + "Content Type", + ["Blog Posts", "Articles", "Social Media", "Whitepapers", "Tutorials", "Videos"], + default=st.session_state.research_options["content_type"], + help="Select content types to tailor research results" + ) + + st.session_state.research_options["search_depth"] = st.slider( + "Search Depth", + min_value=1, + max_value=5, + value=st.session_state.research_options["search_depth"], + help="Higher depth means more comprehensive but slower research" + ) + + with tab2: + col1, col2 = st.columns(2) + with col1: + st.session_state.research_options["geo_location"] = st.selectbox( + "Geographic Location", + options=["us", "in", "uk", "fr", "de", "jp", "custom"], + index=["us", "in", "uk", "fr", "de", "jp"].index(st.session_state.research_options["geo_location"]), + help="Target specific geographic region for research" + ) + + st.session_state.research_options["num_results"] = st.number_input( + "Number of Results", + min_value=1, + max_value=100, + value=st.session_state.research_options["num_results"], + help="Number of results to analyze" + ) + + with col2: + st.session_state.research_options["search_language"] = st.selectbox( + "Search Language", + options=["en", "hi", "fr", "de", "es", "custom"], + index=["en", "hi", "fr", "de", "es"].index(st.session_state.research_options["search_language"]), + help="Primary language for search results" + ) + + st.session_state.research_options["time_range"] = st.selectbox( + "Time Range", + options=["past day", "past week", "past month", "past year", "anytime"], + index=["past day", "past week", "past month", "past year", "anytime"].index(st.session_state.research_options["time_range"]), + help="Time period for research results" + ) + + with tab3: + st.session_state.research_options["include_domains"] = st.text_input( + "Include Domains", + value=st.session_state.research_options["include_domains"], + placeholder="example.com, another.com", + help="Specific domains to include in research" + ) + + st.session_state.research_options["similar_url"] = st.text_input( + "Similar URL", + value=st.session_state.research_options["similar_url"], + placeholder="https://example.com/page", + help="Find content similar to this URL" + ) + + # Research method selection + st.markdown("### Select Research Method") + search_options = [ + ("google", "πŸ” Google Search", "Traditional web research with AI analysis", bool(api_keys['SERPER_API_KEY'])), + ("ai", "πŸ€– AI Search", "Neural search with semantic analysis", bool(api_keys['METAPHOR_API_KEY'] and api_keys['TAVILY_API_KEY'])), + ("deep", "πŸ”¬ Deep Search (Beta)", "Advanced deep web analysis", bool(all(api_keys.values()))) + ] + + enabled_options = [opt[1] for opt in search_options if opt[3]] + if enabled_options: + selected_option = st.radio( + "Search Method", + options=enabled_options, + horizontal=True, + help="Choose your preferred research method" + ) + else: + st.warning("No search methods available. Please configure API keys.") + + col1, col2 = st.columns([1, 1]) + with col1: + if st.button("Apply", use_container_width=True, type="primary"): + st.session_state.show_options_dialog = False + st.rerun() + with col2: + if st.button("Cancel", use_container_width=True): + st.session_state.show_options_dialog = False + st.rerun() + + # Main interface + st.title("Keyword Research Assistant") + + # Primary search area with help popover + with st.popover("ℹ️ Keyword Research Tips"): + st.markdown(""" + ### How to Get Better Results + 1. **Primary Keywords**: Your main topic or focus + 2. **Related Keywords**: Supporting terms that add context + 3. **Search Depth**: Higher depth = more comprehensive but slower + 4. **Target Audience**: Affects content recommendations + 5. **Content Type**: Influences research focus + """) + + col1, col2 = st.columns([3, 1]) + with col1: + st.session_state.research_options["primary_keywords"] = st.text_input( + "Primary Keywords", + value=st.session_state.research_options["primary_keywords"], + placeholder="Enter main keywords for research...", + help="Enter your main topic or focus keywords" + ) + with col2: + if st.button("Research Options", use_container_width=True): + show_research_options() + + # Execute search button + if st.button("πŸ” Start Research", type="primary", use_container_width=True): + if not st.session_state.research_options["primary_keywords"]: + st.warning("⚠️ Please enter primary keywords for research") + return + + try: + # Create compact progress display + progress_container = st.container() + with progress_container: + status_col, progress_col = st.columns([3, 1]) + with status_col: + status_display = st.empty() + status_display.info("πŸš€ Initializing research...") + with progress_col: + progress_bar = st.progress(0) + + # Execute search with all parameters + web_research_result = gpt_web_researcher( + search_keywords=st.session_state.research_options["primary_keywords"], + related_keywords=st.session_state.research_options["related_keywords"], + target_audience=st.session_state.research_options["target_audience"], + content_type=st.session_state.research_options["content_type"], + search_depth=st.session_state.research_options["search_depth"], + geo_location=st.session_state.research_options["geo_location"], + search_language=st.session_state.research_options["search_language"], + num_results=st.session_state.research_options["num_results"], + time_range=st.session_state.research_options["time_range"], + include_domains=st.session_state.research_options["include_domains"], + similar_url=st.session_state.research_options["similar_url"] + ) + + if web_research_result: + status_display.success("✨ Research completed!") + + # Display results in an organized way + with st.expander("πŸ“Š Research Results", expanded=True): + st.write(web_research_result) + else: + st.warning("No results found for your search") + + except Exception as e: + error_msg = f"Research failed: {str(e)}" + logger.error(error_msg, exc_info=True) + st.error(f"🚫 Research failed: {error_msg}") + + except Exception as e: + logger.error(f"Unexpected error in web research: {e}", exc_info=True) + st.error("🚫 An unexpected error occurred. Please try again.") \ No newline at end of file diff --git a/lib/utils/alwrity_utils.py b/lib/utils/alwrity_utils.py index dd80f33a..64a3d446 100644 --- a/lib/utils/alwrity_utils.py +++ b/lib/utils/alwrity_utils.py @@ -457,26 +457,6 @@ def competitor_analysis(): st.error("Please enter a valid URL.") -def do_web_research(): - """ Input keywords and do web research and present a report.""" - st.title("Web Research Assistant") - st.write("Enter keywords for web research. The keywords should be at least three words long.") - - search_keywords = st.text_input("Search Keywords", placeholder="Enter keywords for web research...") - if st.button("Start Web Research"): - if search_keywords and len(search_keywords.split()) >= 3: - try: - st.info(f"Starting web research on given keywords: {search_keywords}") - with st.spinner("Performing web research..."): - web_research_result = gpt_web_researcher(search_keywords) - st.success("Web research completed successfully!") - st.write(web_research_result) - except Exception as err: - st.error(f"ERROR: Failed to do web research: {err}") - else: - st.warning("Search keywords should be at least three words long. Please try again.") - - def ai_finance_ta_writer(): st.markdown("
AI Financial Technical Analysis Writer
", unsafe_allow_html=True) diff --git a/lib/utils/content_generators.py b/lib/utils/content_generators.py index 161bb6f0..e1c4a0a8 100644 --- a/lib/utils/content_generators.py +++ b/lib/utils/content_generators.py @@ -1,12 +1,12 @@ import streamlit as st from lib.utils.alwrity_utils import ( blog_from_keyword, ai_agents_team, essay_writer, ai_news_writer, - ai_finance_ta_writer, ai_social_writer, do_web_research, competitor_analysis + ai_finance_ta_writer, competitor_analysis ) +from lib.alwrity_ui.keyword_web_researcher import do_web_research from lib.ai_writers.ai_story_writer.story_writer import story_input_section from lib.ai_writers.ai_product_description_writer import write_ai_prod_desc #from lib.content_planning_calender.content_planning_agents_alwrity_crew import ai_agents_content_planner -from lib.utils.seo_tools import ai_seo_tools def ai_writers(): diff --git a/requirements.txt b/requirements.txt index 881f53b4..0d144f47 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ beautifulsoup4==4.12.2 aiohttp>=3.11.11 openai>=1.3.7 PyPDF2>=3.0.1 -google-genai==1.9.0 +google-genai>=1.0.0 anthropic>=0.18.1 tenacity>=8.2.3 tabulate>=0.9.0 @@ -31,7 +31,8 @@ prompt_toolkit>=3.0.43 html2image>=2.0.5 lxml[html_clean]>=5.3.0 lxml_html_clean>=0.4.1 -streamlit>=1.29.0 +streamlit>=1.44.0 +Authlib>=1.3.2 yfinance>=0.2.36 pandas_ta>=0.3.14b0 firecrawl-py>=1.14.1 From c40ce6ce4c2a9e3f0e1a766c47b29e2d6836295d Mon Sep 17 00:00:00 2001 From: ajaysi Date: Wed, 2 Apr 2025 22:41:25 +0530 Subject: [PATCH 5/7] Google Search Grounded results, Content Calendar Ideator, Competitor Analysis, and Keyword Researcher --- .gitignore | 4 + alwrity.py | 147 +++-- .../.gpt_online_researcher.py.swp | Bin 16384 -> 0 bytes .../gemini_grounding_search_streamlit.py | 155 +++++ lib/utils/alwrity_sidebar.py | 244 -------- .../components/personalization_setup.py | 19 +- lib/utils/settings_page.py | 438 ++++++++++++++ {pages => lib/utils}/style_utils.py | 160 ++++-- {pages => lib/utils}/test_config_settings.py | 4 +- lib/utils/ui_setup.py | 90 ++- lib/workspace/AskAlwrity-min.ico | Bin 0 -> 80525 bytes lib/workspace/alwrity_ui_styling.css | 541 ++++++++++++++++-- lib/workspace/structured_data_seo.mp4 | Bin 543527 -> 0 bytes pages/ai_research_setup_page.py | 50 -- pages/personalization_setup.py | 84 --- requirements.txt | 2 +- 16 files changed, 1408 insertions(+), 530 deletions(-) delete mode 100644 lib/ai_web_researcher/.gpt_online_researcher.py.swp create mode 100644 lib/ai_web_researcher/gemini_grounding_search_streamlit.py delete mode 100644 lib/utils/alwrity_sidebar.py create mode 100644 lib/utils/settings_page.py rename {pages => lib/utils}/style_utils.py (64%) rename {pages => lib/utils}/test_config_settings.py (99%) create mode 100644 lib/workspace/AskAlwrity-min.ico delete mode 100644 lib/workspace/structured_data_seo.mp4 delete mode 100644 pages/ai_research_setup_page.py delete mode 100644 pages/personalization_setup.py diff --git a/.gitignore b/.gitignore index c20efe30..b6b32d43 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,10 @@ __pycache__ *.pywpz *.pywpzp +lib/workspace/alwrity_web_research/* +lib/workspace/alwrity_web_research_cache/* +web_research_report* + .swp .swo .swn diff --git a/alwrity.py b/alwrity.py index b6ffb3fd..e55f793b 100644 --- a/alwrity.py +++ b/alwrity.py @@ -1,11 +1,16 @@ import streamlit as st +import os +import json +import base64 +import logging +from datetime import datetime # Set page config - must be the first Streamlit command st.set_page_config( page_title="AI Writer - Content Generation Platform", page_icon="✍️", layout="wide", - initial_sidebar_state="collapsed", # Start with collapsed sidebar + initial_sidebar_state="expanded", # Changed from collapsed to expanded menu_items={ 'Get Help': None, 'Report a bug': None, @@ -13,27 +18,32 @@ st.set_page_config( } ) -# Add CSS to hide sidebar during setup -st.markdown(""" +# Load and apply custom CSS +with open('lib/workspace/alwrity_ui_styling.css', 'r') as f: + css = f.read() + +st.markdown(f""" """, unsafe_allow_html=True) -import os -import json -import base64 -import logging -from datetime import datetime - # Configure logging logging.basicConfig( level=logging.DEBUG, @@ -45,18 +55,13 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -from lib.utils.config_manager import save_config from lib.utils.ui_setup import setup_ui -from lib.utils.alwrity_sidebar import sidebar_configuration from lib.utils.api_key_manager.api_key_manager import APIKeyManager, render from lib.utils.api_key_manager.validation import check_all_api_keys from dotenv import load_dotenv -from lib.utils.content_generators import ai_writers, content_planning_tools, blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis -from lib.utils.seo_tools import ai_seo_tools -from lib.utils.ui_setup import setup_ui, setup_tabs -from lib.utils.alwrity_utils import ai_agents_team, ai_social_writer -from lib.utils.file_processor import load_image, read_prompts, write_prompts -from lib.utils.voice_processing import record_voice +from lib.utils.content_generators import blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis +from lib.utils.ui_setup import setup_ui, setup_alwrity_ui + def process_folder_for_rag(folder_path): """Placeholder for the process_folder_for_rag function.""" @@ -94,36 +99,110 @@ def main(): # Check API keys and show setup if needed if not check_all_api_keys(api_key_manager): logger.info("API keys not verified") + # Add CSS to hide sidebar during setup + st.markdown(""" + + """, unsafe_allow_html=True) render(api_key_manager) return else: logger.info("All API keys verified") - # Remove the CSS that hides the sidebar + # Remove the CSS that hides the sidebar and ensure it's expanded st.markdown(""" + + """, unsafe_allow_html=True) + + # Set session state to ensure sidebar stays expanded + if 'sidebar_expanded' not in st.session_state: + st.session_state.sidebar_expanded = True + + # Force sidebar state + st.sidebar.markdown(""" + """, unsafe_allow_html=True) - - setup_environment_paths() - sidebar_configuration() - setup_tabs() + + setup_alwrity_ui() def setup_environment_paths(): diff --git a/lib/ai_web_researcher/.gpt_online_researcher.py.swp b/lib/ai_web_researcher/.gpt_online_researcher.py.swp deleted file mode 100644 index 1dd76695784a03bcec06f880faafe02f360a85f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 diff --git a/lib/ai_web_researcher/gemini_grounding_search_streamlit.py b/lib/ai_web_researcher/gemini_grounding_search_streamlit.py new file mode 100644 index 00000000..b3535c84 --- /dev/null +++ b/lib/ai_web_researcher/gemini_grounding_search_streamlit.py @@ -0,0 +1,155 @@ +import os +import streamlit as st +from google import genai +from google.genai.types import Tool, GenerateContentConfig, GoogleSearch + +# Set page config +st.set_page_config( + page_title="Gemini Grounding Search", + page_icon="πŸ”", + layout="wide" +) + +# Custom CSS for styling +st.markdown(""" + +""", unsafe_allow_html=True) + +# Title +st.title("Gemini Grounding Search") + +# Initialize Gemini client +if 'GEMINI_API_KEY' not in os.environ: + api_key = st.text_input("Enter your Gemini API Key:", type="password") + if api_key: + os.environ['GEMINI_API_KEY'] = api_key + +# Search input +search_query = st.text_input("Enter your search query:", "When is the next total solar eclipse in the United States?") + +if st.button("Search"): + if 'GEMINI_API_KEY' not in os.environ: + st.error("Please enter your Gemini API Key first!") + else: + try: + client = genai.Client(api_key=os.environ['GEMINI_API_KEY']) + model_id = "gemini-2.0-flash" + + google_search_tool = Tool( + google_search = GoogleSearch() + ) + + with st.spinner("Searching..."): + response = client.models.generate_content( + model=model_id, + contents=search_query, + config=GenerateContentConfig( + tools=[google_search_tool], + response_modalities=["TEXT"], + ) + ) + + # Display search results header + st.header("Search Results") + + # Display the response text + if response.candidates[0].content.parts: + st.markdown('
' + + response.candidates[0].content.parts[0].text.replace('\n', '
') + + '
', + unsafe_allow_html=True) + + # Display the grounding metadata + if hasattr(response.candidates[0], 'grounding_metadata') and \ + hasattr(response.candidates[0].grounding_metadata, 'search_entry_point') and \ + hasattr(response.candidates[0].grounding_metadata.search_entry_point, 'rendered_content'): + + st.header("Related Searches") + rendered_content = response.candidates[0].grounding_metadata.search_entry_point.rendered_content + st.markdown(rendered_content, unsafe_allow_html=True) + + except Exception as e: + st.error(f"An error occurred: {str(e)}") \ No newline at end of file diff --git a/lib/utils/alwrity_sidebar.py b/lib/utils/alwrity_sidebar.py deleted file mode 100644 index 8665bead..00000000 --- a/lib/utils/alwrity_sidebar.py +++ /dev/null @@ -1,244 +0,0 @@ -import streamlit as st -import logging - -from .config_manager import save_config - -# Configure logging -logging.basicConfig( - level=logging.DEBUG, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', - handlers=[ - logging.StreamHandler(), # Output to console - #logging.FileHandler('alwrity.log') # Output to file - ] -) -logger = logging.getLogger(__name__) - -# Sidebar configuration -def sidebar_configuration(): - """Configure the sidebar with all necessary options.""" - try: - # Configure sidebar styling - st.sidebar.markdown(""" - - """, unsafe_allow_html=True) - - logger.info("Initializing sidebar configuration") - st.sidebar.title("πŸ› οΈ Personalization & Settings πŸ—οΈ") - - with st.sidebar.expander("**πŸ‘· Content Personalization**"): - logger.debug("Setting up content personalization options") - blog_length = st.text_input("**Content Length (words)**", value="2000", - help="Approximate word count for blogs. Note: Actual length may vary based on GPT provider and max token count.") - - blog_tone_options = ["Casual", "Professional", "How-to", "Beginner", "Research", "Programming", "Social Media", "Customize"] - blog_tone = st.selectbox("**Content Tone**", - options=blog_tone_options, - help="Select the desired tone for the blog content.") - logger.debug(f"Selected blog tone: {blog_tone}") - - if blog_tone == "Customize": - custom_tone = st.text_input("Enter the tone of your content", help="Specify the tone of your content.") - if custom_tone: - blog_tone = custom_tone - logger.debug(f"Custom tone set to: {custom_tone}") - else: - logger.warning("Custom tone not specified") - st.warning("Please specify the tone of your content.") - - blog_demographic_options = ["Professional", "Gen-Z", "Tech-savvy", "Student", "Digital Marketing", "Customize"] - - blog_demographic = st.selectbox("**Target Audience**", - options=blog_demographic_options, - help="Select the primary audience for the blog content.") - if blog_demographic == "Customize": - custom_demographic = st.text_input("Enter your target audience", - help="Specify your target audience.", - placeholder="Eg. Domain expert, Content creator, Financial expert etc..") - if custom_demographic: - blog_demographic = custom_demographic - else: - st.warning("Please specify your target audience.") - - blog_type = st.selectbox("**Content Type**", - options=["Informational", "Commercial", "Company", "News", "Finance", "Competitor", "Programming", "Scholar"], - help="Select the category that best describes the blog content.") - - blog_language = st.selectbox("**Content Language**", - options=["English", "Spanish", "German", "Chinese", "Arabic", "Nepali", "Hindi", "Hindustani", "Customize"], - help="Select the language in which the blog will be written.") - if blog_language == "Customize": - custom_lang = st.text_input("Enter the language of your choice", help="Specify the content language.") - if custom_lang: - blog_language = custom_lang - else: - st.warning("Please specify the language of your content.") - - blog_output_format = st.selectbox("**Content Output Format**", - options=["markdown", "HTML", "plaintext"], - help="Select the format for the blog output.") - - with st.sidebar.expander("**🩻 Images Personalization**"): - image_generation_model = st.selectbox("**Image Generation Model**", - options=["stable-diffusion", "dalle2", "dalle3"], - help="Select the model to generate images for the blog.") - number_of_blog_images = st.number_input("**Number of Blog Images**", value=1, help="Specify the number of images to include in the blog.") - - with st.sidebar.expander("**πŸ€– LLM Personalization**"): - gpt_provider = st.selectbox("**GPT Provider**", - options=["google", "openai", "minstral"], - help="Select the provider for the GPT model.") - model = st.text_input("**Model**", value="gemini-1.5-flash-latest", help="Specify the model version to use from the selected provider.") - temperature = st.slider( - "Temperature", - min_value=0.1, - max_value=1.0, - value=0.7, - step=0.1, - format="%.1f", - help="""Temperature controls the 'creativity' or randomness of the text generated by GPT. - Greater determinism with higher values indicating more randomness.""" - ) - - top_p = st.slider( - "Top-p", - min_value=0.0, - max_value=1.0, - value=0.9, - step=0.1, - format="%.1f", - help="Top-p sampling controls the level of diversity in the generated text." - ) - - # Selectbox for max tokens - max_tokens_options = [500, 1000, 2000, 4000, 16000, 32000, 64000] - max_tokens = st.selectbox( - "Max Tokens", - options=max_tokens_options, - index=max_tokens_options.index(4000), - help="Max tokens determine the maximum length of the output sequence generated by a model." - ) - n = st.number_input("N", - value=1, - min_value=1, - max_value=10, - help="Defines the number of words or characters grouped together in a sequence when analyzing text.") - frequency_penalty = st.slider( - "Frequency Penalty", - min_value=0.0, - max_value=2.0, - value=1.0, - step=0.1, - format="%.1f", - help="Influences word selection during text generation, promoting diversity with higher values." - ) - - presence_penalty = st.slider( - "Presence Penalty", - min_value=0.0, - max_value=2.0, - value=1.0, - step=0.1, - format="%.1f", - help="Encourages the use of diverse words by discouraging repetition." - ) - - with st.sidebar.expander("**πŸ•΅οΈ Search Engine Personalization**"): - geographic_location = st.selectbox("**Geographic Location**", - options=["us", "in", "fr", "cn"], - help="Select the geographic location for tailoring search results.") - search_language = st.selectbox("**Search Language**", - options=["en", "zn-cn", "de", "hi"], - help="Select the language for the search results.") - number_of_results = st.number_input("**Number of Results**", - value=10, - max_value=20, - min_value=1, - help="Specify the number of search results to retrieve.") - time_range = st.selectbox("**Time Range**", - options=["anytime", "past day", "past week", "past month", "past year"], - help="Select the time range for filtering search results.") - include_domains = st.text_input("**Include Domains**", value="", - help="List specific domains to include in search results. Leave blank to include all domains.") - similar_url = st.text_input("**Similar URL**", value="", help="Provide a URL to find similar results. Leave blank if not needed.") - - # Storing collected inputs in a dictionary - config = { - "Blog Content Characteristics": { - "Blog Length": blog_length, - "Blog Tone": blog_tone, - "Blog Demographic": blog_demographic, - "Blog Type": blog_type, - "Blog Language": blog_language, - "Blog Output Format": blog_output_format - }, - "Blog Images Details": { - "Image Generation Model": image_generation_model, - "Number of Blog Images": number_of_blog_images - }, - "LLM Options": { - "GPT Provider": gpt_provider, - "Model": model, - "Temperature": temperature, - "Top-p": top_p, - "Max Tokens": max_tokens, - "N": n, - "Frequency Penalty": frequency_penalty, - "Presence Penalty": presence_penalty - }, - "Search Engine Parameters": { - "Geographic Location": geographic_location, - "Search Language": search_language, - "Number of Results": number_of_results, - "Time Range": time_range, - "Include Domains": include_domains, - "Similar URL": similar_url - } - } - - # Writing the configuration to a file whenever a change is made - save_config(config) - except Exception as e: - logger.error(f"Error configuring sidebar: {str(e)}") - st.error(f"Error configuring sidebar: {str(e)}") \ No newline at end of file diff --git a/lib/utils/api_key_manager/components/personalization_setup.py b/lib/utils/api_key_manager/components/personalization_setup.py index f4f773c4..cd61fb15 100644 --- a/lib/utils/api_key_manager/components/personalization_setup.py +++ b/lib/utils/api_key_manager/components/personalization_setup.py @@ -8,11 +8,13 @@ from typing import Dict, Any from ..manager import APIKeyManager from ....web_crawlers.async_web_crawler import AsyncWebCrawlerService from ....personalization.style_analyzer import StyleAnalyzer -from pages.style_utils import ( - get_analysis_section, +from lib.utils.style_utils import ( + get_test_config_styles, get_glass_container, get_info_section, - get_example_box + get_example_box, + get_analysis_section, + get_style_guide_html ) from .base import render_navigation_buttons from .alwrity_integrations import render_alwrity_integrations @@ -618,7 +620,7 @@ def render_personalization_setup(api_key_manager: APIKeyManager) -> Dict[str, An st.warning("Please provide either a website URL or content samples") with col2: - st.markdown(""" + st.markdown(get_glass_container(""" ### How ALwrity Discovers Your Style **AI-Powered Style Analysis** @@ -651,10 +653,15 @@ def render_personalization_setup(api_key_manager: APIKeyManager) -> Dict[str, An - Maintain consistency across all content - Optimize for your target audience - Ensure brand voice alignment - """) + """)) # API Configuration Form - st.markdown("### API Configuration") + st.markdown(get_glass_container(""" + ### API Configuration + + Configure your API settings for optimal content generation. + """)) + with st.form("ai_config_form"): # API Keys st.text_input("OpenAI API Key", type="password", key="openai_key") diff --git a/lib/utils/settings_page.py b/lib/utils/settings_page.py new file mode 100644 index 00000000..74f2b9a8 --- /dev/null +++ b/lib/utils/settings_page.py @@ -0,0 +1,438 @@ +import streamlit as st +from loguru import logger +import asyncio +from lib.web_crawlers.async_web_crawler import AsyncWebCrawlerService +from lib.personalization.style_analyzer import StyleAnalyzer +import sys + +# Configure logger +logger.remove() # Remove default handler +logger.add( + "logs/settings_page.log", + rotation="500 MB", + retention="10 days", + level="DEBUG", + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", + backtrace=True, + diagnose=True +) +logger.add( + sys.stdout, + level="INFO", + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" +) + +def display_style_analysis(analysis_results: dict): + """Display the style analysis results in a structured format.""" + try: + # Writing Style Section + st.markdown("### 🎨 Writing Style Analysis") + writing_style = analysis_results.get("writing_style", {}) + writing_style_content = f""" +
    +
  • Tone: {writing_style.get("tone", "N/A")}
  • +
  • Voice: {writing_style.get("voice", "N/A")}
  • +
  • Complexity: {writing_style.get("complexity", "N/A")}
  • +
  • Engagement Level: {writing_style.get("engagement_level", "N/A")}
  • +
+ """ + st.markdown(writing_style_content, unsafe_allow_html=True) + + # Content Characteristics Section + content_chars = analysis_results.get("content_characteristics", {}) + content_chars_content = f""" +
    +
  • Sentence Structure: {content_chars.get("sentence_structure", "N/A")}
  • +
  • Vocabulary Level: {content_chars.get("vocabulary_level", "N/A")}
  • +
  • Paragraph Organization: {content_chars.get("paragraph_organization", "N/A")}
  • +
  • Content Flow: {content_chars.get("content_flow", "N/A")}
  • +
+ """ + st.markdown(content_chars_content, unsafe_allow_html=True) + + # Target Audience Section + target_audience = analysis_results.get("target_audience", {}) + target_audience_content = f""" +
    +
  • Demographics: {', '.join(target_audience.get("demographics", ["N/A"]))}
  • +
  • Expertise Level: {target_audience.get("expertise_level", "N/A")}
  • +
  • Industry Focus: {target_audience.get("industry_focus", "N/A")}
  • +
  • Geographic Focus: {target_audience.get("geographic_focus", "N/A")}
  • +
+ """ + st.markdown(target_audience_content, unsafe_allow_html=True) + + # Content Type Section + content_type = analysis_results.get("content_type", {}) + content_type_content = f""" +
    +
  • Primary Type: {content_type.get("primary_type", "N/A")}
  • +
  • Secondary Types: {', '.join(content_type.get("secondary_types", ["N/A"]))}
  • +
  • Purpose: {content_type.get("purpose", "N/A")}
  • +
  • Call to Action: {content_type.get("call_to_action", "N/A")}
  • +
+ """ + st.markdown(content_type_content, unsafe_allow_html=True) + + # Recommended Settings Section + recommended = analysis_results.get("recommended_settings", {}) + recommended_content = f""" +
    +
  • Writing Tone: {recommended.get("writing_tone", "N/A")}
  • +
  • Target Audience: {recommended.get("target_audience", "N/A")}
  • +
  • Content Type: {recommended.get("content_type", "N/A")}
  • +
  • Creativity Level: {recommended.get("creativity_level", "N/A")}
  • +
  • Geographic Location: {recommended.get("geographic_location", "N/A")}
  • +
+ """ + st.markdown(recommended_content, unsafe_allow_html=True) + + except Exception as e: + logger.error(f"Error displaying style analysis: {str(e)}") + st.error(f"Error displaying analysis results: {str(e)}") + +def render_settings_page(): + """Renders the settings page with all configuration options in tabs""" + st.title("πŸ› οΈ Settings & Configuration") + + # Create tabs for different settings categories + tabs = st.tabs([ + "πŸ‘· Content", + "🩻 Images", + "πŸ€– LLM", + "πŸ•΅οΈ Search", + "🎨 AI Personalization" + ]) + + # Content Settings Tab + with tabs[0]: + st.header("Content Personalization") + blog_length = st.text_input( + "**Content Length (words)**", + value="2000", + key="settings_blog_length", + help="Approximate word count for blogs. Note: Actual length may vary based on GPT provider and max token count." + ) + + blog_tone_options = ["Casual", "Professional", "How-to", "Beginner", "Research", "Programming", "Social Media", "Customize"] + blog_tone = st.selectbox( + "**Content Tone**", + options=blog_tone_options, + key="settings_blog_tone", + help="Select the desired tone for the blog content." + ) + + if blog_tone == "Customize": + custom_tone = st.text_input( + "Enter the tone of your content", + key="settings_custom_tone", + help="Specify the tone of your content." + ) + if custom_tone: + blog_tone = custom_tone + else: + st.warning("Please specify the tone of your content.") + + blog_demographic_options = ["Professional", "Gen-Z", "Tech-savvy", "Student", "Digital Marketing", "Customize"] + blog_demographic = st.selectbox( + "**Target Audience**", + options=blog_demographic_options, + key="settings_blog_demographic", + help="Select the primary audience for the blog content." + ) + + blog_type = st.selectbox( + "**Content Type**", + options=["Informational", "Commercial", "Company", "News", "Finance", "Competitor", "Programming", "Scholar"], + key="settings_blog_type", + help="Select the category that best describes the blog content." + ) + + blog_language = st.selectbox( + "**Content Language**", + options=["English", "Spanish", "German", "Chinese", "Arabic", "Nepali", "Hindi", "Hindustani", "Customize"], + key="settings_blog_language", + help="Select the language in which the blog will be written." + ) + + blog_output_format = st.selectbox( + "**Content Output Format**", + options=["markdown", "HTML", "plaintext"], + key="settings_blog_output_format", + help="Select the format for the blog output." + ) + + # Images Settings Tab + with tabs[1]: + st.header("Images Personalization") + image_generation_model = st.selectbox( + "**Image Generation Model**", + options=["stable-diffusion", "dalle2", "dalle3"], + key="settings_image_model", + help="Select the model to generate images for the blog." + ) + + number_of_blog_images = st.number_input( + "**Number of Blog Images**", + value=1, + min_value=1, + max_value=10, + key="settings_number_of_images", + help="Specify the number of images to include in the blog." + ) + + # LLM Settings Tab + with tabs[2]: + st.header("LLM Personalization") + gpt_provider = st.selectbox( + "**GPT Provider**", + options=["google", "openai", "minstral"], + key="settings_gpt_provider", + help="Select the provider for the GPT model." + ) + + model = st.text_input( + "**Model**", + value="gemini-1.5-flash-latest", + key="settings_model", + help="Specify the model version to use from the selected provider." + ) + + col1, col2 = st.columns(2) + with col1: + temperature = st.slider( + "Temperature", + min_value=0.1, + max_value=1.0, + value=0.7, + step=0.1, + key="settings_temperature", + help="Controls the creativity level of the generated text." + ) + + max_tokens = st.selectbox( + "Max Tokens", + options=[500, 1000, 2000, 4000, 16000, 32000, 64000], + index=3, + key="settings_max_tokens", + help="Maximum length of the output sequence." + ) + + with col2: + top_p = st.slider( + "Top-p", + min_value=0.0, + max_value=1.0, + value=0.9, + step=0.1, + key="settings_top_p", + help="Controls diversity in text generation." + ) + + frequency_penalty = st.slider( + "Frequency Penalty", + min_value=0.0, + max_value=2.0, + value=1.0, + step=0.1, + key="settings_frequency_penalty", + help="Reduces word repetition in output." + ) + + # Search Settings Tab + with tabs[3]: + st.header("Search Engine Personalization") + geographic_location = st.selectbox( + "**Geographic Location**", + options=["us", "in", "fr", "cn"], + key="settings_geographic_location", + help="Select the geographic location for tailoring search results." + ) + + search_language = st.selectbox( + "**Search Language**", + options=["en", "zn-cn", "de", "hi"], + key="settings_search_language", + help="Select the language for the search results." + ) + + number_of_results = st.number_input( + "**Number of Results**", + value=10, + min_value=1, + max_value=20, + key="settings_number_of_results", + help="Specify the number of search results to retrieve." + ) + + time_range = st.selectbox( + "**Time Range**", + options=["anytime", "past day", "past week", "past month", "past year"], + key="settings_time_range", + help="Select the time range for filtering search results." + ) + + include_domains = st.text_input( + "**Include Domains**", + value="", + key="settings_include_domains", + help="List specific domains to include in search results (comma-separated)." + ) + + similar_url = st.text_input( + "**Similar URL**", + value="", + key="settings_similar_url", + help="Provide a URL to find similar results." + ) + + # AI Personalization Tab + with tabs[4]: + st.header("🎨 AI Style Analysis") + st.markdown(""" +
+

Enter a website URL or provide content samples to analyze your writing style and get personalized recommendations.

+
+ """, unsafe_allow_html=True) + + # Create two columns for the layout + col1, col2 = st.columns([2, 1]) + + with col1: + # Website URL input + st.markdown("### Website URL") + url = st.text_input( + "Enter your website URL", + placeholder="https://example.com", + key="settings_website_url", + help="Provide your website URL to analyze your content style. Leave empty if you want to provide written samples instead." + ) + + # Alternative: Written samples + if not url: + st.markdown("### Written Samples") + st.markdown(""" +
+

No website URL? No problem! You can provide written samples of your content instead.

+

Share your best articles, blog posts, or any content that represents your writing style.

+
+ """, unsafe_allow_html=True) + samples = st.text_area( + "Paste your content samples here", + key="settings_content_samples", + help="Paste 2-3 samples of your best content. This helps ALwrity understand your writing style." + ) + + # ALwrity Style button + st.markdown("
", unsafe_allow_html=True) + if st.button("🎨 Analyze Style", use_container_width=True, key="settings_analyze_style"): + if url: + with st.status("Starting style analysis...", expanded=True) as status: + try: + # Step 1: Initialize crawler + status.update(label="Step 1/4: Initializing web crawler...", state="running") + crawler_service = AsyncWebCrawlerService() + + # Step 2: Crawl website + status.update(label="Step 2/4: Crawling website content...", state="running") + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + result = loop.run_until_complete(crawler_service.crawl_website(url)) + loop.close() + + if result.get('success', False): + content = result.get('content', {}) + + # Step 3: Initialize style analyzer + status.update(label="Step 3/4: Analyzing content style...", state="running") + style_analyzer = StyleAnalyzer() + + # Step 4: Perform style analysis + status.update(label="Step 4/4: Generating style recommendations...", state="running") + style_analysis = style_analyzer.analyze_content_style(content) + + if style_analysis.get('error'): + status.update(label="Analysis failed", state="error") + st.error(f"Style analysis failed: {style_analysis['error']}") + else: + status.update(label="Analysis complete!", state="complete") + # Display style analysis results + display_style_analysis(style_analysis) + + # Display original content in tabs + tab1, tab2, tab3 = st.tabs(["Content", "Metadata", "Links"]) + + with tab1: + st.markdown("### Main Content") + st.markdown(content.get('main_content', 'No content found')) + + with tab2: + st.markdown("### Metadata") + st.markdown(f""" + **Title:** {content.get('title', 'No title found')} + + **Description:** {content.get('description', 'No description found')} + + **Meta Tags:** + {content.get('meta_tags', {})} + """) + + with tab3: + st.markdown("### Links") + for link in content.get('links', []): + st.markdown(f"- [{link.get('text', '')}]({link.get('href', '')})") + else: + status.update(label="Crawling failed", state="error") + st.error("Failed to crawl the website. Please check the URL and try again.") + except Exception as e: + status.update(label="Analysis failed", state="error") + st.error(f"An error occurred during analysis: {str(e)}") + elif samples: + with st.status("Starting style analysis...", expanded=True) as status: + try: + # Initialize style analyzer + status.update(label="Analyzing content style...", state="running") + style_analyzer = StyleAnalyzer() + + # Perform style analysis + style_analysis = style_analyzer.analyze_content_style({"main_content": samples}) + + if style_analysis.get('error'): + status.update(label="Analysis failed", state="error") + st.error(f"Style analysis failed: {style_analysis['error']}") + else: + status.update(label="Analysis complete!", state="complete") + # Display style analysis results + display_style_analysis(style_analysis) + except Exception as e: + status.update(label="Analysis failed", state="error") + st.error(f"An error occurred during analysis: {str(e)}") + else: + st.warning("Please provide either a website URL or content samples to analyze.") + + # Save Settings Button + if st.button("πŸ’Ύ Save Settings", type="primary", use_container_width=True, key="settings_save_button"): + # Save all settings to session state + st.session_state.update({ + 'blog_length': blog_length, + 'blog_tone': blog_tone, + 'blog_demographic': blog_demographic, + 'blog_type': blog_type, + 'blog_language': blog_language, + 'blog_output_format': blog_output_format, + 'image_generation_model': image_generation_model, + 'number_of_blog_images': number_of_blog_images, + 'gpt_provider': gpt_provider, + 'model': model, + 'temperature': temperature, + 'top_p': top_p, + 'max_tokens': max_tokens, + 'frequency_penalty': frequency_penalty, + 'geographic_location': geographic_location, + 'search_language': search_language, + 'number_of_results': number_of_results, + 'time_range': time_range, + 'include_domains': include_domains, + 'similar_url': similar_url + }) + st.success("βœ… Settings saved successfully!") \ No newline at end of file diff --git a/pages/style_utils.py b/lib/utils/style_utils.py similarity index 64% rename from pages/style_utils.py rename to lib/utils/style_utils.py index cf0345cc..049f5038 100644 --- a/pages/style_utils.py +++ b/lib/utils/style_utils.py @@ -267,79 +267,147 @@ def get_glassmorphic_styles() -> str: """ +def get_test_config_styles(): + """Returns CSS styles for the test configuration page.""" + return """ + + """ + def get_glass_container(content: str) -> str: - """Wrap content in a glass container.""" + """Returns HTML for a glass-morphism container.""" return f""" -
+
{content}
""" def get_info_section(content: str) -> str: - """Wrap content in an info section.""" + """Returns HTML for an info section.""" return f""" -
+
{content}
""" def get_example_box(content: str) -> str: - """Wrap content in an example box.""" + """Returns HTML for an example box.""" return f""" -
+
{content}
""" def get_analysis_section(title: str, content: str) -> str: - """Create an analysis section with title and content.""" + """Returns HTML for an analysis section.""" return f""" -
+

{title}

{content}
""" def get_style_guide_html() -> str: - """ - Get the style guide HTML content. - - Returns: - str: HTML content for the style guide section - """ + """Returns HTML for the style guide section.""" return """ - ### How ALwrity Discovers Your Style - - **AI-Powered Style Analysis** - - ALwrity AI analyzes your existing content to understand your unique writing style and preferences. This helps us generate content that matches your voice perfectly. - - **Step 1: Content Analysis** - - We'll analyze your website content or written samples to understand: - - - Writing tone and voice - - Vocabulary and language style - - Content structure and formatting - - Target audience and engagement style - - **Step 2: Style Recommendations** - - Based on the analysis, we'll provide: - - - Personalized writing guidelines - - Content structure templates - - Tone and voice recommendations - - Audience engagement strategies - - **Step 3: Content Generation** - - Finally, we'll use these insights to: - - - Generate content that matches your style - - Maintain consistency across all content - - Optimize for your target audience - - Ensure brand voice alignment +
+

Style Guide

+

This section will contain your style guide and brand guidelines.

+
""" def get_test_config_styles() -> str: diff --git a/pages/test_config_settings.py b/lib/utils/test_config_settings.py similarity index 99% rename from pages/test_config_settings.py rename to lib/utils/test_config_settings.py index 1ab9a2c8..316c0de9 100644 --- a/pages/test_config_settings.py +++ b/lib/utils/test_config_settings.py @@ -148,8 +148,8 @@ def render_test_config_settings(): # Set session state for navigation st.session_state.current_step = 4 st.session_state.next_step = "personalization_setup" - # Navigate back to personalization setup - st.switch_page("pages/personalization_setup.py") + # Navigate back to the main page where personalization setup is rendered + st.switch_page("alwrity.py") # Title and description st.title("🎨 Find Your Style with ALwrity") diff --git a/lib/utils/ui_setup.py b/lib/utils/ui_setup.py index fb54c9fd..e2b6d623 100644 --- a/lib/utils/ui_setup.py +++ b/lib/utils/ui_setup.py @@ -4,6 +4,7 @@ from lib.utils.file_processor import load_image from lib.utils.content_generators import content_planning_tools, ai_writers from lib.utils.alwrity_utils import ai_social_writer from lib.utils.seo_tools import ai_seo_tools +from lib.utils.settings_page import render_settings_page def setup_ui(): @@ -67,40 +68,73 @@ def setup_ui(): border-radius: 8px; color: white; } + + /* Sidebar navigation styling */ + .sidebar-nav { + padding: 1rem 0; + } + + .nav-button { + width: 100%; + text-align: left; + padding: 0.5rem 1rem; + background: transparent; + border: none; + color: #2c3e50; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + margin: 0.2rem 0; + border-radius: 4px; + } + + .nav-button:hover { + background: rgba(0,0,0,0.05); + padding-left: 1.5rem; + } + + .nav-button.active { + background: #1565C0; + color: white; + } """, unsafe_allow_html=True) - image_base64 = load_image("lib/workspace/alwrity_logo.png") - st.markdown(f""" -
- Alwrity Logo - Welcome to Alwrity! -
- """, unsafe_allow_html=True) +def setup_alwrity_ui(): + """Sets up the main navigation in the sidebar.""" + # Initialize session state for active tab if not exists + if 'active_tab' not in st.session_state: + st.session_state.active_tab = "Content Planning" -def setup_tabs(): - """Sets up the main tabs in the Streamlit app.""" - tab1, tab2, tab3, tab4, tab5, tab6 = st.tabs( - ["πŸ“…Content Planning", " πŸ“πŸ€–AI Writers", "πŸ€πŸ€–Agents Teams", "πŸ› οΈπŸ”AI SEO tools", "πŸ“±AI Social Tools", " πŸ’¬Ask Alwrity"]) - with tab1: - content_planning_tools() + # Define the navigation items with their icons and functions + nav_items = { + "Content Planning": ("πŸ“…", content_planning_tools), + "AI Writers": ("πŸ“", ai_writers), + "Agents Teams": ("🀝", lambda: st.subheader("Agents Teams - Coming Soon!")), + "AI SEO Tools": ("πŸ”", ai_seo_tools), + "AI Social Tools": ("πŸ“±", ai_social_writer), + "Ask Alwrity": ("πŸ’¬", lambda: ( + st.subheader("Chat with your Data, Chat with any Data.. COMING SOON !"), + st.markdown("Create a collection by uploading files (PDF, MD, CSV, etc), or crawl a data source (Websites, more sources coming soon."), + st.markdown("One can ask/chat, summarize and do semantic search over the uploaded data") + )), + "ALwrity Settings": ("βš™οΈ", render_settings_page) + } - with tab2: - ai_writers() + # Create sidebar navigation + st.sidebar.markdown("### ALwrity Options") + st.sidebar.markdown('', unsafe_allow_html=True) - with tab6: - st.subheader("Chat with your Data, Chat with any Data.. COMING SOON !") - st.markdown("Create a collection by uploading files (PDF, MD, CSV, etc), or crawl a data source (Websites, more sources coming soon.") - st.markdown("One can ask/chat, summarize and do semantic search over the uploaded data") - # alwrity_chat_docqa() + # Display content based on active tab + st.title(f"{nav_items[st.session_state.active_tab][0]} {st.session_state.active_tab}") + nav_items[st.session_state.active_tab][1]() \ No newline at end of file diff --git a/lib/workspace/AskAlwrity-min.ico b/lib/workspace/AskAlwrity-min.ico new file mode 100644 index 0000000000000000000000000000000000000000..abaf82cefdd4a1dd973604ac6b0eab04c68cf00f GIT binary patch literal 80525 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 v#V79HPZp;8aM=9SnL}@$ div { + background: #FFFFFF; +} + +.stTextInput > div > div > input { + background: #F7FAFC; + border: 2px solid #E2E8F0; + border-radius: 10px; + padding: 12px 16px; + font-size: 15px; + color: #2D3748; + transition: all 0.3s ease; +} + +.stTextInput > div > div > input:hover { + border-color: #CBD5E0; + background: #EDF2F7; +} + +.stTextInput > div > div > input:focus { + border-color: #C53030; + box-shadow: 0 0 0 3px rgba(197, 48, 48, 0.2); + background: #FFFFFF; +} + +/* Sidebar container styling - subtle modern gradient */ +[data-testid="stSidebar"] { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + color: #334155; + padding: 20px; + border-right: 1px solid rgba(148, 163, 184, 0.2); + box-shadow: 2px 0 8px rgba(0, 0, 0, 0.05); + transition: width 0.3s ease-in-out !important; +} + +/* Collapsed sidebar styling */ +[data-testid="stSidebar"][aria-expanded="false"] { + margin-left: -21rem; +} + +/* Sidebar title styling - improved contrast */ +[data-testid="stSidebar"] h1, [data-testid="stSidebar"] h2, [data-testid="stSidebar"] h3 { + color: #1e293b; + font-weight: 600; + margin-bottom: 1.5rem; + letter-spacing: 0.02em; + border-bottom: 2px solid #e2e8f0; + padding-bottom: 0.75rem; +} + +/* Sidebar expander styling - modern and subtle */ +[data-testid="stSidebar"] .st-expander { + background: linear-gradient(135deg, #ffffff, #f8fafc); + border: 1px solid #e2e8f0; + border-radius: 8px; + margin-bottom: 1rem; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03); + overflow: hidden; +} + +[data-testid="stSidebar"] .st-expander > div:first-child { + color: #334155; + font-weight: 600; + padding: 0.875rem 1rem; + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + border-bottom: 1px solid #e2e8f0; +} + +/* Radio button styling - improved visibility */ +[data-testid="stSidebar"] .stRadio > div { + display: flex; + flex-direction: column; + gap: 0.625rem; +} + +[data-testid="stSidebar"] .stRadio > div > label { + background: #ffffff; + color: #334155; + padding: 0.75rem 1rem; + border-radius: 6px; + font-weight: 500; + border: 1px solid #e2e8f0; + transition: all 0.2s ease; +} + +[data-testid="stSidebar"] .stRadio > div > label:hover { + background: linear-gradient(135deg, #f1f5f9, #e2e8f0); + transform: translateY(-1px); + border-color: #cbd5e1; +} + +[data-testid="stSidebar"] .stRadio > div > label[data-selected="true"] { + background: linear-gradient(135deg, #0ea5e9, #0284c7); + color: #ffffff; + border-color: #0284c7; + box-shadow: 0 2px 4px rgba(2, 132, 199, 0.2); +} + +/* Input and select styling - improved contrast */ +[data-testid="stSidebar"] input, [data-testid="stSidebar"] select { + background: #ffffff; + color: #334155; + border: 1px solid #e2e8f0; + border-radius: 6px; + padding: 0.75rem; + font-size: 0.875rem; + margin-bottom: 0.75rem; + transition: all 0.2s ease; +} + +[data-testid="stSidebar"] input:focus, [data-testid="stSidebar"] select:focus { + border-color: #0ea5e9; + box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.1); + outline: none; +} + +/* Button styling - modern and subtle */ +[data-testid="stSidebar"] button { + background: linear-gradient(135deg, #0ea5e9, #0284c7); + color: #ffffff; + border: none; + border-radius: 6px; + padding: 0.75rem 1rem; + font-weight: 500; cursor: pointer; - transition: color 0.3s ease; + transition: all 0.2s ease; } -.sidebar-option:hover { - color: #1976D2; +[data-testid="stSidebar"] button:hover { + background: linear-gradient(135deg, #0284c7, #0369a1); + transform: translateY(-1px); + box-shadow: 0 2px 4px rgba(2, 132, 199, 0.2); +} + +/* Settings button styling */ +[data-testid="stSidebar"] .stButton > button { + background: linear-gradient(135deg, #3182CE, #2C5282); + color: white; + border: none; + padding: 0.75rem 1rem; + font-weight: 600; + border-radius: 8px; + transition: all 0.3s ease; + width: 100%; + margin-bottom: 1rem; +} + +[data-testid="stSidebar"] .stButton > button:hover { + background: linear-gradient(135deg, #2C5282, #1A365D); + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +/* Scrollbar styling - subtle and modern */ +[data-testid="stSidebar"]::-webkit-scrollbar { + width: 8px; +} + +[data-testid="stSidebar"]::-webkit-scrollbar-track { + background: #f8fafc; +} + +[data-testid="stSidebar"]::-webkit-scrollbar-thumb { + background: #cbd5e1; + border-radius: 4px; + border: 2px solid #f8fafc; +} + +[data-testid="stSidebar"]::-webkit-scrollbar-thumb:hover { + background: #94a3b8; } /* Content section styling */ @@ -86,7 +392,6 @@ body { background-color: #ffffff; } - /* Custom button styling */ div.stButton > button:first-child { background: #1565C0; @@ -203,3 +508,169 @@ select option { padding: 10px; } +/* Content Planning Tools Styling */ +.content-header { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + padding: 1rem; + border-radius: 2px; + margin-bottom: 2rem; + border: 1px solid rgba(148, 163, 184, 0.2); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); +} + +.content-header h2 { + color: #1e293b; + font-size: 1rem; + font-weight: 300; + margin-bottom: 0.5rem; +} + +.content-header .subtitle { + color: #475569; + font-size: 1.1rem; + line-height: 1; +} + +.tool-section { + background: white; + padding: 1rem; + border-radius: 2px; + margin-bottom: 1.5rem; + border: 1px solid #e2e8f0; +} + +.tool-section h3 { + color: #1e293b; + font-size: 1.4rem; + font-weight: 600; + margin-bottom: 0.75rem; +} + +.tool-section p { + color: #475569; + font-size: 1rem; + line-height: 1.5; +} + +/* Button styling */ +.stButton > button { + background: linear-gradient(135deg, #3182ce, #2c5282); + color: white; + border: none; + padding: 0.75rem 1.5rem; + font-weight: 600; + border-radius: 8px; + transition: all 0.3s ease; +} + +.stButton > button:hover { + background: linear-gradient(135deg, #2c5282, #1a365d); + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +/* Search option containers styling */ +.search-option-container { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + border: 1px solid rgba(148, 163, 184, 0.2); + border-radius: 8px; + padding: 1rem; + margin-bottom: 1rem; + text-align: center; + height: 100%; + transition: all 0.3s ease; +} + +.search-option-container:hover { + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); +} + +.search-option-container h4 { + color: #1e293b; + margin-bottom: 0.5rem; +} + +.search-option-container p { + color: #64748b; + margin: 0; +} + +/* Button styling for search options */ +.stButton > button { + background: linear-gradient(135deg, #3182ce, #2c5282); + color: white; + border: none; + padding: 0.5rem 1rem; + font-weight: 600; + border-radius: 6px; + transition: all 0.3s ease; +} + +.stButton > button:disabled { + background: linear-gradient(135deg, #94a3b8, #64748b); + cursor: not-allowed; +} + +.stButton > button:not(:disabled):hover { + background: linear-gradient(135deg, #2c5282, #1e3a8a); + transform: translateY(-1px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +/* Search options styling */ +.search-option { + background: linear-gradient(135deg, #f8fafc, #f1f5f9); + border: 1px solid rgba(148, 163, 184, 0.2); + border-radius: 8px; + padding: 1rem; + height: 100%; + transition: all 0.3s ease; + text-align: center; +} + +.search-option:hover { + transform: translateY(-2px); + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); +} + +.search-option h4 { + color: #1e293b; + margin-bottom: 0.5rem; + font-weight: 600; +} + +.search-option p { + color: #64748b; + font-size: 0.9em; + margin-bottom: 1rem; +} + +.search-option.active { + border: 2px solid #3182ce; + background: linear-gradient(135deg, #ebf8ff, #e6fffa); +} + +/* Add these to your existing search-option styles */ +.search-option.disabled { + background: linear-gradient(135deg, #f1f5f9, #e2e8f0); + opacity: 0.8; + cursor: not-allowed; + border: 1px solid #cbd5e1; +} + + +.search-option .api-missing { + display: inline-block; + background: #fee2e2; + color: #dc2626; + padding: 2px 8px; + border-radius: 4px; + font-size: 0.8em; + margin-top: 0.5rem; +} + +.search-option.disabled h4, +.search-option.disabled p { + color: #64748b; +} \ No newline at end of file diff --git a/lib/workspace/structured_data_seo.mp4 b/lib/workspace/structured_data_seo.mp4 deleted file mode 100644 index af17702784a992a2036f2df167441356f317e5f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543527 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%0Ao&w{Y8WBLP!n5&`W7 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

(|YI16KrL0$OXbBO+h%Z!QMsb-E&wME;>d7 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�+6!i6%zc~kr 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%0A$r{9xtr=0y@<=VFp-`v|F5ohD9j zEG?}Z=4!Q3oz``}ykl(gM3U!0fE;8sOV<|-XaBM;x8?V&p-Kj(xtpuTmEr=A9|6`D z`2G_QysuJx{!71R@D_WB=&|5GG_qM86VW$v^;_>iLBU2~QBruB^KMUetz#`QXU-@I zg$IcX*tdTU&2K(6|M|B2$T7?7MqG>6^2bIWe49W_KpzUC(0}=_;14|Rl=2umeOFJJ zT}XD(eL+9^7VHWBeVKjp$7{Z7F4JY)R-$|PuY*MPSql83eLH+g+BD=KoKXrqd@zKa(Qu&3v_HoYY>+nf2up8QnHd1|WN zVnctrmk8nHgr53I=(IIuM@j!0iKMRxd~iRa83BWVLo7X(D%|y~?oDs~wzaHkZS~%Z zJ#XCKbuSf}OdM5q#{8pR*$gV*W5E%mHt3h%er}mB%Jgywj zSrkAXJZYI133>|KkVZEknrX-|i#6Y;aJTg1NHT7pbQoT8v-0NNDXpt`q`TGfZ>!p6 zCDL?7B#HrHWq6wl~yyxE0s9|Byb5+ud6T6I9pB~X_o?dXrnQh(FBBZnD-Wql+@?7*vKJXx6Hk9 z8snteytKmc^0K#|ecMwFt6s7k`MS{dy&ZxI2Md21tZxXR@b{{J+u)36K4TQI@?n7j z0#!MLb7crFjk`3|%10ZbwzrUM{^FsuH|x)8O%&LJhj7v0m(X;j1+9rB z4axy*l)f)eJ2UO0)uQ3YcwdePD?9{o961H4dgK{8iEEenEGRz&TXRU0pbz>Jf=IZ{ znDp>kxfu-oQ+K6I({YRn#zs)IwIKt3gQ=XI2!v@*Z4}*x z%lDcwe}4uF+UkTngxmsQiy3&*7NfDW%19Jxpi6Lz_p|4Wm$0g2R$X>XE$g~twRVBR zad{f?mkz}yg9OzW1MoJVqJH2q31HTth|I|!=X`DI&L?bwk^M5cCV5N1m%wz46hIKI zR+?En$U_9v+K#zVzMcs^5jtgg7}qAghx--uXHIUikF%m{7wng%fOW+=fJi519*~c& zSk&S|*gowN&a-ehZ@#bkM09Znxp3=kg_IJ~U#X49l=VZA&$X{ac4+O&9Gf|B>2Uze z3Y6hC2Ic+QB9KhGM%8Ei3yoHqft42m_pCR@{Q>5eYlt3gA z)s8n=EXi`@0q-$9n847$TmZHQ>`bK zja$rO-ME?Jh5^^hU_@<4>^Nb=WIo=tgG}>&y(>Z2KP4?}Cm9P20T%#B=q$lkde$m@ zm=t6coEtc#K~-y!=@#~ZH%eO!1jqom&zmk{-HcNMego6PrbWV=%Q-)clb3SY9 zYL4aqvhjWV;<}%Lhrgy6#G32RORKMcL;8M904Tnr+TfoDH~ChuZ`JZb(q^-;z-!*+ z9Dy8HJp%Y~F#M2)Nm`#`^Slk+I~bGO#*UI&@o4AkrTd%c8h0LWYEkJ@PWsTZ^ydmm z>wwLk_s131j4AOy?jF#44@u&rJNCUSEr~)`Y7+y}0swwfUk&A)l(B8X%(_9XT9&0Y z&oYScWu9=E3uQa<-W+Qusv&1V-HKLgSoU}9 zx>3TY{BMsNx3R$?j!iyeGxzr#frFn;ooVS~W;}|9jh`h&PR#JD2-l z-Btf%$!kVlT?x3nIGDxZ$R0j(V4M(*9rE)}%YghqT`Q|Rf-y>v>mGx_7V}mT5?|oG zEUQn+|Ca{Kw!5dR10m8QfZuWLG44nvO`|)`8mudsPihtJo*#<&GVMh8Pxq~z<;#2q7AtX`U z6xZ;r4|h%kZJG5-sMN=>?^ivAz7nJXl2mTa>qNZ&o4uCrZKC#9wZd+gtfkc_1Q)l{ z=gQxp04=z`<-v;JkS1V=ZseLby*&%yty;Gft+C~SMTu7SG7&cSOo_<4ArEgPe0)Ph!F zG+CN+Wl5J7%eR_}kseyaUf9c%Q?Fw?|4KSbz09O8PvOt!E; z;2o8y2NQ-S*@Ao%tz8bDNG;DqsOYKm2UhEs->@p3#VDtRbQ5AFzG`aQh^M{ml)(|!I`W+W|?iJ5plE*=(KI{6qF+m+JB?k@&7UzFTU^ei@* zOn0XPG-Nyo&*!+mPMQ)HLOzbQ}Zz>go|}?=+GU+x=@N zPy*y84;CIxKP|o0NimVkJn@C+U;P-zBTz~2<(Gc*7Yixz&R#aqQDeWa{oNm2&qofv z>2sQ{+QXx7ihQVao;R=-j;VMttk{`fzb1acLtOZU$zi9}&Eh`};2|t6K&E7Q!YnoI zv|Y*jj;Dz;wQt>C3zatbbbPt^TQqzWG$vRMeua2XPWoJoen)78H%W}hC+E{H8f45aX1 z-p;g7>)!}WT~_}TgfvoAHO=gk}H%QRar+c{}f5T z4-_yUd(lSkFzJf{2{iDctG$RO{10x7A{-HJnJAfIIu=x4Eh`wiknaCnKRE31)5f@r zYJFvzHUT&-_kPTlSTRDUOFRgEh4iKUQ%<->g?(etr#6)NB;j}Yg*$1-U0Jd#&O@l|$T;FMTAT_N8)o3sE&+S60 zjr|LE)`}+T*kb$boV^w9)|We~AyWJ|T>QR3&Ka+0OU!*>6jz&1-K?NaYizJtf#oqc zdAhI%_dl0X$t1*7GOX}qpMsvmN&*f8JH_kFmt08Pjxn$mOHT2ND2E-uWD zf<((=WWt4cJo)497%JxMY0fPo9X7BR-5a=O#QD+!TIhaA>w z8^U&^zGmKT>NPvwPFQ_S`mtZw6wOGc%OMBd!WDMC@!H`%==?7#ClmEapYb9|^U>;t z*s<;u-4E+BC}aM|lHQZUqK*Ju4{fL0h-4>^=FCxX7y7fZ`i}s(ai#}4yj98y%=Ml# zU=l^G4O%9RwhbWfrF&qW(6(@VXAPeHnOaNi7*4ef-_S%Ov;-%ay3^=-9`YvPO)m~} zr}2scNhs>GC(|b3T5=MIm_2$qNbMd|>%Ttf9ZRKCE{Q2lsIZY_2QBjXLsFHZ z)x6WB2%Q=)C%c*JafizWtw_f_;Nbdj-huW8{1rEzZR+KEX$gqIT2Iv;B%eE2l}Zpl zSr2<^rX3~k178kE^B+h1^3F!Y7v_8DWbcgar*cr7B-D@7DVNo8`cBCz>d2(sxwfgD zv-$ExO3d+H-66R)1rVPF7Xq(4L_tfmOgkuMYe>}r^7Q2k(aGXD#c+re6U5IlMBjL( z<~h~+0|!M9f!Pkh9E-jC#qV{LDbb5O{}s(Plr?4?-(&mvN+a4qo2^9bGU4Xf_ZzmT zl@k4T1?Ouo0rC48Wdx?#?bGGGL^#JIMah5R-UP?3hsM~u$e!D?9k+*u431`70t-v; zbl#ipzO&ycpnf#DNf0O2*nWyjlTn~|d3^CEQQ#p0L5x9ST#|*E$kKM}7+nrM%iEUW zk+&``1`S!|w=OnAQ(FNLQD3_lnE!79hCRI>oQj0Ct6@erafLj4{Dx{;0MCBYO;*H} zCs4>u9Ws5UA2S4<71&>}-b}c(euzK6Q&^@Q1ZsBn6}c5yvP<#E=bUs0EdBiO(h=B& z<<#=rA0??YKT-QW;IS26<#Jl2x*WLZ`K)yK=+S%0dRChH%f)2&)S9UQ0@WL{%?ZSf ztlDhx=(UrCa9wH2f=#9dXT&EsQhTVAwCI^;Zceo;)AQ8bQ9z zQM{`G;=7Fi_vY8hst5ZX_!&~=){6JJ!{4Hq)AjIKWIpeRQP$^?!F9UkKS(N;`UPwGWn~dN6HcU2yKSnLr4bNBHM7Ok#lO=BANs85FjX6 z3>=($E*JW2D*eE^{)DMOvI@x_FRN`*FW|CR9o~I^YIL7StufV;X|D97%-Og6qXbGL zA@;&oBbWT(+$X3<+NT&hSeYlWk?ocHi!=ujEERGOR@gdV$f)S2C?R0v4`&zIqGYm_y@>RE2?HWaB`yqQ~t^qsNy-Y z$HLg$$3Qy5#aFLH7EhO>p}ChQ>ng+CH^d3Ii-m)G<>HNZSU&iSnj*kTioF1#F2Q0O z`5I~+qCWxv*3vM+2?zO%4dwJ+rE^aJ$1gF|ADpt6&W7hP_h_ZGm3?KgoOUDta0_n8^xXyL^$d>jo-3{GR&)JAAt_GV8G6;0lSdEUx{mCS7~;)*6q%|PzF5MjP)8z% z=UPR7(HBv&xv=;TSd;ywc^cHrcZyl1gvkjY01*DBGC8-j&?edULT(kvmRbYJln^*J)S51C<=1%XUpA_cLsmKMJ zxASanD@KYAJTjJoeEOJxcM@!#ZJf9DRu8i1Fduk4ERKd=$EW4}zy~3_M11R4{Z&R+ z4g*f=LOf%uFMxN=kQ&7n&X3sggE7(;JVJut7sUI(*`H4thi%6g-iPD!z9y*2Ja|?t zfFiPU+i69MY}yq_%AT}!wxUt+2HNR(4|30hh;`aNG(e*i;YD#y=zdJ@7<2BCvdQn`o3J2@8EB#+v%XyOwz#j-oOq z^C!OF<~0z1{GDbaxjS4(rJs_{GHJ&n-Jo4z9^tbJmf==6^DEnB{4$c7!do_Gy(U&R znAFX7)P!1STrj4+`19HaX3o?2@9WQFoXQ%lWqp>SU?F^43c!=k!@r&GI*Ee*bx?PG zvsD0>ITvf<6;>XxXlAF__wPV@Gs;4IUP^6td@T?+3lMrbN#SkmuyGFi5$hPTJw5R|6EbH2^sQV7$oaqttc)sXwXL|2?QI7V6Y>0Z>kZcX98*NV# z2r8Jg@twn_#B1syQ{*P7Q(94?(zo}GSpP^lW(UT&pm6-darrd2j(TIXF)A2^C`q)M zHnBeW$jJB8$1|HI+;G3B4>D)dP5N2NZKRS9<5AZv$-;q>G;kcyNWOC*rIAU%)>%rd z?VG=N|9f^QWTf_-amjI}(t4sXczgkOR{=Ft>UI>IVp zB1a(+guUonGI{*sqkvxSPf&er*7Q$A5bnbjkzvr$siga7?AGI`5GOCK@?C{2W4BrM zY3Yula$m9j1*Kdtocc{&drL+yj%Z|b2%on3ntk7gUA_8+sFu&P%zE!S}fykXyW=48C3@GnDQgsaCi^|d*a2g){W>4hI6)Iu z*M8wepusw?=y&N)tah)@jUNPi&pBK_Irj0PhQj>awu6}D1AumRMCD_A9N`U5rp;rl z`-rZs9Buq_+c@~Ob|*YcxRi%@^qaZEFiRo4lk70Ix%^`lVL1b`_pD~$^9aG9!~vT! zZaS?GD#)xn)&Blt$YJS`jkx#`XYhadGSw@umc+A2;&>Y9LVsc_C-ra%%5X1aO`}{& zOE|`4M0kniSHf5K%3QaEO8r^n?+8))0V#j%NzBh|;jPP0UnvimK7oP^+R|p15p{>~ zPczObSTM%Yg_yvK*9?a|{FIj#Fah1U` zlKKYD?D9~(8GG4P(XY57NBVu_y-E>>q}-UMm__Q{}U>Y*7{9V(^Coed>;(s;+e_>uz7& zlGN#j=u&-@@fW^kse+v&9pnnv_cxaDuRjsV>wS>0ncx6 zCr1>nRr+3Hr1ZhSRfzQ|mkHXVK8!n-kJ{TK)?hTwU-}DX&>VsI^_2Ri^a{kE5RjgT zfSaF^W|0$J52hR`nsOkUZOFD2O`G#S{-BrTddN0-_jggq`p~z3=T060LfQi5a9D|5 zDi+=xMr!2rK1tw`*bybwuQuj*J4l7ugIHaJh;nFK0RFOOuwKuZ&r)n8XNmW-0p?3t z({EeJJ-l!;b87ZAtUs60Ynjw(*1rr*_I_!0yYC<&H2=YfXJnd=#N;6yvGmMXOdkpa z3EYu5A9^18A}e*F@SM#!`3QdgCQ7Ff3VPFYi9(S;O->TR>^lgn*}Zda2)wt(exP`d zZX2@GlaEvZgg6wCW?oHR3E+xnw_5y;q7BOa?J($sOsts-qTBWq>s^(>T2(zx&W(D% zpSOUKb&*2`kSe-KuUCcO>CnT_YVE<2hn|M9LMwyP*(=FhUqAkhj`80FDJO98_1SJx zvG2A`GmX|wkis~v=G`ap9nac-{c*RF3h~PeV|aqn=IwC@$@-~HPauC`NX@h zUrVP2q%A{n_cE=OSa%v3mxCMb9Zf_Xd9C$Dd0eoLBg6~j#4kzPnz?XIU*GMl%R8sU zJK~e=v2YXRFg=HGYQ@~X4TJ__G>}|{9IFL%%C?2^Ed`!zw5=%)@LRLJymDB3!}6RF zO@~ui9~MBHfQa-`k4}C@=i%+;p0#f4n4vIg!Bvd2y!WK9M<9v^9BQ?U zyvP0WFf?)QYVHoSQ&oaV$n~7WqH4C#dgx@3NIn#?#9lqnr=PZ(-z<2pZhPMSnoTSB zZGI?fC)lI>1FZqY!{RL=_fvnxr$0@MWjucel)6)iEQNHu{B7ldfSOB|s8^h}tY1Pf z&$KPYqpIVUh02!)6>=bNpObFLUF$DLkM7=W&6^N`StQ$qxS(l>8;zWu^}n!^9Yfio z0XOQtKHw2gQ&Y%NyDH_HlVsbn5qr?EGa8MS8r2g%P!qho6fgdi!P&QSyJ7KYTUHZ4 zN@f^SO?y=N-SPehszt6&#sN=5|3^7@wdGGNNk7y#)NDU!;`|eh($}3y&{rmpuG0BX z+n(xX_|H&v{*}Hhv7ex*@1ms&6YEJ$SLj8MwuwJ@e)rQ-)XV^{i1O3y0=u8?iXBP; z;rG}aj0P;tOhJ))BK28M�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 {yz$I!eV*^}jf~ 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 diff --git a/pages/ai_research_setup_page.py b/pages/ai_research_setup_page.py deleted file mode 100644 index 5d094cd4..00000000 --- a/pages/ai_research_setup_page.py +++ /dev/null @@ -1,50 +0,0 @@ -"""Page for AI Research Setup redirection.""" - -import streamlit as st -from loguru import logger -import sys -import os - -# Configure logger -logger.remove() # Remove default handler -logger.add( - "logs/ai_research_setup_page.log", - rotation="500 MB", - retention="10 days", - level="DEBUG", - format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", - backtrace=True, - diagnose=True -) -logger.add( - sys.stdout, - level="INFO", - format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {message}" -) - -# Set page config -st.set_page_config( - layout="wide", - initial_sidebar_state="collapsed", - menu_items={ - 'Get Help': None, - 'Report a bug': None, - 'About': None - } -) - -def render_ai_research_setup_page(): - """Render the AI Research Setup page.""" - try: - logger.info("Starting AI Research Setup page") - - # Import and render the AI Research Setup component - from lib.utils.api_key_manager.components.ai_research_setup import render_ai_research_setup - render_ai_research_setup() - - except Exception as e: - logger.error(f"Error in render_ai_research_setup_page: {str(e)}") - st.error(f"An error occurred: {str(e)}") - -if __name__ == "__main__": - render_ai_research_setup_page() \ No newline at end of file diff --git a/pages/personalization_setup.py b/pages/personalization_setup.py deleted file mode 100644 index d35e9930..00000000 --- a/pages/personalization_setup.py +++ /dev/null @@ -1,84 +0,0 @@ -import streamlit as st -import os -import json -from pathlib import Path - -st.set_page_config( - page_title="Personalization Setup", - page_icon="βš™οΈ", - layout="wide" -) - -st.title("Personalization Setup") - -# Initialize session state for active tab if not exists -if 'active_tab' not in st.session_state: - st.session_state.active_tab = "Writing Preferences" - -# Create tabs for different sections -tab1, tab2 = st.tabs(["Writing Preferences", "AI Configuration"]) - -with tab1: - st.write(""" - This section allows you to customize your AI writing experience. - Configure your preferences and settings here. - """) - - # Add your personalization options here - st.subheader("Writing Style Preferences") - tone = st.selectbox( - "Select your preferred writing tone", - ["Professional", "Casual", "Academic", "Creative"] - ) - - st.subheader("Content Preferences") - content_type = st.multiselect( - "Select your preferred content types", - ["Blog Posts", "Articles", "Social Media", "Technical Writing", "Creative Writing"] - ) - - if st.button("Save Preferences"): - st.success("Your preferences have been saved!") - -with tab2: - st.subheader("AI Configuration Settings") - - # Create a form for AI configuration - with st.form("ai_config_form"): - # API Keys - st.text_input("OpenAI API Key", type="password", key="openai_key") - st.text_input("Google API Key", type="password", key="google_key") - st.text_input("SerpAPI Key", type="password", key="serpapi_key") - - # Model Selection - st.selectbox("Select Model", ["gpt-3.5-turbo", "gpt-4"], key="model") - - # Temperature - st.slider("Temperature", 0.0, 2.0, 0.7, 0.1, key="temperature") - - # Max Tokens - st.number_input("Max Tokens", 100, 4000, 2000, 100, key="max_tokens") - - # Submit button - submitted = st.form_submit_button("Save Configuration") - - if submitted: - # Create config directory if it doesn't exist - config_dir = Path("config") - config_dir.mkdir(exist_ok=True) - - # Save configuration - config = { - "openai_key": st.session_state.openai_key, - "google_key": st.session_state.google_key, - "serpapi_key": st.session_state.serpapi_key, - "model": st.session_state.model, - "temperature": st.session_state.temperature, - "max_tokens": st.session_state.max_tokens - } - - config_file = config_dir / "test_config.json" - with open(config_file, "w") as f: - json.dump(config, f, indent=4) - - st.success("Configuration saved successfully!") \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 4760f08b..881f53b4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ beautifulsoup4==4.12.2 aiohttp>=3.11.11 openai>=1.3.7 PyPDF2>=3.0.1 -google-generativeai<0.9.0,>=0.8.0 +google-genai==1.9.0 anthropic>=0.18.1 tenacity>=8.2.3 tabulate>=0.9.0 From b4660d9d9829731fa4d4250628d0a26972ee8c5a Mon Sep 17 00:00:00 2001 From: ajaysi Date: Wed, 2 Apr 2025 22:44:16 +0530 Subject: [PATCH 6/7] Google Grounded Search and Styling Fixes --- alwrity.py | 68 --------------------------------- lib/utils/content_generators.py | 65 ++++++++++++++++++++++++------- 2 files changed, 51 insertions(+), 82 deletions(-) diff --git a/alwrity.py b/alwrity.py index e55f793b..9650cd27 100644 --- a/alwrity.py +++ b/alwrity.py @@ -59,30 +59,9 @@ from lib.utils.ui_setup import setup_ui from lib.utils.api_key_manager.api_key_manager import APIKeyManager, render from lib.utils.api_key_manager.validation import check_all_api_keys from dotenv import load_dotenv -from lib.utils.content_generators import blog_from_keyword, story_input_section, essay_writer, ai_news_writer, ai_finance_ta_writer, write_ai_prod_desc, do_web_research, competitor_analysis from lib.utils.ui_setup import setup_ui, setup_alwrity_ui -def process_folder_for_rag(folder_path): - """Placeholder for the process_folder_for_rag function.""" - logger.info(f"Processing folder for RAG: {folder_path}") - st.write(f"This is a placeholder for processing the folder: {folder_path}") - - -def save_config(config): - """ - Saves the provided configuration dictionary to a JSON file specified by the environment variable. - """ - try: - logger.debug(f"Saving configuration to {os.getenv('ALWRITY_CONFIG')}") - with open(os.getenv("ALWRITY_CONFIG"), "w") as config_file: - json.dump(config, config_file, indent=4) - logger.info("Configuration saved successfully") - except Exception as e: - logger.error(f"Error saving configuration: {str(e)}", exc_info=True) - st.error(f"An error occurred while saving the configuration: {e}") - - def main(): """Main application entry point.""" # Initialize API key manager @@ -221,52 +200,5 @@ def setup_environment_paths(): raise -# Functions for the main options -def ai_writers(): - options = [ - "AI Blog Writer", - "Story Writer", - "Essay writer", - "Write News reports", - "Write Financial TA report", - "AI Product Description Writer", - "AI Copywriter", - "Quit" - ] - choice = st.selectbox("**πŸ‘‡Select a content creation type:**", options, index=0, format_func=lambda x: f"πŸ“ {x}") - - if choice == "AI Blog Writer": - blog_from_keyword() - elif choice == "Story Writer": - story_input_section() - elif choice == "Essay writer": - essay_writer() - elif choice == "Write News reports": - ai_news_writer() - elif choice == "Write Financial TA report": - ai_finance_ta_writer() - elif choice == "AI Product Description Writer": - write_ai_prod_desc() - elif choice == "Quit": - st.subheader("Exiting, Getting Lost. But.... I have nowhere to go πŸ₯ΉπŸ₯Ή") - - - -def alwrity_brain(): - st.title("🧠 Alwrity Brain, Better than yours!") - st.write("Choose a folder to write content on. Alwrity will do RAG on these documents. The documents can of any type, pdf, pptx, docs, txt, cs etc. Video files and Audio files are also permitted.") - - folder_path = st.text_input("**Enter folder path:**") - if st.button("**Process Folder**"): - if folder_path: - try: - process_folder_for_rag(folder_path) - st.success("Folder processed successfully!") - except Exception as e: - st.error(f"Error processing folder: {e}") - else: - st.warning("Please enter a valid folder path.") - - if __name__ == "__main__": main() diff --git a/lib/utils/content_generators.py b/lib/utils/content_generators.py index 1af34e82..161bb6f0 100644 --- a/lib/utils/content_generators.py +++ b/lib/utils/content_generators.py @@ -39,30 +39,67 @@ def ai_writers(): def content_planning_tools(): - st.markdown("""**Alwrity content Ideation & Planning** : Provide few keywords to do comprehensive web research. - Provide few keywords to get Google, Neural, pytrends analysis. Know keywords, blog titles to target. - Generate months long content calendar around given keywords.""") + # Add custom CSS for compact layout + st.markdown(""" + + """, unsafe_allow_html=True) - options = [ - "Keywords Researcher", - "Competitor Analysis", - "Content Calender Ideator" - ] - choice = st.radio("Select a content planning tool:", options, index=0, format_func=lambda x: f"πŸ” {x}") + # Make description more compact using a smaller font + st.markdown(""" +

+ """, unsafe_allow_html=True) - if choice == "Keywords Researcher": + # Create tabs with reduced spacing + tab_keywords, tab_competitor, tab_calendar = st.tabs([ + "πŸ” Keywords Researcher", + "πŸ“Š Competitor Analysis", + "πŸ“… Content Calendar Ideator" + ]) + + # Keywords Researcher tab + with tab_keywords: do_web_research() - elif choice == "Competitor Analysis": + + # Competitor Analysis tab + with tab_competitor: competitor_analysis() - elif choice == "Content Calender Ideator": + + # Content Calendar Ideator tab + with tab_calendar: plan_keywords = st.text_input( "**Enter Your main Keywords to get 2 months content calendar:**", placeholder="Enter 2-3 main keywords to generate AI content calendar with keyword researched blog titles", help="The keywords are the ones where you would want to generate 50-60 blogs/articles on." ) - if st.button("**Ideate Content Calender**"): + if st.button("**Ideate Content Calendar**"): if plan_keywords: #ai_agents_content_planner(plan_keywords) - st.header("COming Soon.") + st.header("Coming Soon.") else: st.error("Come on, really, Enter some keywords to plan on..") From 3ffb563d4044b9f0b3e9a095c4442fda00e2675e Mon Sep 17 00:00:00 2001 From: ajaysi Date: Fri, 4 Apr 2025 10:48:46 +0530 Subject: [PATCH 7/7] ALwrity AI Keyword Web Researcher --- lib/alwrity_ui/keyword_web_researcher.py | 515 +++++++++++++++++++++++ lib/utils/alwrity_utils.py | 20 - lib/utils/content_generators.py | 4 +- requirements.txt | 5 +- 4 files changed, 520 insertions(+), 24 deletions(-) create mode 100644 lib/alwrity_ui/keyword_web_researcher.py diff --git a/lib/alwrity_ui/keyword_web_researcher.py b/lib/alwrity_ui/keyword_web_researcher.py new file mode 100644 index 00000000..97a9ed5c --- /dev/null +++ b/lib/alwrity_ui/keyword_web_researcher.py @@ -0,0 +1,515 @@ +import os +import time +import logging +import streamlit as st +from datetime import datetime + +from lib.ai_web_researcher.gpt_online_researcher import gpt_web_researcher +from lib.utils.read_main_config_params import read_return_config_section + +# Configure module-level logging +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + +# Create console handler if it doesn't exist +if not logger.handlers: + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.DEBUG) + formatter = logging.Formatter( + '%(asctime)s - %(name)s - %(levelname)s - %(message)s', + datefmt='%Y-%m-%d %H:%M:%S' + ) + console_handler.setFormatter(formatter) + logger.addHandler(console_handler) + +def reload_env_variables(): + """Reload environment variables from .env file.""" + try: + from dotenv import load_dotenv + load_dotenv(override=True) + return True + except Exception as e: + logger.error(f"Failed to reload environment variables: {str(e)}") + return False + +def save_api_key_to_env(key_name, key_value): + """Save API key to .env file.""" + try: + env_path = os.path.join(os.getcwd(), '.env') + + # Read existing .env content + existing_content = {} + if os.path.exists(env_path): + with open(env_path, 'r') as f: + for line in f: + if '=' in line: + key, value = line.strip().split('=', 1) + existing_content[key] = value + + # Update or add new key + existing_content[key_name] = key_value + + # Write back to .env + with open(env_path, 'w') as f: + for key, value in existing_content.items(): + f.write(f"{key}={value}\n") + + # Update environment variable and reload all env vars + os.environ[key_name] = key_value + if reload_env_variables(): + return True + return False + except Exception as e: + logger.error(f"Failed to save API key to .env: {str(e)}") + return False + +def validate_api_keys(): + """Validate required API keys and return their status.""" + + logger.info("Validating API keys") + + # Get API keys + api_keys = { + 'SERPER_API_KEY': os.getenv('SERPER_API_KEY'), + 'METAPHOR_API_KEY': os.getenv('METAPHOR_API_KEY'), + 'TAVILY_API_KEY': os.getenv('TAVILY_API_KEY'), + 'FIRECRAWL_API_KEY': os.getenv('FIRECRAWL_API_KEY') + } + + # Test SERPER_API_KEY validity + if api_keys['SERPER_API_KEY']: + try: + # Make a test request + import requests + test_url = "https://google.serper.dev/search" + headers = { + 'X-API-KEY': api_keys['SERPER_API_KEY'], + 'Content-Type': 'application/json' + } + test_payload = {"q": "test", "gl": "us", "hl": "en", "num": 1} + + response = requests.post(test_url, headers=headers, json=test_payload) + api_keys['SERPER_API_KEY_VALID'] = response.status_code == 200 + + if not api_keys['SERPER_API_KEY_VALID']: + logger.error(f"SERPER_API_KEY validation failed: {response.status_code} - {response.text}") + except Exception as e: + logger.error(f"Error validating SERPER_API_KEY: {str(e)}") + api_keys['SERPER_API_KEY_VALID'] = False + else: + api_keys['SERPER_API_KEY_VALID'] = False + + return api_keys + +def do_web_research(): + """Input keywords and do web research with advanced options.""" + logger.info("Starting do_web_research function") + + try: + # Get API keys without validation + api_keys = { + 'SERPER_API_KEY': os.getenv('SERPER_API_KEY'), + 'METAPHOR_API_KEY': os.getenv('METAPHOR_API_KEY'), + 'TAVILY_API_KEY': os.getenv('TAVILY_API_KEY'), + 'FIRECRAWL_API_KEY': os.getenv('FIRECRAWL_API_KEY') + } + + if not api_keys['SERPER_API_KEY']: + st.error(""" + 🚫 SERPER_API_KEY is missing. Please configure your API key. + """) + with st.popover("βš™οΈ Configure API Keys"): + st.markdown(""" + ### API Key Configuration + Enter your API keys below to enable research features. + """) + + # SERPER API Key + serper_col1, serper_col2 = st.columns([3, 1]) + with serper_col1: + serper_key = st.text_input( + "Serper API Key", + type="password", + placeholder="Enter your Serper API key", + help="Get your key at https://serper.dev" + ) + test_key = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with serper_col2: + if st.button("Save Serper", use_container_width=True): + if serper_key: + if test_key: + # Test the API key + try: + import requests + test_url = "https://google.serper.dev/search" + headers = { + 'X-API-KEY': serper_key, + 'Content-Type': 'application/json' + } + test_payload = {"q": "test", "gl": "us", "hl": "en", "num": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('SERPER_API_KEY', serper_key): + st.success("βœ… Serper API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('SERPER_API_KEY', serper_key): + st.success("βœ… Serper API key saved!") + time.sleep(0.5) # Small delay to ensure the key is saved + st.rerun() + else: + st.error("Failed to save API key") + + # METAPHOR API Key + if not api_keys.get('METAPHOR_API_KEY'): + metaphor_col1, metaphor_col2 = st.columns([3, 1]) + with metaphor_col1: + metaphor_key = st.text_input( + "Metaphor API Key", + type="password", + placeholder="Enter your Metaphor API key", + help="Get your key at https://metaphor.systems" + ) + test_metaphor = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with metaphor_col2: + if st.button("Save Metaphor", use_container_width=True): + if metaphor_key: + if test_metaphor: + # Test the API key + try: + import requests + test_url = "https://api.metaphor.systems/v1/search" + headers = { + 'Authorization': f'Bearer {metaphor_key}', + 'Content-Type': 'application/json' + } + test_payload = {"query": "test", "numResults": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('METAPHOR_API_KEY', metaphor_key): + st.success("βœ… Metaphor API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('METAPHOR_API_KEY', metaphor_key): + st.success("βœ… Metaphor API key saved!") + st.rerun() + else: + st.error("Failed to save API key") + + # TAVILY API Key + if not api_keys.get('TAVILY_API_KEY'): + tavily_col1, tavily_col2 = st.columns([3, 1]) + with tavily_col1: + tavily_key = st.text_input( + "Tavily API Key", + type="password", + placeholder="Enter your Tavily API key", + help="Get your key at https://tavily.com" + ) + test_tavily = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with tavily_col2: + if st.button("Save Tavily", use_container_width=True): + if tavily_key: + if test_tavily: + # Test the API key + try: + import requests + test_url = "https://api.tavily.com/v1/search" + headers = { + 'Authorization': f'Bearer {tavily_key}', + 'Content-Type': 'application/json' + } + test_payload = {"query": "test", "max_results": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('TAVILY_API_KEY', tavily_key): + st.success("βœ… Tavily API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('TAVILY_API_KEY', tavily_key): + st.success("βœ… Tavily API key saved!") + st.rerun() + else: + st.error("Failed to save API key") + + # FIRECRAWL API Key + if not api_keys.get('FIRECRAWL_API_KEY'): + firecrawl_col1, firecrawl_col2 = st.columns([3, 1]) + with firecrawl_col1: + firecrawl_key = st.text_input( + "Firecrawl API Key", + type="password", + placeholder="Enter your Firecrawl API key", + help="Get your key at https://firecrawl.co" + ) + test_firecrawl = st.checkbox("Test API key before saving", value=False, help="Validate the API key before saving") + with firecrawl_col2: + if st.button("Save Firecrawl", use_container_width=True): + if firecrawl_key: + if test_firecrawl: + # Test the API key + try: + import requests + test_url = "https://api.firecrawl.co/v1/search" + headers = { + 'Authorization': f'Bearer {firecrawl_key}', + 'Content-Type': 'application/json' + } + test_payload = {"query": "test", "limit": 1} + response = requests.post(test_url, headers=headers, json=test_payload) + + if response.status_code == 200: + if save_api_key_to_env('FIRECRAWL_API_KEY', firecrawl_key): + st.success("βœ… Firecrawl API key validated and saved!") + st.rerun() + else: + st.error("Failed to save API key") + else: + st.error(f"API key validation failed: {response.status_code} - {response.text}") + except Exception as e: + st.error(f"Error validating API key: {str(e)}") + else: + # Skip validation and save directly + if save_api_key_to_env('FIRECRAWL_API_KEY', firecrawl_key): + st.success("βœ… Firecrawl API key saved!") + st.rerun() + else: + st.error("Failed to save API key") + + st.markdown(""" + --- + ### Need Help? + 1. Click the links above to get your API keys + 2. Enter the keys in the fields above + 3. Click Save to store them securely + 4. The app will refresh automatically + """) + return + + # Initialize session state for research options + if "research_options" not in st.session_state: + st.session_state.research_options = { + "primary_keywords": "", + "related_keywords": "", + "target_audience": ["General"], + "content_type": ["Blog Posts"], + "search_depth": 3, + "geo_location": "us", + "search_language": "en", + "num_results": 10, + "time_range": "past month", + "include_domains": "", + "similar_url": "" + } + + # Define the research options dialog function + @st.dialog("πŸ” Research Options", width="large") + def show_research_options(): + tab1, tab2, tab3 = st.tabs(["Basic", "Advanced", "Technical"]) + + with tab1: + st.session_state.research_options["related_keywords"] = st.text_input( + "Related Keywords", + value=st.session_state.research_options["related_keywords"], + placeholder="Enter related terms...", + help="Additional keywords to provide context and expand research" + ) + + st.session_state.research_options["target_audience"] = st.multiselect( + "Target Audience", + ["General", "Technical", "Business", "Academic", "Youth", "Senior"], + default=st.session_state.research_options["target_audience"], + help="Select your target audience to focus research" + ) + + st.session_state.research_options["content_type"] = st.multiselect( + "Content Type", + ["Blog Posts", "Articles", "Social Media", "Whitepapers", "Tutorials", "Videos"], + default=st.session_state.research_options["content_type"], + help="Select content types to tailor research results" + ) + + st.session_state.research_options["search_depth"] = st.slider( + "Search Depth", + min_value=1, + max_value=5, + value=st.session_state.research_options["search_depth"], + help="Higher depth means more comprehensive but slower research" + ) + + with tab2: + col1, col2 = st.columns(2) + with col1: + st.session_state.research_options["geo_location"] = st.selectbox( + "Geographic Location", + options=["us", "in", "uk", "fr", "de", "jp", "custom"], + index=["us", "in", "uk", "fr", "de", "jp"].index(st.session_state.research_options["geo_location"]), + help="Target specific geographic region for research" + ) + + st.session_state.research_options["num_results"] = st.number_input( + "Number of Results", + min_value=1, + max_value=100, + value=st.session_state.research_options["num_results"], + help="Number of results to analyze" + ) + + with col2: + st.session_state.research_options["search_language"] = st.selectbox( + "Search Language", + options=["en", "hi", "fr", "de", "es", "custom"], + index=["en", "hi", "fr", "de", "es"].index(st.session_state.research_options["search_language"]), + help="Primary language for search results" + ) + + st.session_state.research_options["time_range"] = st.selectbox( + "Time Range", + options=["past day", "past week", "past month", "past year", "anytime"], + index=["past day", "past week", "past month", "past year", "anytime"].index(st.session_state.research_options["time_range"]), + help="Time period for research results" + ) + + with tab3: + st.session_state.research_options["include_domains"] = st.text_input( + "Include Domains", + value=st.session_state.research_options["include_domains"], + placeholder="example.com, another.com", + help="Specific domains to include in research" + ) + + st.session_state.research_options["similar_url"] = st.text_input( + "Similar URL", + value=st.session_state.research_options["similar_url"], + placeholder="https://example.com/page", + help="Find content similar to this URL" + ) + + # Research method selection + st.markdown("### Select Research Method") + search_options = [ + ("google", "πŸ” Google Search", "Traditional web research with AI analysis", bool(api_keys['SERPER_API_KEY'])), + ("ai", "πŸ€– AI Search", "Neural search with semantic analysis", bool(api_keys['METAPHOR_API_KEY'] and api_keys['TAVILY_API_KEY'])), + ("deep", "πŸ”¬ Deep Search (Beta)", "Advanced deep web analysis", bool(all(api_keys.values()))) + ] + + enabled_options = [opt[1] for opt in search_options if opt[3]] + if enabled_options: + selected_option = st.radio( + "Search Method", + options=enabled_options, + horizontal=True, + help="Choose your preferred research method" + ) + else: + st.warning("No search methods available. Please configure API keys.") + + col1, col2 = st.columns([1, 1]) + with col1: + if st.button("Apply", use_container_width=True, type="primary"): + st.session_state.show_options_dialog = False + st.rerun() + with col2: + if st.button("Cancel", use_container_width=True): + st.session_state.show_options_dialog = False + st.rerun() + + # Main interface + st.title("Keyword Research Assistant") + + # Primary search area with help popover + with st.popover("ℹ️ Keyword Research Tips"): + st.markdown(""" + ### How to Get Better Results + 1. **Primary Keywords**: Your main topic or focus + 2. **Related Keywords**: Supporting terms that add context + 3. **Search Depth**: Higher depth = more comprehensive but slower + 4. **Target Audience**: Affects content recommendations + 5. **Content Type**: Influences research focus + """) + + col1, col2 = st.columns([3, 1]) + with col1: + st.session_state.research_options["primary_keywords"] = st.text_input( + "Primary Keywords", + value=st.session_state.research_options["primary_keywords"], + placeholder="Enter main keywords for research...", + help="Enter your main topic or focus keywords" + ) + with col2: + if st.button("Research Options", use_container_width=True): + show_research_options() + + # Execute search button + if st.button("πŸ” Start Research", type="primary", use_container_width=True): + if not st.session_state.research_options["primary_keywords"]: + st.warning("⚠️ Please enter primary keywords for research") + return + + try: + # Create compact progress display + progress_container = st.container() + with progress_container: + status_col, progress_col = st.columns([3, 1]) + with status_col: + status_display = st.empty() + status_display.info("πŸš€ Initializing research...") + with progress_col: + progress_bar = st.progress(0) + + # Execute search with all parameters + web_research_result = gpt_web_researcher( + search_keywords=st.session_state.research_options["primary_keywords"], + related_keywords=st.session_state.research_options["related_keywords"], + target_audience=st.session_state.research_options["target_audience"], + content_type=st.session_state.research_options["content_type"], + search_depth=st.session_state.research_options["search_depth"], + geo_location=st.session_state.research_options["geo_location"], + search_language=st.session_state.research_options["search_language"], + num_results=st.session_state.research_options["num_results"], + time_range=st.session_state.research_options["time_range"], + include_domains=st.session_state.research_options["include_domains"], + similar_url=st.session_state.research_options["similar_url"] + ) + + if web_research_result: + status_display.success("✨ Research completed!") + + # Display results in an organized way + with st.expander("πŸ“Š Research Results", expanded=True): + st.write(web_research_result) + else: + st.warning("No results found for your search") + + except Exception as e: + error_msg = f"Research failed: {str(e)}" + logger.error(error_msg, exc_info=True) + st.error(f"🚫 Research failed: {error_msg}") + + except Exception as e: + logger.error(f"Unexpected error in web research: {e}", exc_info=True) + st.error("🚫 An unexpected error occurred. Please try again.") \ No newline at end of file diff --git a/lib/utils/alwrity_utils.py b/lib/utils/alwrity_utils.py index dd80f33a..64a3d446 100644 --- a/lib/utils/alwrity_utils.py +++ b/lib/utils/alwrity_utils.py @@ -457,26 +457,6 @@ def competitor_analysis(): st.error("Please enter a valid URL.") -def do_web_research(): - """ Input keywords and do web research and present a report.""" - st.title("Web Research Assistant") - st.write("Enter keywords for web research. The keywords should be at least three words long.") - - search_keywords = st.text_input("Search Keywords", placeholder="Enter keywords for web research...") - if st.button("Start Web Research"): - if search_keywords and len(search_keywords.split()) >= 3: - try: - st.info(f"Starting web research on given keywords: {search_keywords}") - with st.spinner("Performing web research..."): - web_research_result = gpt_web_researcher(search_keywords) - st.success("Web research completed successfully!") - st.write(web_research_result) - except Exception as err: - st.error(f"ERROR: Failed to do web research: {err}") - else: - st.warning("Search keywords should be at least three words long. Please try again.") - - def ai_finance_ta_writer(): st.markdown("
AI Financial Technical Analysis Writer
", unsafe_allow_html=True) diff --git a/lib/utils/content_generators.py b/lib/utils/content_generators.py index 161bb6f0..e1c4a0a8 100644 --- a/lib/utils/content_generators.py +++ b/lib/utils/content_generators.py @@ -1,12 +1,12 @@ import streamlit as st from lib.utils.alwrity_utils import ( blog_from_keyword, ai_agents_team, essay_writer, ai_news_writer, - ai_finance_ta_writer, ai_social_writer, do_web_research, competitor_analysis + ai_finance_ta_writer, competitor_analysis ) +from lib.alwrity_ui.keyword_web_researcher import do_web_research from lib.ai_writers.ai_story_writer.story_writer import story_input_section from lib.ai_writers.ai_product_description_writer import write_ai_prod_desc #from lib.content_planning_calender.content_planning_agents_alwrity_crew import ai_agents_content_planner -from lib.utils.seo_tools import ai_seo_tools def ai_writers(): diff --git a/requirements.txt b/requirements.txt index 881f53b4..0d144f47 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ beautifulsoup4==4.12.2 aiohttp>=3.11.11 openai>=1.3.7 PyPDF2>=3.0.1 -google-genai==1.9.0 +google-genai>=1.0.0 anthropic>=0.18.1 tenacity>=8.2.3 tabulate>=0.9.0 @@ -31,7 +31,8 @@ prompt_toolkit>=3.0.43 html2image>=2.0.5 lxml[html_clean]>=5.3.0 lxml_html_clean>=0.4.1 -streamlit>=1.29.0 +streamlit>=1.44.0 +Authlib>=1.3.2 yfinance>=0.2.36 pandas_ta>=0.3.14b0 firecrawl-py>=1.14.1