$ account infiniflow
RAGFlow is a production-grade, open-source Retrieval-Augmented Generation (RAG) engine that combines deep document understanding with agentic workflows. The system ingests heterogeneous documents (PDF, DOCX, images, web pages, etc.), parses them using a multi-stage pipeline (layout analysis, OCR, table recognition), chunks the content with various strategies (token, QA, page, etc.), indexes into vector stores (Elasticsearch, Infinity, OceanBase, SereneDB), and provides retrieval-augmented chat with LLM integration. Beyond basic RAG, it features a visual agent canvas for building complex workflows (parallel subgraphs, loops, tool calls), a sandboxed code execution environment, knowledge compilation (wiki, knowledge graphs, timelines), multi-tenant model management, and chat channel integrations (WhatsApp, Feishu, Discord). The architecture is a full-stack application with a Go backend (Gin), Python API (Flask/Quart), React/TypeScript frontend, and NATS message queue for async tasks. It is designed for enterprise deployment with Docker Compose and supports multiple LLM providers and embedding models.
Infinity is a high-performance AI-native vector database designed for LLM applications, offering hybrid search over dense embeddings, sparse embeddings, tensors, and full-text. Its architecture is a distributed C++ core with a modular planner/executor, multiple index types (HNSW, IVF, BMP, DiskANN, EMVB, PLAID, full-text), and a transaction system with WAL and checkpointing. The database exposes a SQL interface, a Thrift RPC API, an HTTP API, and native SDKs for Python, Go, and C++. It also includes a web GUI (Next.js) for administration. The codebase is heavily optimized with SIMD instructions, custom analyzers for multiple languages, and advanced query optimization (fast rough filters, result caching). While the repository is actively maintained with a comprehensive test suite and CI/CD pipeline, there is some technical drift from deprecated KNN implementations and disabled unit tests, and the reliance on C++20 modules may introduce compiler compatibility risks.