| Name | ragdex JSON | 
            
| Version | 
                  0.2.3
                   
                  JSON | 
            
 | download  | 
            
| home_page | None  | 
            
| Summary | RAG-powered document indexing and search for MCP (Model Context Protocol) | 
            | upload_time | 2025-10-22 03:28:50 | 
            | maintainer | None | 
            
            | docs_url | None | 
            | author | None | 
            
            | requires_python | >=3.10 | 
            
            
            | license | MIT License  Copyright (c) 2025 Spiritual Library MCP Server  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  ---  Third-Party Dependencies:  This software uses the following open-source libraries: - LangChain (MIT License) - https://github.com/langchain-ai/langchain - ChromaDB (Apache 2.0) - https://github.com/chroma-core/chroma - sentence-transformers (Apache 2.0) - https://github.com/UKPLab/sentence-transformers - PyPDF2 (BSD 3-Clause) - https://github.com/py-pdf/PyPDF2 - FastAPI (MIT License) - https://github.com/tiangolo/fastapi - Ollama (MIT License) - https://github.com/ollama/ollama - Pydantic (MIT License) - https://github.com/pydantic/pydantic  Please refer to each library's respective license for their terms and conditions. | 
            | keywords | 
                
                    ai
                
                     chromadb
                
                     claude
                
                     documents
                
                     mcp
                
                     personal-library
                
                     rag
                
                     semantic-search
                 | 
            | VCS | 
                
                     | 
                
            
            | bugtrack_url | 
                
                 | 
             
            
            | requirements | 
                
                   
                       langchain
                   
                       langchain-community
                   
                       chromadb
                   
                       sentence-transformers
                   
                       pypdf2
                   
                       pypandoc
                   
                       unstructured
                   
                       numpy
                   
                       python-docx
                   
                       pypdf
                   
                       openpyxl
                   
                       pdfminer.six
                   
                       beautifulsoup4
                   
                       mobi
                   
                       ebooklib
                   
                       flask
                   
                       python-dotenv
                   
                       psutil
                   
                       platformdirs
                   
                
             | 
            
| Travis-CI | 
                
                   No Travis.
                
             | 
            | coveralls test coverage | 
                
                   No coveralls.
                
             | 
        
        
            
            <div align="center">
# 🚀 Ragdex
### Transform Your Documents & Emails into an AI-Powered Knowledge Base
[](https://badge.fury.io/py/ragdex)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://modelcontextprotocol.io/)
[](https://pypi.org/project/ragdex/)
**Ragdex** is a powerful Model Context Protocol (MCP) server that transforms your personal document library and email archives into an AI-queryable knowledge base. Built for Claude Desktop and compatible with any MCP client.
[Features](#-features) • [Quick Start](#-quick-start) • [Documentation](#-documentation) • [Examples](#-examples) • [Support](#-support)
</div>
---
## ✨ Features
### 🎯 Core Capabilities
<table>
<tr>
<td width="50%">
#### 📚 Universal Document Support
- **PDFs** with OCR for scanned documents
- **Office Files** (Word, PowerPoint, Excel)
- **E-books** (EPUB, MOBI, AZW, AZW3)
- **Plain Text** and Markdown files
- **Automatic format detection**
</td>
<td width="50%">
#### 📧 Email Intelligence (v0.2.0+)
- **Apple Mail** (EMLX) support
- **Outlook** (OLM export) support
- **Smart filtering** - Skip marketing & spam
- **Attachment processing**
- **Thread reconstruction**
</td>
</tr>
<tr>
<td width="50%">
#### 🔍 Advanced Search & RAG
- **Semantic search** with vector embeddings
- **Cross-document insights**
- **Context-aware responses**
- **17+ specialized MCP tools**
- **Real-time index updates**
</td>
<td width="50%">
#### 🎨 Beautiful Web Dashboard
- **Real-time monitoring** at `localhost:8888`
- **Indexing progress tracking**
- **Document & email statistics**
- **Failed document management**
- **Search interface with filters**
</td>
</tr>
</table>
### 🛠️ MCP Tools Available
| Tool | Description |
|------|-------------|
| 🔍 **search** | Semantic search with optional filters |
| 📊 **compare_perspectives** | Compare viewpoints across documents |
| 📈 **library_stats** | Get comprehensive statistics |
| 📖 **summarize_book** | Generate AI summaries |
| 💭 **extract_quotes** | Find relevant quotes on topics |
| ❓ **question_answer** | Direct Q&A from your library |
| 📚 **list_books** | Browse by pattern/author/directory |
| 📅 **recent_books** | Find recently indexed content |
| 🔄 **refresh_cache** | Update search cache |
| ...and 8 more! | |
### 🎯 Smart Email Filtering
Ragdex intelligently filters out noise from your email archives:
- ❌ **Auto-skips**: Marketing, promotions, shopping receipts, newsletters
- ❌ **Excludes**: Spam, junk, trash folders
- ✅ **Focuses on**: Personal communications, important discussions
- ⚙️ **Configurable**: Whitelist important senders, set date ranges
---
## 🚀 Quick Start
### Installation (2-5 minutes)
```bash
# Using uv (faster, ~2 minutes)
uv venv ~/ragdex_env
uv pip install ragdex
# Or standard pip (~5 minutes)
python -m venv ~/ragdex_env
source ~/ragdex_env/bin/activate
pip install ragdex
```
**Note**: First run will download ~2GB of embedding models (5-10 minutes on broadband)
### Setup Services (2-3 minutes)
```bash
# Download installer
curl -O https://raw.githubusercontent.com/hpoliset/ragdex/main/install_ragdex_services.sh
chmod +x install_ragdex_services.sh
# Run interactive setup
./install_ragdex_services.sh
# That's it! Services are running
```
### Configure Claude Desktop
After running the installer, it will display a JSON configuration snippet. You need to:
1. **Copy the displayed configuration** (it will look like this):
```json
{
  "mcpServers": {
    "ragdex": {
      "command": "/path/to/ragdex-mcp",
      "env": { ... }
    }
  }
}
```
2. **Open Claude Desktop's config file**:
   - Location: `~/Library/Application Support/Claude/claude_desktop_config.json`
   - You can open it with: `open ~/Library/Application\ Support/Claude/`
3. **Add or merge the configuration**:
   - If the file is empty, paste the entire JSON
   - If you have other servers, add the "ragdex" section to your existing "mcpServers" object
4. **Restart Claude Desktop** for changes to take effect
**Alternative: Automatic Configuration**
```bash
# This script can automatically update your Claude config
curl -O https://raw.githubusercontent.com/hpoliset/ragdex/main/update_claude_config.sh
chmod +x update_claude_config.sh
./update_claude_config.sh
```
**You're done!** 🎉 Ragdex is now indexing your documents and ready to use with Claude.
---
## 📖 Documentation
### System Requirements
- **Python 3.10-3.12** (3.13 not supported due to dependency conflicts)
- **macOS** (primary) or **Linux** (Windows not yet supported)
- **8GB RAM minimum** (16GB recommended)
  - Embedding model uses ~4GB
  - Document processing can spike to 6-8GB for large PDFs
- **Storage**:
  - ~500MB for Ragdex installation
  - ~2GB for embedding models (auto-downloaded on first run)
  - ~1MB per 100-page PDF for vector database storage
- **Claude Desktop** (required for MCP integration)
- **Optional dependencies**:
  - Calibre (for MOBI/AZW ebooks)
  - LibreOffice (for .doc files)
  - ocrmypdf (for scanned PDFs)
### Configuration Options
#### Environment Variables
```bash
# Core paths
export PERSONAL_LIBRARY_DOC_PATH="/path/to/documents"
export PERSONAL_LIBRARY_DB_PATH="/path/to/database"
export PERSONAL_LIBRARY_LOGS_PATH="/path/to/logs"
# Email settings (v0.2.0+)
export PERSONAL_LIBRARY_INDEX_EMAILS=true
export PERSONAL_LIBRARY_EMAIL_SOURCES=apple_mail,outlook_local
export PERSONAL_LIBRARY_EMAIL_MAX_AGE_DAYS=365
export PERSONAL_LIBRARY_EMAIL_EXCLUDED_FOLDERS=Spam,Junk,Trash
```
### Claude Desktop Configuration Example
<details>
<summary>📝 Complete Configuration Example</summary>
If this is your first MCP server, your `claude_desktop_config.json` should look like:
```json
{
  "mcpServers": {
    "ragdex": {
      "command": "/Users/yourname/ragdex_env/bin/ragdex-mcp",
      "env": {
        "PYTHONUNBUFFERED": "1",
        "CHROMA_TELEMETRY": "false",
        "PERSONAL_LIBRARY_DOC_PATH": "/Users/yourname/Documents",
        "PERSONAL_LIBRARY_DB_PATH": "/Users/yourname/.ragdex/chroma_db",
        "PERSONAL_LIBRARY_LOGS_PATH": "/Users/yourname/.ragdex/logs"
      }
    }
  }
}
```
If you already have other MCP servers, add ragdex to the existing structure:
```json
{
  "mcpServers": {
    "existing-server": { ... },
    "ragdex": {
      "command": "/Users/yourname/ragdex_env/bin/ragdex-mcp",
      "env": { ... }
    }
  }
}
```
</details>
### Advanced Installation
<details>
<summary>📦 Install with Optional Dependencies</summary>
```bash
# Document processing extras (using uv - recommended)
uv pip install ragdex[document-processing]
# Service management
uv pip install ragdex[services]
# Everything
uv pip install ragdex[document-processing,services]
# Alternative: standard pip
# pip install ragdex[document-processing,services]
```
</details>
<details>
<summary>🔧 Install from Source</summary>
```bash
git clone https://github.com/hpoliset/ragdex
cd ragdex
# Using uv (recommended)
uv pip install -e .
# With extras
uv pip install -e ".[document-processing,services]"
# Alternative: standard pip
# pip install -e ".[document-processing,services]"
```
</details>
<details>
<summary>📋 Available CLI Commands</summary>
```bash
# Main commands
ragdex-mcp            # Start MCP server
ragdex-index          # Start background indexer
ragdex-web            # Launch web dashboard
# Management commands
ragdex --help                        # Show all commands
ragdex ensure-dirs                   # Create directories
ragdex config                        # View configuration
ragdex index-status                  # Check indexing status
ragdex find-unindexed                # Find new documents
ragdex manage-failed                 # Handle failed documents
```
</details>
---
## 🔄 Upgrading Ragdex
### Upgrading from PyPI
```bash
# Stop all services first (use bootout for macOS 11+)
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null || \
launchctl unload ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null
# Kill any running processes
pkill -f ragdex 2>/dev/null || true
# Using uv (recommended, faster)
uv pip install --upgrade ragdex
# Or with extras
uv pip install --upgrade ragdex[document-processing,services]
# Alternative: standard pip
# pip install --upgrade ragdex
# Restart services (use bootstrap for macOS 11+)
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null || \
launchctl load ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null
# Restart Claude Desktop to reload MCP server
```
### Upgrading from Source
```bash
# Stop services (use bootout for macOS 11+)
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null || \
launchctl unload ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null
# Kill any running processes
pkill -f ragdex 2>/dev/null || true
# Pull latest changes
cd ragdex
git pull origin main
# Upgrade dependencies (using uv for speed)
uv pip install --upgrade -e .
# Or with standard pip
# pip install --upgrade -e .
# Restart services
launchctl load ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null
```
### Service Management During Upgrades
<details>
<summary>⚙️ Complete Service Restart Process</summary>
#### 1. Stop All Services
```bash
# Stop background indexer
launchctl unload ~/Library/LaunchAgents/com.ragdex.index-monitor.plist
# Stop web dashboard
launchctl unload ~/Library/LaunchAgents/com.ragdex.webmonitor.plist
# Or use the uninstall script (doesn't delete configs)
./scripts/uninstall_service.sh
./scripts/uninstall_webmonitor_service.sh
```
#### 2. Perform Upgrade
```bash
# Upgrade via uv (recommended) or pip
uv pip install --upgrade ragdex
# Or: pip install --upgrade ragdex
```
#### 3. Clear Cache & Locks (Optional)
```bash
# Clear any stale locks
rm -f ~/ragdex/chroma_db/*.lock
# Clear failed documents list if needed
ragdex clear-failed
# Refresh the search cache
ragdex refresh-cache
```
#### 4. Restart Services
```bash
# Reinstall services (updates paths if needed)
./scripts/install_service.sh
./scripts/install_webmonitor_service.sh
# Or manually load
launchctl load ~/Library/LaunchAgents/com.ragdex.index-monitor.plist
launchctl load ~/Library/LaunchAgents/com.ragdex.webmonitor.plist
# Verify services are running
launchctl list | grep ragdex
```
#### 5. Restart Claude Desktop
- **Important**: Claude Desktop must be fully quit and restarted to reload the MCP server
- On macOS: Cmd+Q to quit, then reopen Claude Desktop
- The MCP server will automatically reinitialize with the upgraded version
</details>
### Post-Upgrade Verification
```bash
# Check version
ragdex --version
# Verify services are running
ragdex index-status
# Check web dashboard
open http://localhost:8888
# Test MCP connection in Claude
# Ask Claude: "Can you check my library stats?"
```
### Troubleshooting Upgrades
<details>
<summary>🔧 Common Upgrade Issues</summary>
**Services not starting after upgrade?**
```bash
# Check service logs
tail -f ~/Library/Logs/ragdex_*.log
# Reinstall services with fresh configs
./install_ragdex_services.sh
```
**"Unload failed: 5: Input/output error" on macOS?**
```bash
# Use bootout/bootstrap for macOS 11+
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null
# Alternative: Kill processes directly
pkill -f ragdex
```
**Claude not recognizing new features?**
- Fully quit Claude Desktop (Cmd+Q on macOS)
- Wait 5 seconds
- Reopen Claude Desktop
- The MCP server will reinitialize
**Database compatibility issues?**
```bash
# Backup existing database
cp -r ~/.ragdex/chroma_db ~/.ragdex/chroma_db.backup
# Clear and rebuild index (last resort)
rm -rf ~/.ragdex/chroma_db
ragdex-index --full-reindex
```
**Permission errors after upgrade?**
```bash
# Ensure directories have correct permissions
chmod -R 755 ~/.ragdex
ragdex ensure-dirs
```
</details>
---
## 💡 Examples
### Using with Claude Desktop
Once configured, you can ask Claude:
```
"Search my library for information about machine learning"
"Compare perspectives on climate change across my documents"
"Summarize the main themes in my recent emails"
"Find all documents mentioning Python programming"
"What meetings did I have last month?" (from emails)
```
### Python API Usage (Advanced)
While Ragdex is primarily designed for Claude Desktop via MCP, you can also use it programmatically:
```python
from personal_doc_library.core.shared_rag import RAGSystem
# Initialize the system
rag = RAGSystem()
# Search documents
results = rag.search_documents("artificial intelligence", max_results=5)
# Get document stats
stats = rag.get_library_statistics()
print(f"Documents indexed: {len(rag.book_index)}")
```
**Note**: The primary use case is through Claude Desktop. Direct API usage requires understanding the internal architecture.
---
## 🎯 Use Cases
### 📚 Personal Knowledge Management
- Build a searchable archive of your books, papers, and notes
- Never lose track of important information
- Connect ideas across different sources
### 💼 Professional Research
- Analyze technical documentation
- Compare different approaches from papers
- Extract key insights from reports
### 📧 Email Intelligence
- Search through years of communications
- Find important attachments
- Track project discussions
### 🎓 Academic Study
- Research across textbooks and papers
- Extract quotes for citations
- Compare author perspectives
---
## 🏗️ Architecture
```mermaid
graph TD
    A[📚 Document Sources<br/>PDF, Word, EPUB, MOBI] --> B[⚙️ Ragdex Indexer<br/>Background Service]
    B --> C[🗄️ ChromaDB<br/>Vector Store<br/>768-dim embeddings]
    C --> D[🔌 MCP Server<br/>17 Tools & Resources]
    D --> E[🤖 Claude Desktop<br/>AI Assistant]
    F[📧 Email Archives<br/>Apple Mail, Outlook] --> B
    G[📊 Web Dashboard<br/>localhost:8888] --> C
    B -.->|MD5 Hash<br/>Deduplication| H[🔍 Change Detection]
    B -.->|OCR Support| I[📄 Scanned Docs]
    style A fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000
    style E fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
    style F fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000
    style G fill:#fce4ec,stroke:#880e4f,stroke-width:2px,color:#000
    style B fill:#f3e5f5,stroke:#4a148c,stroke-width:2px,color:#000
    style C fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000
    style D fill:#e3f2fd,stroke:#0d47a1,stroke-width:2px,color:#000
    style H fill:#fffde7,stroke:#f57f17,stroke-width:1px,color:#000
    style I fill:#fffde7,stroke:#f57f17,stroke-width:1px,color:#000
```
> 📖 **[View Detailed Architecture Documentation →](docs/ARCHITECTURE.md)**
### Components
- **⚙️ Indexer**: Background service monitoring document changes with automatic retry
- **🗄️ Vector Store**: ChromaDB with 768-dim embeddings (all-mpnet-base-v2)
- **🔌 MCP Server**: 17 tools, 5 prompts, 4 resources for document interaction
- **📊 Web Monitor**: Real-time dashboard at localhost:8888 with search interface
---
## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Development Setup
```bash
# Clone and install in dev mode
git clone https://github.com/hpoliset/ragdex
cd ragdex
# Using uv (recommended)
uv pip install -e ".[dev]"
# Alternative: standard pip
# pip install -e ".[dev]"
# Run tests
pytest tests/
# Format code
black src/
```
---
## 📊 Stats & Performance
- **Indexing Speed**:
  - ~10-20 documents/minute (varies by size and format)
  - Large PDFs (>100MB): 2-5 minutes each
  - OCR processing: 1-2 pages/minute
- **Search Latency**:
  - First search: 2-5 seconds (model loading)
  - Subsequent searches: 100-500ms
- **Memory Usage**:
  - Idle: ~500MB
  - Active indexing: 4-8GB
  - With embeddings loaded: 4-6GB constant
- **Storage**:
  - Vector DB: ~10MB per 1000 pages
  - Metadata index: ~1MB per 100 documents
---
## 🐛 Troubleshooting
<details>
<summary>📝 Common Issues</summary>
**Services not starting?**
```bash
# Check service status
launchctl list | grep ragdex
# View logs
tail -f ~/ragdex/logs/ragdex_*.log
```
**Documents not indexing?**
```bash
# Check for failed documents
ragdex manage-failed
# Verify paths
ragdex config
```
**Permission errors?**
```bash
# Ensure directories exist
ragdex ensure-dirs
# Check permissions
ls -la ~/Documents/Library
```
</details>
---
## 📜 License
MIT License - see [LICENSE](LICENSE) for details.
---
## 🙏 Acknowledgments
Built with:
- [LangChain](https://langchain.com/) - LLM framework
- [ChromaDB](https://www.trychroma.com/) - Vector database
- [Sentence Transformers](https://sbert.net/) - Embeddings
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification
---
## 📞 Support
- 📧 **Issues**: [GitHub Issues](https://github.com/hpoliset/ragdex/issues)
- 💬 **Discussions**: [GitHub Discussions](https://github.com/hpoliset/ragdex/discussions)
- 📖 **Wiki**: [Documentation Wiki](https://github.com/hpoliset/ragdex/wiki)
---
<div align="center">
Made with ❤️ for the AI community
**[⭐ Star us on GitHub](https://github.com/hpoliset/ragdex)**
</div>
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "ragdex",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "ai, chromadb, claude, documents, mcp, personal-library, rag, semantic-search",
    "author": null,
    "author_email": "hpoliset and contributors <hpoliset@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/3b/ff/687648f296544cf7fc01aaaf39e2a4fe1f197560775569df7db6ef76ce12/ragdex-0.2.3.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n\n# \ud83d\ude80 Ragdex\n\n### Transform Your Documents & Emails into an AI-Powered Knowledge Base\n\n[](https://badge.fury.io/py/ragdex)\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n[](https://modelcontextprotocol.io/)\n[](https://pypi.org/project/ragdex/)\n\n**Ragdex** is a powerful Model Context Protocol (MCP) server that transforms your personal document library and email archives into an AI-queryable knowledge base. Built for Claude Desktop and compatible with any MCP client.\n\n[Features](#-features) \u2022 [Quick Start](#-quick-start) \u2022 [Documentation](#-documentation) \u2022 [Examples](#-examples) \u2022 [Support](#-support)\n\n</div>\n\n---\n\n## \u2728 Features\n\n### \ud83c\udfaf Core Capabilities\n\n<table>\n<tr>\n<td width=\"50%\">\n\n#### \ud83d\udcda Universal Document Support\n- **PDFs** with OCR for scanned documents\n- **Office Files** (Word, PowerPoint, Excel)\n- **E-books** (EPUB, MOBI, AZW, AZW3)\n- **Plain Text** and Markdown files\n- **Automatic format detection**\n\n</td>\n<td width=\"50%\">\n\n#### \ud83d\udce7 Email Intelligence (v0.2.0+)\n- **Apple Mail** (EMLX) support\n- **Outlook** (OLM export) support\n- **Smart filtering** - Skip marketing & spam\n- **Attachment processing**\n- **Thread reconstruction**\n\n</td>\n</tr>\n<tr>\n<td width=\"50%\">\n\n#### \ud83d\udd0d Advanced Search & RAG\n- **Semantic search** with vector embeddings\n- **Cross-document insights**\n- **Context-aware responses**\n- **17+ specialized MCP tools**\n- **Real-time index updates**\n\n</td>\n<td width=\"50%\">\n\n#### \ud83c\udfa8 Beautiful Web Dashboard\n- **Real-time monitoring** at `localhost:8888`\n- **Indexing progress tracking**\n- **Document & email statistics**\n- **Failed document management**\n- **Search interface with filters**\n\n</td>\n</tr>\n</table>\n\n### \ud83d\udee0\ufe0f MCP Tools Available\n\n| Tool | Description |\n|------|-------------|\n| \ud83d\udd0d **search** | Semantic search with optional filters |\n| \ud83d\udcca **compare_perspectives** | Compare viewpoints across documents |\n| \ud83d\udcc8 **library_stats** | Get comprehensive statistics |\n| \ud83d\udcd6 **summarize_book** | Generate AI summaries |\n| \ud83d\udcad **extract_quotes** | Find relevant quotes on topics |\n| \u2753 **question_answer** | Direct Q&A from your library |\n| \ud83d\udcda **list_books** | Browse by pattern/author/directory |\n| \ud83d\udcc5 **recent_books** | Find recently indexed content |\n| \ud83d\udd04 **refresh_cache** | Update search cache |\n| ...and 8 more! | |\n\n### \ud83c\udfaf Smart Email Filtering\n\nRagdex intelligently filters out noise from your email archives:\n\n- \u274c **Auto-skips**: Marketing, promotions, shopping receipts, newsletters\n- \u274c **Excludes**: Spam, junk, trash folders\n- \u2705 **Focuses on**: Personal communications, important discussions\n- \u2699\ufe0f **Configurable**: Whitelist important senders, set date ranges\n\n---\n\n## \ud83d\ude80 Quick Start\n\n### Installation (2-5 minutes)\n\n```bash\n# Using uv (faster, ~2 minutes)\nuv venv ~/ragdex_env\nuv pip install ragdex\n\n# Or standard pip (~5 minutes)\npython -m venv ~/ragdex_env\nsource ~/ragdex_env/bin/activate\npip install ragdex\n```\n\n**Note**: First run will download ~2GB of embedding models (5-10 minutes on broadband)\n\n### Setup Services (2-3 minutes)\n\n```bash\n# Download installer\ncurl -O https://raw.githubusercontent.com/hpoliset/ragdex/main/install_ragdex_services.sh\nchmod +x install_ragdex_services.sh\n\n# Run interactive setup\n./install_ragdex_services.sh\n\n# That's it! Services are running\n```\n\n### Configure Claude Desktop\n\nAfter running the installer, it will display a JSON configuration snippet. You need to:\n\n1. **Copy the displayed configuration** (it will look like this):\n```json\n{\n  \"mcpServers\": {\n    \"ragdex\": {\n      \"command\": \"/path/to/ragdex-mcp\",\n      \"env\": { ... }\n    }\n  }\n}\n```\n\n2. **Open Claude Desktop's config file**:\n   - Location: `~/Library/Application Support/Claude/claude_desktop_config.json`\n   - You can open it with: `open ~/Library/Application\\ Support/Claude/`\n\n3. **Add or merge the configuration**:\n   - If the file is empty, paste the entire JSON\n   - If you have other servers, add the \"ragdex\" section to your existing \"mcpServers\" object\n\n4. **Restart Claude Desktop** for changes to take effect\n\n**Alternative: Automatic Configuration**\n```bash\n# This script can automatically update your Claude config\ncurl -O https://raw.githubusercontent.com/hpoliset/ragdex/main/update_claude_config.sh\nchmod +x update_claude_config.sh\n./update_claude_config.sh\n```\n\n**You're done!** \ud83c\udf89 Ragdex is now indexing your documents and ready to use with Claude.\n\n---\n\n## \ud83d\udcd6 Documentation\n\n### System Requirements\n\n- **Python 3.10-3.12** (3.13 not supported due to dependency conflicts)\n- **macOS** (primary) or **Linux** (Windows not yet supported)\n- **8GB RAM minimum** (16GB recommended)\n  - Embedding model uses ~4GB\n  - Document processing can spike to 6-8GB for large PDFs\n- **Storage**:\n  - ~500MB for Ragdex installation\n  - ~2GB for embedding models (auto-downloaded on first run)\n  - ~1MB per 100-page PDF for vector database storage\n- **Claude Desktop** (required for MCP integration)\n- **Optional dependencies**:\n  - Calibre (for MOBI/AZW ebooks)\n  - LibreOffice (for .doc files)\n  - ocrmypdf (for scanned PDFs)\n\n### Configuration Options\n\n#### Environment Variables\n\n```bash\n# Core paths\nexport PERSONAL_LIBRARY_DOC_PATH=\"/path/to/documents\"\nexport PERSONAL_LIBRARY_DB_PATH=\"/path/to/database\"\nexport PERSONAL_LIBRARY_LOGS_PATH=\"/path/to/logs\"\n\n# Email settings (v0.2.0+)\nexport PERSONAL_LIBRARY_INDEX_EMAILS=true\nexport PERSONAL_LIBRARY_EMAIL_SOURCES=apple_mail,outlook_local\nexport PERSONAL_LIBRARY_EMAIL_MAX_AGE_DAYS=365\nexport PERSONAL_LIBRARY_EMAIL_EXCLUDED_FOLDERS=Spam,Junk,Trash\n```\n\n### Claude Desktop Configuration Example\n\n<details>\n<summary>\ud83d\udcdd Complete Configuration Example</summary>\n\nIf this is your first MCP server, your `claude_desktop_config.json` should look like:\n\n```json\n{\n  \"mcpServers\": {\n    \"ragdex\": {\n      \"command\": \"/Users/yourname/ragdex_env/bin/ragdex-mcp\",\n      \"env\": {\n        \"PYTHONUNBUFFERED\": \"1\",\n        \"CHROMA_TELEMETRY\": \"false\",\n        \"PERSONAL_LIBRARY_DOC_PATH\": \"/Users/yourname/Documents\",\n        \"PERSONAL_LIBRARY_DB_PATH\": \"/Users/yourname/.ragdex/chroma_db\",\n        \"PERSONAL_LIBRARY_LOGS_PATH\": \"/Users/yourname/.ragdex/logs\"\n      }\n    }\n  }\n}\n```\n\nIf you already have other MCP servers, add ragdex to the existing structure:\n\n```json\n{\n  \"mcpServers\": {\n    \"existing-server\": { ... },\n    \"ragdex\": {\n      \"command\": \"/Users/yourname/ragdex_env/bin/ragdex-mcp\",\n      \"env\": { ... }\n    }\n  }\n}\n```\n\n</details>\n\n### Advanced Installation\n\n<details>\n<summary>\ud83d\udce6 Install with Optional Dependencies</summary>\n\n```bash\n# Document processing extras (using uv - recommended)\nuv pip install ragdex[document-processing]\n\n# Service management\nuv pip install ragdex[services]\n\n# Everything\nuv pip install ragdex[document-processing,services]\n\n# Alternative: standard pip\n# pip install ragdex[document-processing,services]\n```\n\n</details>\n\n<details>\n<summary>\ud83d\udd27 Install from Source</summary>\n\n```bash\ngit clone https://github.com/hpoliset/ragdex\ncd ragdex\n\n# Using uv (recommended)\nuv pip install -e .\n\n# With extras\nuv pip install -e \".[document-processing,services]\"\n\n# Alternative: standard pip\n# pip install -e \".[document-processing,services]\"\n```\n\n</details>\n\n<details>\n<summary>\ud83d\udccb Available CLI Commands</summary>\n\n```bash\n# Main commands\nragdex-mcp            # Start MCP server\nragdex-index          # Start background indexer\nragdex-web            # Launch web dashboard\n\n# Management commands\nragdex --help                        # Show all commands\nragdex ensure-dirs                   # Create directories\nragdex config                        # View configuration\nragdex index-status                  # Check indexing status\nragdex find-unindexed                # Find new documents\nragdex manage-failed                 # Handle failed documents\n```\n\n</details>\n\n---\n\n## \ud83d\udd04 Upgrading Ragdex\n\n### Upgrading from PyPI\n\n```bash\n# Stop all services first (use bootout for macOS 11+)\nlaunchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null || \\\nlaunchctl unload ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null\n\n# Kill any running processes\npkill -f ragdex 2>/dev/null || true\n\n# Using uv (recommended, faster)\nuv pip install --upgrade ragdex\n\n# Or with extras\nuv pip install --upgrade ragdex[document-processing,services]\n\n# Alternative: standard pip\n# pip install --upgrade ragdex\n\n# Restart services (use bootstrap for macOS 11+)\nlaunchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null || \\\nlaunchctl load ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null\n\n# Restart Claude Desktop to reload MCP server\n```\n\n### Upgrading from Source\n\n```bash\n# Stop services (use bootout for macOS 11+)\nlaunchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null || \\\nlaunchctl unload ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null\n\n# Kill any running processes\npkill -f ragdex 2>/dev/null || true\n\n# Pull latest changes\ncd ragdex\ngit pull origin main\n\n# Upgrade dependencies (using uv for speed)\nuv pip install --upgrade -e .\n\n# Or with standard pip\n# pip install --upgrade -e .\n\n# Restart services\nlaunchctl load ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null\n```\n\n### Service Management During Upgrades\n\n<details>\n<summary>\u2699\ufe0f Complete Service Restart Process</summary>\n\n#### 1. Stop All Services\n```bash\n# Stop background indexer\nlaunchctl unload ~/Library/LaunchAgents/com.ragdex.index-monitor.plist\n\n# Stop web dashboard\nlaunchctl unload ~/Library/LaunchAgents/com.ragdex.webmonitor.plist\n\n# Or use the uninstall script (doesn't delete configs)\n./scripts/uninstall_service.sh\n./scripts/uninstall_webmonitor_service.sh\n```\n\n#### 2. Perform Upgrade\n```bash\n# Upgrade via uv (recommended) or pip\nuv pip install --upgrade ragdex\n# Or: pip install --upgrade ragdex\n```\n\n#### 3. Clear Cache & Locks (Optional)\n```bash\n# Clear any stale locks\nrm -f ~/ragdex/chroma_db/*.lock\n\n# Clear failed documents list if needed\nragdex clear-failed\n\n# Refresh the search cache\nragdex refresh-cache\n```\n\n#### 4. Restart Services\n```bash\n# Reinstall services (updates paths if needed)\n./scripts/install_service.sh\n./scripts/install_webmonitor_service.sh\n\n# Or manually load\nlaunchctl load ~/Library/LaunchAgents/com.ragdex.index-monitor.plist\nlaunchctl load ~/Library/LaunchAgents/com.ragdex.webmonitor.plist\n\n# Verify services are running\nlaunchctl list | grep ragdex\n```\n\n#### 5. Restart Claude Desktop\n- **Important**: Claude Desktop must be fully quit and restarted to reload the MCP server\n- On macOS: Cmd+Q to quit, then reopen Claude Desktop\n- The MCP server will automatically reinitialize with the upgraded version\n\n</details>\n\n### Post-Upgrade Verification\n\n```bash\n# Check version\nragdex --version\n\n# Verify services are running\nragdex index-status\n\n# Check web dashboard\nopen http://localhost:8888\n\n# Test MCP connection in Claude\n# Ask Claude: \"Can you check my library stats?\"\n```\n\n### Troubleshooting Upgrades\n\n<details>\n<summary>\ud83d\udd27 Common Upgrade Issues</summary>\n\n**Services not starting after upgrade?**\n```bash\n# Check service logs\ntail -f ~/Library/Logs/ragdex_*.log\n\n# Reinstall services with fresh configs\n./install_ragdex_services.sh\n```\n\n**\"Unload failed: 5: Input/output error\" on macOS?**\n```bash\n# Use bootout/bootstrap for macOS 11+\nlaunchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null\nlaunchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.ragdex.* 2>/dev/null\n\n# Alternative: Kill processes directly\npkill -f ragdex\n```\n\n**Claude not recognizing new features?**\n- Fully quit Claude Desktop (Cmd+Q on macOS)\n- Wait 5 seconds\n- Reopen Claude Desktop\n- The MCP server will reinitialize\n\n**Database compatibility issues?**\n```bash\n# Backup existing database\ncp -r ~/.ragdex/chroma_db ~/.ragdex/chroma_db.backup\n\n# Clear and rebuild index (last resort)\nrm -rf ~/.ragdex/chroma_db\nragdex-index --full-reindex\n```\n\n**Permission errors after upgrade?**\n```bash\n# Ensure directories have correct permissions\nchmod -R 755 ~/.ragdex\nragdex ensure-dirs\n```\n\n</details>\n\n---\n\n## \ud83d\udca1 Examples\n\n### Using with Claude Desktop\n\nOnce configured, you can ask Claude:\n\n```\n\"Search my library for information about machine learning\"\n\"Compare perspectives on climate change across my documents\"\n\"Summarize the main themes in my recent emails\"\n\"Find all documents mentioning Python programming\"\n\"What meetings did I have last month?\" (from emails)\n```\n\n### Python API Usage (Advanced)\n\nWhile Ragdex is primarily designed for Claude Desktop via MCP, you can also use it programmatically:\n\n```python\nfrom personal_doc_library.core.shared_rag import RAGSystem\n\n# Initialize the system\nrag = RAGSystem()\n\n# Search documents\nresults = rag.search_documents(\"artificial intelligence\", max_results=5)\n\n# Get document stats\nstats = rag.get_library_statistics()\nprint(f\"Documents indexed: {len(rag.book_index)}\")\n```\n\n**Note**: The primary use case is through Claude Desktop. Direct API usage requires understanding the internal architecture.\n\n---\n\n## \ud83c\udfaf Use Cases\n\n### \ud83d\udcda Personal Knowledge Management\n- Build a searchable archive of your books, papers, and notes\n- Never lose track of important information\n- Connect ideas across different sources\n\n### \ud83d\udcbc Professional Research\n- Analyze technical documentation\n- Compare different approaches from papers\n- Extract key insights from reports\n\n### \ud83d\udce7 Email Intelligence\n- Search through years of communications\n- Find important attachments\n- Track project discussions\n\n### \ud83c\udf93 Academic Study\n- Research across textbooks and papers\n- Extract quotes for citations\n- Compare author perspectives\n\n---\n\n## \ud83c\udfd7\ufe0f Architecture\n\n```mermaid\ngraph TD\n    A[\ud83d\udcda Document Sources<br/>PDF, Word, EPUB, MOBI] --> B[\u2699\ufe0f Ragdex Indexer<br/>Background Service]\n    B --> C[\ud83d\uddc4\ufe0f ChromaDB<br/>Vector Store<br/>768-dim embeddings]\n    C --> D[\ud83d\udd0c MCP Server<br/>17 Tools & Resources]\n    D --> E[\ud83e\udd16 Claude Desktop<br/>AI Assistant]\n\n    F[\ud83d\udce7 Email Archives<br/>Apple Mail, Outlook] --> B\n    G[\ud83d\udcca Web Dashboard<br/>localhost:8888] --> C\n\n    B -.->|MD5 Hash<br/>Deduplication| H[\ud83d\udd0d Change Detection]\n    B -.->|OCR Support| I[\ud83d\udcc4 Scanned Docs]\n\n    style A fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000\n    style E fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000\n    style F fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000\n    style G fill:#fce4ec,stroke:#880e4f,stroke-width:2px,color:#000\n    style B fill:#f3e5f5,stroke:#4a148c,stroke-width:2px,color:#000\n    style C fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px,color:#000\n    style D fill:#e3f2fd,stroke:#0d47a1,stroke-width:2px,color:#000\n    style H fill:#fffde7,stroke:#f57f17,stroke-width:1px,color:#000\n    style I fill:#fffde7,stroke:#f57f17,stroke-width:1px,color:#000\n```\n\n> \ud83d\udcd6 **[View Detailed Architecture Documentation \u2192](docs/ARCHITECTURE.md)**\n\n### Components\n\n- **\u2699\ufe0f Indexer**: Background service monitoring document changes with automatic retry\n- **\ud83d\uddc4\ufe0f Vector Store**: ChromaDB with 768-dim embeddings (all-mpnet-base-v2)\n- **\ud83d\udd0c MCP Server**: 17 tools, 5 prompts, 4 resources for document interaction\n- **\ud83d\udcca Web Monitor**: Real-time dashboard at localhost:8888 with search interface\n\n---\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n```bash\n# Clone and install in dev mode\ngit clone https://github.com/hpoliset/ragdex\ncd ragdex\n\n# Using uv (recommended)\nuv pip install -e \".[dev]\"\n\n# Alternative: standard pip\n# pip install -e \".[dev]\"\n\n# Run tests\npytest tests/\n\n# Format code\nblack src/\n```\n\n---\n\n## \ud83d\udcca Stats & Performance\n\n- **Indexing Speed**:\n  - ~10-20 documents/minute (varies by size and format)\n  - Large PDFs (>100MB): 2-5 minutes each\n  - OCR processing: 1-2 pages/minute\n- **Search Latency**:\n  - First search: 2-5 seconds (model loading)\n  - Subsequent searches: 100-500ms\n- **Memory Usage**:\n  - Idle: ~500MB\n  - Active indexing: 4-8GB\n  - With embeddings loaded: 4-6GB constant\n- **Storage**:\n  - Vector DB: ~10MB per 1000 pages\n  - Metadata index: ~1MB per 100 documents\n\n---\n\n## \ud83d\udc1b Troubleshooting\n\n<details>\n<summary>\ud83d\udcdd Common Issues</summary>\n\n**Services not starting?**\n```bash\n# Check service status\nlaunchctl list | grep ragdex\n\n# View logs\ntail -f ~/ragdex/logs/ragdex_*.log\n```\n\n**Documents not indexing?**\n```bash\n# Check for failed documents\nragdex manage-failed\n\n# Verify paths\nragdex config\n```\n\n**Permission errors?**\n```bash\n# Ensure directories exist\nragdex ensure-dirs\n\n# Check permissions\nls -la ~/Documents/Library\n```\n\n</details>\n\n---\n\n## \ud83d\udcdc License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n## \ud83d\ude4f Acknowledgments\n\nBuilt with:\n- [LangChain](https://langchain.com/) - LLM framework\n- [ChromaDB](https://www.trychroma.com/) - Vector database\n- [Sentence Transformers](https://sbert.net/) - Embeddings\n- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification\n\n---\n\n## \ud83d\udcde Support\n\n- \ud83d\udce7 **Issues**: [GitHub Issues](https://github.com/hpoliset/ragdex/issues)\n- \ud83d\udcac **Discussions**: [GitHub Discussions](https://github.com/hpoliset/ragdex/discussions)\n- \ud83d\udcd6 **Wiki**: [Documentation Wiki](https://github.com/hpoliset/ragdex/wiki)\n\n---\n\n<div align=\"center\">\nMade with \u2764\ufe0f for the AI community\n\n**[\u2b50 Star us on GitHub](https://github.com/hpoliset/ragdex)**\n</div>",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2025 Spiritual Library MCP Server  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  ---  Third-Party Dependencies:  This software uses the following open-source libraries: - LangChain (MIT License) - https://github.com/langchain-ai/langchain - ChromaDB (Apache 2.0) - https://github.com/chroma-core/chroma - sentence-transformers (Apache 2.0) - https://github.com/UKPLab/sentence-transformers - PyPDF2 (BSD 3-Clause) - https://github.com/py-pdf/PyPDF2 - FastAPI (MIT License) - https://github.com/tiangolo/fastapi - Ollama (MIT License) - https://github.com/ollama/ollama - Pydantic (MIT License) - https://github.com/pydantic/pydantic  Please refer to each library's respective license for their terms and conditions.",
    "summary": "RAG-powered document indexing and search for MCP (Model Context Protocol)",
    "version": "0.2.3",
    "project_urls": {
        "Changelog": "https://github.com/hpoliset/ragdex/releases",
        "Documentation": "https://github.com/hpoliset/ragdex#readme",
        "Homepage": "https://github.com/hpoliset/ragdex",
        "Issues": "https://github.com/hpoliset/ragdex/issues",
        "Repository": "https://github.com/hpoliset/ragdex"
    },
    "split_keywords": [
        "ai",
        " chromadb",
        " claude",
        " documents",
        " mcp",
        " personal-library",
        " rag",
        " semantic-search"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "20756d7538a286dc7bc9da848ccf7914de1acd4eeb1d8118c14a9eba56cbebe5",
                "md5": "ca58f0f686cbbe413e369728f5bc73c3",
                "sha256": "ef590fc4f7eda9790b5de4cd1886f5e2971105a6d297da0395c49b2e6009566e"
            },
            "downloads": -1,
            "filename": "ragdex-0.2.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ca58f0f686cbbe413e369728f5bc73c3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 110616,
            "upload_time": "2025-10-22T03:28:48",
            "upload_time_iso_8601": "2025-10-22T03:28:48.224081Z",
            "url": "https://files.pythonhosted.org/packages/20/75/6d7538a286dc7bc9da848ccf7914de1acd4eeb1d8118c14a9eba56cbebe5/ragdex-0.2.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3bff687648f296544cf7fc01aaaf39e2a4fe1f197560775569df7db6ef76ce12",
                "md5": "2f92578285579fe185227e5fcf750909",
                "sha256": "6da0917eaf227c68bab7ec1c56c798f698a2a66945dda21ad27580273f31826f"
            },
            "downloads": -1,
            "filename": "ragdex-0.2.3.tar.gz",
            "has_sig": false,
            "md5_digest": "2f92578285579fe185227e5fcf750909",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 620298,
            "upload_time": "2025-10-22T03:28:50",
            "upload_time_iso_8601": "2025-10-22T03:28:50.658460Z",
            "url": "https://files.pythonhosted.org/packages/3b/ff/687648f296544cf7fc01aaaf39e2a4fe1f197560775569df7db6ef76ce12/ragdex-0.2.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-22 03:28:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hpoliset",
    "github_project": "ragdex",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "langchain",
            "specs": [
                [
                    "==",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "langchain-community",
            "specs": [
                [
                    "==",
                    "0.0.10"
                ]
            ]
        },
        {
            "name": "chromadb",
            "specs": [
                [
                    "==",
                    "0.4.22"
                ]
            ]
        },
        {
            "name": "sentence-transformers",
            "specs": [
                [
                    ">=",
                    "2.2.2"
                ]
            ]
        },
        {
            "name": "pypdf2",
            "specs": [
                [
                    "==",
                    "3.0.1"
                ]
            ]
        },
        {
            "name": "pypandoc",
            "specs": [
                [
                    "==",
                    "1.12"
                ]
            ]
        },
        {
            "name": "unstructured",
            "specs": [
                [
                    "==",
                    "0.11.5"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "<",
                    "2.0"
                ]
            ]
        },
        {
            "name": "python-docx",
            "specs": [
                [
                    ">=",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "pypdf",
            "specs": []
        },
        {
            "name": "openpyxl",
            "specs": []
        },
        {
            "name": "pdfminer.six",
            "specs": []
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    ">=",
                    "4.11.0"
                ]
            ]
        },
        {
            "name": "mobi",
            "specs": [
                [
                    ">=",
                    "0.3.3"
                ]
            ]
        },
        {
            "name": "ebooklib",
            "specs": [
                [
                    ">=",
                    "0.18"
                ]
            ]
        },
        {
            "name": "flask",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "5.9.7"
                ]
            ]
        },
        {
            "name": "platformdirs",
            "specs": [
                [
                    ">=",
                    "4.0.0"
                ]
            ]
        }
    ],
    "lcname": "ragdex"
}