{"data":{"slug":"bjornmelin-docmind-ai-llm","name":"docmind-ai-llm","tagline":"Open-source Streamlit application for advanced offline document analysis using LLMs","github_url":"https://github.com/BjornMelin/docmind-ai-llm","owner":"BjornMelin","repo":"docmind-ai-llm","owner_avatar_url":"https://avatars.githubusercontent.com/u/48079573?v=4","primary_language":"Python","stars":153,"forks":29,"topics":["ai-agents","document-analysis","hybrid-search","langchain","langgraph-supervisor-py","llama-cpp","llamacpp","lmstudio","local-llm","multimodal-embeddings","ollama","private-ai-agents","python","qdrant","sentence-transformers","streamlit","torch","transformers","vllm"],"archived":false,"github_pushed_at":"2026-08-19T00:25:54+00:00","maintenance_label":"Steady","stars_delta_30d":6,"url":"https://www.graphcanon.com/tools/bjornmelin-docmind-ai-llm","markdown_url":"https://www.graphcanon.com/tools/bjornmelin-docmind-ai-llm.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/bjornmelin-docmind-ai-llm","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=bjornmelin-docmind-ai-llm","description":"DocMind AI is a powerful, open-source Streamlit application leveraging LlamaIndex, LangGraph, and local Large Language Models (LLMs) via Ollama, LMStudio, llama.cpp, or vLLM for advanced document analysis. Analyze, summarize, and extract insights from a wide array of file formats, securely and privately, all offline.","homepage_url":"https://github.com/BjornMelin/docmind-ai-llm","license":"MIT","open_issues":26,"watchers":4,"ai_summary":"DocMind AI uses local Large Language Models and various tools to analyze documents securely offline.","readme_excerpt":"### Installation\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/BjornMelin/docmind-ai-llm.git\n   cd docmind-ai-llm\n   ```\n\n2. **Install dependencies:**\n\n   ```bash\n   uv sync --frozen\n   ```\n\n   Install the optional observability extra for LlamaIndex OpenTelemetry instrumentation:\n\n   ```bash\n   uv sync --frozen --extra observability\n   ```\n\n   Searchable-PDF export is POSIX-only (Linux, macOS, or WSL2; native Windows\n   is unsupported) and requires the OCRmyPDF and Tesseract executables:\n\n   ```bash\n   uv sync --frozen --extra searchable-pdf\n   ```\n\n   Prefetch the default retrieval and parser artifacts, then verify the parser\n   manifests:\n\n   ```bash\n   uv run python tools/models/pull.py \\\n     --all \\\n     --cache_dir ./models_cache \\\n     --parser-defaults \\\n     --parser-cache-dir ./cache/models\n   uv run python scripts/parser_health.py --check\n   ```\n\n   When a requested download's cache destination is omitted, the pull command\n   bootstraps `.env` and uses `embedding.cache_folder` or\n   `parsing.model_cache_dir`. Explicit `--cache_dir` and\n   `--parser-cache-dir` values remain authoritative.\n\n   Regenerate the schema 3 parser benchmark artifact after the code is frozen:\n\n   ```bash\n   uv run python scripts/benchmark_parsing.py \\\n     --generate-minimal-fixtures \\\n     --repeat 3 \\\n     --output docs/benchmarks/parser-runtime-validation.json\n   ```\n\n   The checked-in schema 3 artifact is bound to its clean source commit and\n   runtime identity. The validation record, current baseline, and measurement\n   limits live in `docs/developers/parser-runtime-validation.md`.\n\n   Start loopback-only Qdrant and run the system gate when you need end-to-end validation:\n\n   ```bash\n   ./scripts/start_qdrant_local.sh\n   DOCMIND_RUN_SYSTEM=1 \\\n     DOCMIND_QDRANT_SYSTEM_URL=http://127.0.0.1:6333 \\\n     uv run pytest tests/system/test_e2e_offline.py -q\n   ```\n\n   **Key Dependencies Included:**\n\n   - **LlamaIndex Core (>=0.14.21,<0.15.0)**: Ingestion, retrieval, selectors, and query engines, with selected LLM, Hugging Face, Qdrant, and DuckDB adapters\n   - **LangGraph (>=1.0.10,<2.0.0)**: Four-worker supervisor orchestration (graph-native `StateGraph`, no external supervisor wrapper)\n   - **Streamlit (>=1.52.2,<2.0.0)**: Web interface framework\n   - **Ollama (0.6.2)**: Local LLM integration\n   - **Qdrant Client (>=1.15.1,<2.0.0)**: Vector database operations\n   - **Docling (>=2.111,<3)**: Multi-format document conversion.\n   - **pypdfium2 (>=5.7,<6)**: PDF inspection and page rasterization.\n   - **RapidOCR (>=3.8,<4)**: CPU-safe local OCR using the locked wheel's hash-verified packaged models.\n   - **FastEmbed (>=0.5.1)**: Direct CPU sparse query encoding\n   - **Loguru (>=0.7.3,<1.0.0)**: Structured logging\n   - **Pydantic (2.13.4)**: Data validation and settings.\n\n3. **Install spaCy language model:**\n\n   spaCy is bundled for optional **NLP enrichment** (sentence segmentation + entity extraction during ingestion). Install a language model if you plan to use enrichment:\n\n   ```bash\n   # Install the small English model (recommended, ~15MB)\n   uv run python -m spacy download en_core_web_sm\n\n   # Optional: Install larger models for better accuracy\n   # Medium model (~50MB): uv run python -m spacy download en_core_web_md\n   # Large model (~560MB): uv run python -m spacy download en_core_web_lg\n   ```\n\n   **Note:** spaCy models are downloaded and cached locally. The app does not auto-download models; install them explicitly for offline use.\n\n   Optional configuration (defaults shown):\n\n   ```bash\n   # Enable/disable enrichment\n   DOCMIND_SPACY__ENABLED=true\n   # Pipeline name or path (blank fallback when missing)\n   DOCMIND_SPACY__MODEL=en_core_web_sm\n   # cpu|cuda|apple|auto (auto prefers CUDA, then Apple, else CPU)\n   DOCMIND_SPACY__DEVICE=auto\n   DOCMIND_SPACY__GPU_ID=0\n   ```\n\n   Cross-platform acceleration:\n\n   - NVIDIA CUDA (validated on Linux x86_64): `uv sync --frozen --no-group cpu --extra gpu` and set `DOCMI","github_created_at":"2025-01-21T23:54:58+00:00","created_at":"2026-07-15T11:02:10.936554+00:00","updated_at":"2026-09-20T05:09:29.745043+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"}],"tags":[{"slug":"ai-agents","name":"ai-agents"},{"slug":"document-analysis","name":"document-analysis"},{"slug":"hybrid-search","name":"hybrid-search"},{"slug":"langchain","name":"langchain"},{"slug":"langgraph-supervisor-py","name":"langgraph-supervisor-py"},{"slug":"llama-cpp","name":"llama-cpp"},{"slug":"lmstudio","name":"lmstudio"},{"slug":"local-llm","name":"local-llm"}],"trust":{"provenance":{"is_fork":false,"github_id":920317644,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T05:09:27.236Z","maintenance":{"label":"Steady","score":60,"methodology":"github_public_v1","releases_90d":3,"days_since_push":32,"last_release_at":"2026-07-18T09:35:52Z","stars_delta_30d":6,"open_issues_delta_30d":-2},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T11:02:12.625Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-09-20T05:09:28.276Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-09-20T05:09:28.276Z","managed_saas":false},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-09-20T05:09:28.276Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-09-20T05:09:28.276Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-20T05:09:28.276Z"}},"decision_facts":{"hosting":{"model":"self_hosted","summary":"DocMind AI operates in an entirely self-hosted manner, ideal for environments requiring local model operation without internet dependencies."},"pricing":{"model":"freemium","summary":"Being open-source under MIT license, DocMind AI is free to use. However, additional setup and processing power are required."},"requirements":{"notes":["- The tool requires specific libraries such as LlamaIndex, LangGraph, Streamlit, Ollama, Qdrant Client, among others."]},"constraints":{"runtime":"docker_platform","hosting_model":"self_hosted","pricing_model":"freemium"},"when_to_use":["- When you need to analyze documents securely and privately, ensuring that all processing happens offline.","- For advanced document analysis tasks requiring the use of local LLMs such as Ollama, LMStudio, llama.cpp, or vLLM without internet access.","- If your projects mandate POSIX-compliant environments (Linux, macOS) for features like searchable PDF exports with OCRmyPDF and Tesseract."],"when_not_to_use":["- When working in non-POSIX compliant OSes such as native Windows, where functionalities involving searchability in PDFs are unsupported.","- For deployments requiring cloud-based or internet-accessible models; here DocMind's focus on local LLMs and offline processing is a limitation."],"source":"enrich:decision_facts","observed_at":"2026-07-17T09:02:57.093Z"},"constraint_facets":{"runtime":"docker_platform","hosting_model":"self_hosted","pricing_model":"freemium"},"decision_summary":[{"label":"Hosting","value":"self hosted - DocMind AI operates in an entirely self-hosted manner, ideal for environments requiring local model operation without internet dependencies."},{"label":"Pricing","value":"freemium - Being open-source under MIT license, DocMind AI is free to use. However, additional setup and processing power are required."},{"label":"Requirements","value":"- The tool requires specific libraries such as LlamaIndex, LangGraph, Streamlit, Ollama, Qdrant Client, among others."},{"label":"Adopt for","value":"DocMind AI is an open-source Python application using local Large Language Models for offline document analysis. It supports various file formats and offers secure and private insights extraction."},{"label":"Runtime","value":"docker platform"}]}}