{"id":28479188,"url":"https://github.com/rk-vashista/pitch","last_synced_at":"2026-05-04T22:42:29.505Z","repository":{"id":296976916,"uuid":"994313238","full_name":"rk-vashista/pitch","owner":"rk-vashista","description":"A modern web application that analyzes pitch decks using multi-agent AI technology. Upload your pitch deck and get comprehensive feedback on structure, content, and potential improvements!","archived":false,"fork":false,"pushed_at":"2025-06-03T08:35:18.000Z","size":6353,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-03T18:26:42.540Z","etag":null,"topics":["ai","ai-feedback","crewai","document-analysis","document-analysis-tool","fastapi","langchain","multi-agent","nlp","pitch-deck","pitch-deck-analyzer","pitch-evaluation","python","startup-tools","websockets"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rk-vashista.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-01T17:13:49.000Z","updated_at":"2025-06-03T08:35:20.000Z","dependencies_parsed_at":"2025-06-03T18:26:48.852Z","dependency_job_id":"36f5a32e-e9e8-471a-9098-7a40315e2cba","html_url":"https://github.com/rk-vashista/pitch","commit_stats":null,"previous_names":["rk-vashista/pitch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rk-vashista/pitch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rk-vashista%2Fpitch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rk-vashista%2Fpitch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rk-vashista%2Fpitch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rk-vashista%2Fpitch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rk-vashista","download_url":"https://codeload.github.com/rk-vashista/pitch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rk-vashista%2Fpitch/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263245241,"owners_count":23436510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-feedback","crewai","document-analysis","document-analysis-tool","fastapi","langchain","multi-agent","nlp","pitch-deck","pitch-deck-analyzer","pitch-evaluation","python","startup-tools","websockets"],"created_at":"2025-06-07T18:08:28.566Z","updated_at":"2026-05-04T22:42:24.486Z","avatar_url":"https://github.com/rk-vashista.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📊 Pitch Deck Analyzer\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.10%2B-blue?style=for-the-badge\u0026logo=python\" alt=\"Python Version\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/FastAPI-Latest-green?style=for-the-badge\u0026logo=fastapi\" alt=\"FastAPI\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/CrewAI-Multi--Agent-purple?style=for-the-badge\" alt=\"CrewAI\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/WebSockets-Real--Time-orange?style=for-the-badge\" alt=\"WebSockets\"\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e🚀 A sophisticated AI-powered platform for comprehensive startup pitch deck analysis\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Transform your investment decision-making with multi-agent AI analysis that provides deep insights into startup potential, market opportunities, and investment risks.\n\u003c/p\u003e\n\n---\n\n## 🎯 Overview\n\nThe **Pitch Deck Analyzer** is an enterprise-grade web application that leverages the power of **crewAI's multi-agent architecture** combined with **FastAPI** to provide comprehensive startup pitch deck analysis. Built for investors, VCs, accelerators, and startup analysts, this tool automates the due diligence process and provides structured, actionable insights.\n\n### 🏆 Key Value Propositions\n\n- **🤖 AI-Powered Analysis**: Six specialized AI agents work collaboratively to analyze different aspects of your pitch deck\n- **⚡ Real-Time Processing**: WebSocket-based live updates with detailed progress tracking\n- **📈 Comprehensive Reports**: Generate detailed investment reports with scoring, risk analysis, and recommendations\n- **🎨 Modern Interface**: Beautiful, responsive UI with drag-and-drop functionality\n- **🔧 Highly Configurable**: Customizable agents, tasks, and analysis parameters\n\n---\n\n## ✨ Features \u0026 Capabilities\n\n### 🖥️ **Modern Web Interface**\n- **Responsive Design**: Built with Tailwind CSS for mobile and desktop compatibility\n- **Drag \u0026 Drop Upload**: Intuitive file upload with visual feedback\n- **Real-Time Progress**: Live progress bars, status updates, and elapsed time tracking\n- **Interactive Visualization**: Dynamic progress logging with agent activity monitoring\n- **Toast Notifications**: User-friendly alerts and status messages\n- **Download Reports**: One-click report download in markdown format\n\n### 📄 **Document Processing \u0026 Analysis**\n- **Multi-Format Support**: \n  - PDF documents (`.pdf`)\n  - PowerPoint presentations (`.ppt`, `.pptx`)\n  - Word documents (`.doc`, `.docx`)\n- **Intelligent Text Extraction**: Advanced parsing with error handling\n- **Content Analysis**: Smart content categorization and structure recognition\n- **Validation**: File format validation and integrity checks\n\n### 🤖 **Multi-Agent AI Architecture**\n\n#### **1. 📊 Pitch Analyzer Agent**\n- **Role**: Expert Pitch Deck Analyst with VC experience\n- **Capabilities**:\n  - Presentation clarity scoring (1-10)\n  - Investor readiness assessment\n  - Team capability evaluation\n  - Market timing analysis\n  - Execution capability scoring\n  - Overall fundability rating with emojis (🟢🟡🔴)\n\n#### **2. 🔍 Market Researcher Agent**\n- **Role**: Market Research Specialist with India-focused expertise\n- **Capabilities**:\n  - TAM/SAM/SOM market sizing\n  - Competitive landscape analysis\n  - Market trends identification\n  - Government policy analysis\n  - Recent deal activity tracking\n\n#### **3. 💰 Financial Analyst Agent**\n- **Role**: Startup Economics \u0026 Unit Economics Specialist\n- **Capabilities**:\n  - Revenue model analysis\n  - Unit economics evaluation (CAC, LTV, payback)\n  - Financial projections assessment\n  - Burn rate and runway analysis\n  - Valuation multiples comparison\n\n#### **4. 🌐 Website \u0026 Social Media Analyst**\n- **Role**: Digital Presence Expert\n- **Capabilities**:\n  - Website design and UX audit\n  - Social media engagement analysis\n  - Online reputation assessment\n  - SEO and digital marketing evaluation\n\n#### **5. 🎯 Investment Strategist Agent**\n- **Role**: Investment Strategy Specialist\n- **Capabilities**:\n  - Investment thesis alignment\n  - Fundraising probability assessment\n  - Strategic recommendations\n  - Exit path analysis\n\n#### **6. 🛡️ Due Diligence Analyst**\n- **Role**: Risk Assessment Specialist\n- **Capabilities**:\n  - Execution risk identification\n  - Financial risk analysis\n  - Market risk evaluation\n  - Regulatory compliance assessment\n\n### 📡 **Real-Time Communication**\n- **WebSocket Integration**: Live bidirectional communication\n- **Progress Tracking**: Granular task progress with percentage completion\n- **Agent Activity Logs**: Detailed logging of each agent's work\n- **Error Handling**: Graceful error recovery and user notification\n- **Session Management**: Unique job IDs for concurrent analysis sessions\n\n---\n\n## 🚀 Quick Start Guide\n\n### Prerequisites\n\n- **Python**: Version 3.10, 3.11, or 3.12 (3.13+ not yet supported)\n- **OpenAI API Key**: Required for AI agent functionality\n- **Git**: For cloning the repository\n\n### 🔧 Installation\n\n#### 1. **Clone the Repository**\n```bash\ngit clone \u003cyour-repo-url\u003e\ncd pitch\n```\n\n#### 2. **Set Up Python Virtual Environment**\n```bash\n# Create virtual environment\npython -m venv .venv\n\n# Activate virtual environment\n# On Linux/macOS:\nsource .venv/bin/activate\n\n# On Windows:\n.venv\\Scripts\\activate\n```\n\n#### 3. **Install Dependencies**\nWe use `uv` for fast package management:\n```bash\n# Install uv (if not already installed)\npip install uv\n\n# Install project dependencies\nuv pip install -e .\n```\n\n#### 4. **Environment Configuration**\nCreate a `.env` file in the project root:\n```bash\n# Copy the example environment file\ncp .env.example .env  # If available\n\n# Or create manually\ntouch .env\n```\n\nAdd your configuration to `.env`:\n```env\n# Required: OpenAI API Configuration\nOPENAI_API_KEY=your_openai_api_key_here\nOPENAI_MODEL=gpt-4-turbo-preview\n\n# Optional: Advanced Configuration\nSERPER_API_KEY=your_serper_api_key_for_web_search\nMAX_FILE_SIZE_MB=50\nUPLOAD_DIR=uploads\nLOG_LEVEL=INFO\n\n# Optional: Database Configuration (if using persistent storage)\nDATABASE_URL=sqlite:///./pitch_analyzer.db\n```\n\n#### 5. **Verify Installation**\n```bash\n# Test the installation\npython -m pitch.main --help\n\n# Or test with pytest (if tests are available)\npytest tests/ -v\n```\n\n### ⚡ Running the Application\n\n#### **Method 1: Using the Project Script**\n```bash\n# Start the web server\npitch serve\n\n# Or use the alternative command\nserve\n```\n\n#### **Method 2: Direct Uvicorn Command**\n```bash\n# Development mode with auto-reload\nuvicorn pitch.api:app --reload --host 0.0.0.0 --port 8000\n\n# Production mode\nuvicorn pitch.api:app --host 0.0.0.0 --port 8000 --workers 4\n```\n\n#### **Method 3: Using Docker (if Dockerfile available)**\n```bash\n# Build the Docker image\ndocker build -t pitch-analyzer .\n\n# Run the container\ndocker run -p 8000:8000 --env-file .env pitch-analyzer\n```\n\n### 🌐 Accessing the Application\n\n1. **Open your browser** and navigate to: `http://localhost:8000`\n2. **Upload your pitch deck** (PDF, PPT, or PPTX format)\n3. **Enter the startup name** for analysis\n4. **Monitor real-time progress** as AI agents analyze the document\n5. **Download the comprehensive report** once analysis is complete\n\n---\n\n## 📊 Analysis Output \u0026 Reports\n\n### 📋 **Report Structure**\n\nThe generated analysis report includes the following sections:\n\n#### **1. 📁 Pitch Deck Analysis Report**\n- **Executive Summary**: High-level overview with aggregate scoring\n- **Detailed Scoring \u0026 Investor Commentary**: Comprehensive 12-category analysis\n- **Competitive Benchmarking**: Market position and competitor comparison\n- **Risk Identification**: Execution, financial, and market risks\n- **Investment Thesis Alignment**: Strategic fit assessment\n- **Fundraising Probability**: 6-month fundraising likelihood\n- **Actionable Recommendations**: Specific improvement suggestions\n- **Exit Path Analysis**: M\u0026A and IPO prospects\n- **Website \u0026 Social Audit**: Digital presence evaluation\n\n#### **2. 📑 Market Research Report**\n- **Market Overview**: TAM/SAM/SOM analysis for India\n- **Key Market Trends**: Industry dynamics and growth drivers\n- **Key Players Comparison**: Competitive landscape with funding data\n- **Valuation Multiples**: Industry benchmarks and comparable valuations\n- **India-Specific Insights**: Cultural and regional market factors\n- **Government Policies**: Regulatory environment and policy impact\n- **Market Risks**: Industry-specific challenges and threats\n- **Recent Deal Activity**: Latest funding rounds and M\u0026A activity\n- **Strategic Implications**: Investment recommendations and positioning\n\n### 🎯 **Scoring System**\n\nEach analysis category uses a standardized 1-10 scoring system with visual indicators:\n\n- **🟢 8-10**: Good - Strong performance, minimal concerns\n- **🟡 5-7**: Needs Improvement - Moderate concerns, action required\n- **🔴 1-4**: Critical Risk - Significant issues, major red flags\n\n### 📈 **Sector Heat Ratings**\n\n- **🔥 Hot/Priority**: High-growth sector with strong investor interest\n- **🌤️ Warm/Watchlist**: Moderate interest, good potential\n- **❄️ Cold/Pass**: Limited interest, challenging market conditions\n\n### 💼 **Investment Verdicts**\n\n- **✅ Recommend**: Strong investment opportunity\n- **🔍 Further Validation Needed**: Promising but requires additional due diligence\n- **❌ Pass**: Not recommended for investment\n\n---\n\n## 🏗️ Architecture \u0026 Project Structure\n\n### 📁 **Detailed Project Structure**\n\n```\n📦 pitch/\n├── 📄 pyproject.toml              # Project configuration and dependencies\n├── 📄 README.md                   # This comprehensive documentation\n├── 📄 uv.lock                     # Dependency lock file\n├── 📄 monitor.py                  # WebSocket monitoring utility\n├── 📄 report.md                   # Sample generated report\n├── 📄 required_format.md          # Template for report formatting\n├── 📄 sample.pdf                  # Sample pitch deck for testing\n├── 📂 src/pitch/                  # Main application package\n│   ├── 📄 __init__.py            # Package initialization\n│   ├── 📄 main.py                # CLI entry points and server startup\n│   ├── 📄 api.py                 # FastAPI application and REST endpoints\n│   ├── 📄 crew.py                # CrewAI agents and task orchestration\n│   ├── 📄 status_manager.py      # WebSocket status management\n│   ├── 📂 config/                # Configuration files\n│   │   ├── 📄 agents.yaml        # AI agent definitions and behaviors\n│   │   └── 📄 tasks.yaml         # Task descriptions and expected outputs\n│   ├── 📂 static/                # Frontend web interface\n│   │   ├── 📄 index.html         # Main web page\n│   │   ├── 📄 script.js          # JavaScript for interactivity\n│   │   └── 📄 styles.css         # Custom CSS styles\n│   └── 📂 tools/                 # Custom AI agent tools\n│       ├── 📄 __init__.py        # Tools package initialization\n│       ├── 📄 document_tools.py  # PDF/PPT parsing and text extraction\n│       ├── 📄 knowledge_base.py  # Vector store for knowledge retrieval\n│       ├── 📄 serper_tool.py     # Web search and research capabilities\n│       └── 📄 custom_tool.py     # Additional custom tools\n├── 📂 knowledge/                  # Knowledge base and reference materials\n│   └── 📄 user_preference.txt    # User preferences and settings\n├── 📂 tests/                      # Test suite (unit and integration tests)\n├── 📂 uploads/                    # Temporary file storage for uploads\n└── 📂 __pycache__/               # Python bytecode cache\n```\n\n### 🔧 **Core Components**\n\n#### **1. API Layer (`api.py`)**\n- **FastAPI Application**: RESTful API with automatic documentation\n- **File Upload Handling**: Multi-file upload with validation\n- **WebSocket Manager**: Real-time communication for progress updates\n- **Background Tasks**: Asynchronous processing of analysis jobs\n- **Error Handling**: Comprehensive error management and user feedback\n\n#### **2. AI Agent Orchestra (`crew.py`)**\n- **Agent Definitions**: Six specialized AI agents with distinct roles\n- **Task Coordination**: Sequential task execution with context sharing\n- **Status Callbacks**: Real-time progress reporting to WebSocket clients\n- **Output Management**: Structured report generation and formatting\n\n#### **3. Status Management (`status_manager.py`)**\n- **WebSocket Broadcasting**: Multi-client real-time updates\n- **Job Tracking**: Unique job ID management for concurrent sessions\n- **Progress Logging**: Detailed activity logs for debugging and monitoring\n- **Connection Management**: Automatic cleanup of dead connections\n\n#### **4. Document Processing Tools (`tools/`)**\n- **PDF Parser**: Robust PDF text extraction with error handling\n- **PowerPoint Parser**: PPTX slide content extraction\n- **Web Research**: Internet search capabilities for market research\n- **Knowledge Base**: Vector store for retrieving relevant information\n\n#### **5. Frontend Interface (`static/`)**\n- **Modern UI**: Responsive design with Tailwind CSS\n- **File Upload**: Drag-and-drop with progress indicators\n- **Real-time Updates**: WebSocket integration for live progress\n- **Report Display**: Formatted markdown rendering with download options\n\n### 🔄 **Data Flow Architecture**\n\n```mermaid\ngraph TD\n    A[User Upload] --\u003e B[File Validation]\n    B --\u003e C[Background Task]\n    C --\u003e D[Document Parsing]\n    D --\u003e E[Agent Orchestra]\n    E --\u003e F[Pitch Analyzer]\n    E --\u003e G[Market Researcher]\n    E --\u003e H[Financial Analyst]\n    E --\u003e I[Website Analyst]\n    E --\u003e J[Investment Strategist]\n    E --\u003e K[Due Diligence Analyst]\n    F --\u003e L[Report Generation]\n    G --\u003e L\n    H --\u003e L\n    I --\u003e L\n    J --\u003e L\n    K --\u003e L\n    L --\u003e M[WebSocket Broadcast]\n    M --\u003e N[User Interface Update]\n```\n\n### 🔌 **API Endpoints**\n\n#### **REST API Endpoints**\n\n| Method | Endpoint | Description | Parameters |\n|--------|----------|-------------|------------|\n| `GET` | `/` | Main web interface | None |\n| `POST` | `/analyze` | Start pitch deck analysis | `startup_name`, `files[]` |\n| `GET` | `/static/{file_path}` | Serve static files | `file_path` |\n\n#### **WebSocket Endpoints**\n\n| Endpoint | Description | Events |\n|----------|-------------|---------|\n| `/ws/{job_id}` | Real-time progress updates | `task_started`, `task_completed`, `completed`, `error` |\n\n### 📋 **Configuration Management**\n\n#### **Agent Configuration (`config/agents.yaml`)**\n```yaml\npitch_analyzer:\n  role: Expert Pitch Deck Analyst with venture capital experience\n  goal: Analyze pitch decks and provide comprehensive evaluation\n  backstory: Seasoned analyst with years of VC experience\n```\n\n#### **Task Configuration (`config/tasks.yaml`)**\n```yaml\npitch_analysis_task:\n  description: Analyze documents and create Executive Summary\n  expected_output: Formatted analysis following template\n  agent: pitch_analyzer\n```\n\n#### **Environment Variables**\n```env\n# Core Configuration\nOPENAI_API_KEY=required_for_ai_functionality\nOPENAI_MODEL=gpt-4-turbo-preview\n\n# Optional Configuration  \nSERPER_API_KEY=for_web_search_capabilities\nMAX_FILE_SIZE_MB=50\nUPLOAD_DIR=uploads\nLOG_LEVEL=INFO\n```\n\n---\n\n## ⚙️ Advanced Configuration \u0026 Customization\n\n### 🎛️ **Agent Customization**\n\n#### **Modifying Agent Behavior**\nEdit `src/pitch/config/agents.yaml` to customize agent personalities and capabilities:\n\n```yaml\n# Example: Enhance the Market Researcher Agent\nmarket_researcher:\n  role: \u003e\n    Senior Market Research Specialist with 15+ years experience in Indian markets\n  goal: \u003e\n    Conduct deep-dive market analysis with focus on regulatory environment and \n    competitive dynamics specific to Indian startup ecosystem\n  backstory: \u003e\n    You've analyzed hundreds of Indian startups and have intimate knowledge of\n    regulatory challenges, cultural factors, and market dynamics across sectors.\n```\n\n#### **Adding New Agents**\n1. Define the agent in `agents.yaml`\n2. Create the agent method in `crew.py`:\n```python\n@agent\ndef your_new_agent(self) -\u003e Agent:\n    return Agent(\n        config=self.agents_config['your_new_agent'],\n        llm=self.llm,\n        verbose=True,\n        tools=[YourCustomTool()]\n    )\n```\n\n### 📝 **Task Configuration**\n\n#### **Modifying Analysis Tasks**\nEdit `src/pitch/config/tasks.yaml` to customize analysis depth and focus:\n\n```yaml\n# Example: Enhanced Financial Analysis\nfinancial_analysis_task:\n  description: \u003e\n    Perform comprehensive financial analysis including:\n    - Revenue model sustainability analysis\n    - Unit economics deep-dive with sensitivity analysis\n    - Cash flow projections with scenario planning\n    - Competitive pricing analysis\n    - Funding requirement optimization\n  expected_output: \u003e\n    Detailed financial analysis with interactive charts and sensitivity tables\n```\n\n#### **Adding Custom Tasks**\n1. Define the task in `tasks.yaml`\n2. Create the task method in `crew.py`:\n```python\n@task\ndef your_custom_task(self) -\u003e Task:\n    return Task(\n        config=self.tasks_config['your_custom_task'],\n        context_format=True\n    )\n```\n\n### 🛠️ **Custom Tools Development**\n\n#### **Creating New Tools**\nCreate custom tools in `src/pitch/tools/`:\n\n```python\n# Example: Social Media Analytics Tool\nfrom crewai.tools import BaseTool\nfrom pydantic import BaseModel, Field\n\nclass SocialMediaAnalytics(BaseTool):\n    name: str = \"Social Media Analytics\"\n    description: str = \"Analyze social media presence and engagement\"\n    \n    def _run(self, company_name: str) -\u003e str:\n        # Your custom logic here\n        return f\"Social media analysis for {company_name}\"\n```\n\n#### **Available Built-in Tools**\n- **DocumentParserTool**: PDF/PPT text extraction\n- **WebResearchTool**: Internet search and research\n- **KnowledgeBaseTool**: Vector-based knowledge retrieval\n\n### 🎨 **Frontend Customization**\n\n#### **UI Themes and Styling**\nModify `src/pitch/static/styles.css` for custom branding:\n\n```css\n/* Custom color scheme */\n:root {\n    --primary-color: #your-brand-color;\n    --secondary-color: #your-secondary-color;\n    --accent-color: #your-accent-color;\n}\n\n/* Custom animations */\n.custom-animation {\n    animation: yourCustomAnimation 2s ease-in-out;\n}\n```\n\n#### **Adding New Features**\nExtend `src/pitch/static/script.js` for additional functionality:\n\n```javascript\n// Example: Custom progress indicators\nfunction customProgressHandler(progress) {\n    // Your custom progress visualization\n    updateCustomCharts(progress);\n}\n```\n\n### 📊 **Analytics and Monitoring**\n\n#### **Custom Logging**\nConfigure logging in your application:\n\n```python\nimport logging\n\n# Custom logging configuration\nlogging.basicConfig(\n    level=logging.INFO,\n    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',\n    handlers=[\n        logging.FileHandler('pitch_analyzer.log'),\n        logging.StreamHandler()\n    ]\n)\n```\n\n#### **Performance Monitoring**\nAdd performance tracking:\n\n```python\nimport time\nfrom functools import wraps\n\ndef monitor_performance(func):\n    @wraps(func)\n    def wrapper(*args, **kwargs):\n        start_time = time.time()\n        result = func(*args, **kwargs)\n        end_time = time.time()\n        print(f\"{func.__name__} took {end_time - start_time:.2f} seconds\")\n        return result\n    return wrapper\n```\n\n---\n\n## 🐛 Troubleshooting \u0026 FAQ\n\n### 🔧 **Common Issues**\n\n#### **Issue: OpenAI API Key Not Working**\n```bash\n# Check if your API key is set correctly\necho $OPENAI_API_KEY\n\n# Test API key with curl\ncurl https://api.openai.com/v1/models \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\"\n```\n\n**Solution**: Ensure your API key is valid and has sufficient credits.\n\n#### **Issue: File Upload Fails**\n```bash\n# Check file permissions\nls -la uploads/\n\n# Check disk space\ndf -h\n```\n\n**Solutions**:\n- Ensure `uploads/` directory exists and is writable\n- Check file size limits in configuration\n- Verify supported file formats (PDF, PPT, PPTX)\n\n#### **Issue: WebSocket Connection Fails**\n**Solutions**:\n- Check firewall settings for port 8000\n- Ensure no other services are using the port\n- Try a different port: `uvicorn pitch.api:app --port 8001`\n\n#### **Issue: Agent Tasks Timeout**\n**Solutions**:\n- Increase timeout values in agent configuration\n- Check OpenAI API rate limits\n- Monitor network connectivity\n\n### ❓ **Frequently Asked Questions**\n\n#### **Q: Can I use different LLM models?**\nA: Yes! Modify the model in `crew.py`:\n```python\nself.llm = ChatOpenAI(\n    model_name=\"gpt-3.5-turbo\",  # or \"gpt-4\", \"claude-3\"\n    temperature=0.7,\n)\n```\n\n#### **Q: How do I add support for new file formats?**\nA: Extend the `DocumentParserTool` in `src/pitch/tools/document_tools.py`:\n```python\ndef _parse_docx(self, file_path: str) -\u003e str:\n    # Add DOCX parsing logic\n    pass\n```\n\n#### **Q: Can I run this in production?**\nA: Yes! Use production settings:\n```bash\nuvicorn pitch.api:app --host 0.0.0.0 --port 8000 --workers 4\n```\n\n#### **Q: How do I backup analysis results?**\nA: Implement database storage or file persistence:\n```python\n# Example: Save to database\ndef save_analysis_result(job_id: str, result: str):\n    # Your database logic here\n    pass\n```\n\n#### **Q: Can I integrate with other platforms?**\nA: Yes! Add webhook endpoints or API integrations:\n```python\n@app.post(\"/webhook/slack\")\nasync def slack_webhook(data: dict):\n    # Send results to Slack\n    pass\n```\n\n### 📈 **Performance Optimization**\n\n#### **Scaling for High Volume**\n- Use Redis for session management\n- Implement database connection pooling\n- Add caching layers for repeated analyses\n- Use container orchestration (Kubernetes)\n\n#### **Memory Optimization**\n```python\n# Example: Memory-efficient file processing\ndef process_large_files_in_chunks(file_path: str, chunk_size: int = 1024):\n    with open(file_path, 'rb') as file:\n        while chunk := file.read(chunk_size):\n            yield chunk\n```\n\n---\n\n## 📚 Development Guide\n\n### 🧪 **Testing**\n\n#### **Running Tests**\n```bash\n# Run all tests\npytest tests/ -v\n\n# Run specific test categories\npytest tests/unit/ -v\npytest tests/integration/ -v\n\n# Run with coverage\npytest --cov=pitch tests/\n```\n\n#### **Writing New Tests**\n```python\n# Example test file: tests/test_agents.py\nimport pytest\nfrom pitch.crew import Pitch\n\ndef test_pitch_analyzer_agent():\n    crew = Pitch()\n    agent = crew.pitch_analyzer()\n    assert agent.role == \"Expert Pitch Deck Analyst\"\n\ndef test_document_parsing():\n    # Test document parsing functionality\n    pass\n```\n\n### 🔄 **CI/CD Pipeline**\n\n#### **GitHub Actions Example**\n```yaml\n# .github/workflows/ci.yml\nname: CI/CD Pipeline\n\non: [push, pull_request]\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: actions/setup-python@v2\n        with:\n          python-version: '3.11'\n      - run: pip install uv\n      - run: uv pip install -e .\n      - run: pytest tests/\n```\n\n### 📦 **Building and Deployment**\n\n#### **Docker Deployment**\n```dockerfile\n# Dockerfile\nFROM python:3.11-slim\n\nWORKDIR /app\nCOPY . .\n\nRUN pip install uv\nRUN uv pip install -e .\n\nEXPOSE 8000\nCMD [\"uvicorn\", \"pitch.api:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8000\"]\n```\n\n#### **Kubernetes Deployment**\n```yaml\n# k8s-deployment.yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: pitch-analyzer\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: pitch-analyzer\n  template:\n    metadata:\n      labels:\n        app: pitch-analyzer\n    spec:\n      containers:\n      - name: pitch-analyzer\n        image: your-registry/pitch-analyzer:latest\n        ports:\n        - containerPort: 8000\n```\n\n---\n\n## 🤝 Contributing \u0026 Community\n\n### 🌟 **How to Contribute**\n\nWe welcome contributions from the community! Here's how you can help improve the Pitch Deck Analyzer:\n\n#### **Types of Contributions**\n- 🐛 **Bug Reports**: Help us identify and fix issues\n- ✨ **Feature Requests**: Suggest new capabilities and improvements\n- 📖 **Documentation**: Improve guides, tutorials, and API docs\n- 🧪 **Testing**: Add test cases and improve test coverage\n- 🔧 **Code Contributions**: Submit bug fixes and new features\n\n#### **Getting Started**\n1. **Fork the repository** on GitHub\n2. **Clone your fork** locally:\n   ```bash\n   git clone https://github.com/your-username/pitch-analyzer.git\n   cd pitch-analyzer\n   ```\n3. **Create a feature branch**:\n   ```bash\n   git checkout -b feature/your-amazing-feature\n   ```\n4. **Make your changes** and commit:\n   ```bash\n   git commit -m \"Add your amazing feature\"\n   ```\n5. **Push to your fork**:\n   ```bash\n   git push origin feature/your-amazing-feature\n   ```\n6. **Create a Pull Request** on GitHub\n\n#### **Development Setup**\n```bash\n# Install development dependencies\nuv pip install -e \".[dev]\"\n\n# Install pre-commit hooks\npre-commit install\n\n# Run tests before committing\npytest tests/ -v\n\n# Check code formatting\nblack src/\nisort src/\nflake8 src/\n```\n\n#### **Code Style Guidelines**\n- Follow **PEP 8** Python style guidelines\n- Use **Black** for code formatting\n- Add **type hints** for function parameters and returns\n- Write **comprehensive docstrings** for all functions and classes\n- Maintain **test coverage** above 80%\n\n#### **Pull Request Guidelines**\n- ✅ Ensure all tests pass\n- ✅ Add tests for new functionality\n- ✅ Update documentation as needed\n- ✅ Follow the commit message format\n- ✅ Keep PRs focused and atomic\n\n### 🏆 **Recognition**\n\nContributors will be recognized in our:\n- 📋 **Contributors List** in the README\n- 🎖️ **GitHub Contributors** section\n- 📢 **Release Notes** for significant contributions\n\n---\n\n## 📄 License \u0026 Legal\n\n### 📜 **License**\nThis project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for full details.\n\n```\nMIT License\n\nCopyright (c) 2024 Pitch Deck Analyzer Contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n```\n\n### ⚖️ **Third-Party Licenses**\nThis project uses several open-source libraries:\n- **FastAPI**: MIT License\n- **CrewAI**: MIT License  \n- **OpenAI Python**: MIT License\n- **Tailwind CSS**: MIT License\n\n### 🔒 **Data Privacy \u0026 Security**\n- 📄 **Document Processing**: Files are processed locally and deleted after analysis\n- 🔐 **API Keys**: Stored securely in environment variables\n- 🗑️ **Data Retention**: No persistent storage of uploaded documents\n- 🛡️ **Security**: Regular dependency updates and security scanning\n\n---\n\n## 📞 Support \u0026 Resources\n\n### 🆘 **Getting Help**\n\n#### **Documentation**\n- 📖 **API Documentation**: Available at `/docs` when running the server\n- 🔧 **Configuration Guide**: See the configuration section above\n- 🎯 **Best Practices**: Check our wiki for optimization tips\n\n#### **Community Support**\n- 💬 **GitHub Discussions**: Ask questions and share ideas\n- 🐛 **Issue Tracker**: Report bugs and request features\n- 📧 **Email Support**: contact@pitch-analyzer.com\n- 💼 **Enterprise Support**: enterprise@pitch-analyzer.com\n\n#### **Professional Services**\n- 🎓 **Training Workshops**: Custom training for your team\n- 🏗️ **Custom Implementation**: Tailored solutions for enterprise\n- ☁️ **Cloud Deployment**: Managed hosting and scaling\n- 🔧 **Integration Services**: Connect with your existing tools\n\n### 🔗 **Useful Links**\n\n#### **External Resources**\n- 🤖 **CrewAI Documentation**: [https://docs.crewai.com](https://docs.crewai.com)\n- ⚡ **FastAPI Documentation**: [https://fastapi.tiangolo.com](https://fastapi.tiangolo.com)\n- 🧠 **OpenAI API**: [https://platform.openai.com/docs](https://platform.openai.com/docs)\n- 🎨 **Tailwind CSS**: [https://tailwindcss.com](https://tailwindcss.com)\n\n#### **Related Projects**\n- 📊 **Startup Analytics Tools**: Similar analysis platforms\n- 🤖 **AI Agent Frameworks**: Alternative multi-agent systems\n- 📄 **Document Processing**: PDF and presentation parsers\n\n### 📋 **Changelog**\n\n#### **Version 1.0.0** (Current)\n- ✨ Initial release with six AI agents\n- 🌐 Full web interface with real-time updates\n- 📄 Support for PDF, PPT, and PPTX files\n- 📊 Comprehensive analysis reports\n- 🔌 WebSocket integration for live progress\n\n#### **Upcoming Features**\n- 🔄 **Batch Processing**: Analyze multiple pitch decks simultaneously\n- 📱 **Mobile App**: Native iOS and Android applications\n- 🌍 **Multi-language Support**: Analysis in multiple languages\n- 🤖 **Custom AI Models**: Integration with custom fine-tuned models\n- 📈 **Analytics Dashboard**: Historical analysis trends and insights\n\n---\n\n## 🚀 **Get Started Today!**\n\nReady to revolutionize your pitch deck analysis? \n\n1. **⬇️ Clone the repository**\n2. **🔧 Follow the installation guide**\n3. **🚀 Start analyzing pitch decks**\n4. **📊 Get comprehensive insights**\n\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003e🎯 Transform your investment decision-making with AI-powered analysis!\u003c/strong\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eMade with ❤️ by the Pitch Deck Analyzer team\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"#-pitch-deck-analyzer\"\u003eBack to Top ⬆️\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frk-vashista%2Fpitch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frk-vashista%2Fpitch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frk-vashista%2Fpitch/lists"}