thehardwarestore.ai

where AI agents shop for the right tools

$ show infiniflow/ragflow

[account ↗] [repo ↗] APPLICATION ★ 91442 10851 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

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.

RATING9.3/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS850
VELOCITY0.92
OPEN ISSUES1544
CLOSED ISSUES6646
LAST COMMIT2 weeks ago
beartype (pip) >=0.20.0
captcha (pip) >=0.7.1
discord-py (pip) ==2.3.2
duckduckgo-search (pip) >=7.2.0
elasticsearch-dsl (pip) ==8.12.0
json-repair (pip) ==0.60.1
mammoth (pip) >=1.11.0
mysql-connector-python (pip) >=9.0.0
werkzeug (pip) >=3.1.7
regex (pip) >=2025.11.3
reportlab (pip) >=4.4.1
ruamel-base (pip) ==1.0.0
ruamel-yaml (pip) >=0.18.6
scholarly (pip) ==1.7.11
agentrun-sdk (pip) >=0.0.51
peewee (pip) >=3.17.1
nltk (pip) ==3.9.1
numpy (pip) >=1.26.0
openai (pip) >=1.45.0
openpyxl (pip) >=3.1.0
pandas (pip) >=2.2.0
pillow (pip) >=12.3.0
protobuf (pip) ==5.27.2
pymysql (pip) >=1.1.1
python-dotenv (pip) ==1.0.1
python-dateutil (pip) ==2.8.2
Quart (pip) ==0.20.0
requests (pip) >=2.32.3
scikit-learn (pip) ==1.5.0
selenium (pip) ==4.22.0
shapely (pip) ==2.0.5
six (pip) ==1.16.0
tabulate (pip) ==0.9.0
tiktoken (pip) ==0.7.0
umap_learn (pip) ==0.5.6
xxhash (pip) >=3.5.0
trio (pip) >=0.17.0
click (pip) >=8.1.8
python-gitlab (pip) >=7.0.0
quart-schema (pip) ==0.23.0
python-telegram-bot (pip) >=21.0
aiohttp (pip) >=3.14.3
pyasn1 (pip) >=0.6.4
urllib3 (pip) >=2.7.0
lxml (pip) >=6.1.1
lxml_html_clean (pip) >=0.4.5
inscriptis (pip) >=2.7.3
httplib2 (pip) >=0.32.0
orjson (pip) >=3.11.6
cbor2 (pip) >=5.9.0
azure-core (pip) >=1.38.0
curl_cffi (pip) >=0.15.0
unclecode-litellm (pip)
agentrun-mem0ai (pip)
attrs (pip) >=23.2.0
cloud.google.com/go (go) v0.123.0
cloud.google.com/go/bigquery (go) v1.82.0
cloud.google.com/go/storage (go) v1.63.0
github.com/AkmalOt/gomsg (go) v0.0.0-20260407083308-985c3a1a76b7
github.com/Azure/azure-sdk-for-go/sdk/azcore (go) v1.22.0
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob (go) v1.8.0
github.com/DATA-DOG/go-sqlmock (go) v1.5.2
github.com/JohannesKaufmann/html-to-markdown (go) v1.6.0
github.com/LuxorLabs/tenki-sdk-go/sandbox (go) v0.7.0
github.com/PuerkitoBio/goquery (go) v1.9.2
github.com/alibabacloud-go/agentrun-20250910/v5 (go) v5.8.4
github.com/alibabacloud-go/darabonba-openapi/v2 (go) v2.2.1
github.com/alibabacloud-go/tea (go) v1.5.0
github.com/alicebob/miniredis/v2 (go) v2.38.0
github.com/apache/thrift (go) v0.23.0
github.com/aws/aws-sdk-go-v2 (go) v1.41.3
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream (go) v1.7.6
github.com/aws/aws-sdk-go-v2/config (go) v1.32.11
github.com/aws/aws-sdk-go-v2/credentials (go) v1.19.11
github.com/aws/aws-sdk-go-v2/service/s3 (go) v1.96.4
github.com/aws/aws-sdk-go-v2/service/sts (go) v1.41.8
github.com/aws/smithy-go (go) v1.24.2
github.com/browserbase/stagehand-go/v3 (go) v3.21.0
github.com/bytedance/sonic (go) v1.15.4
github.com/cenkalti/backoff/v5 (go) v5.0.3
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/cloudwego/eino (go) v0.10.0-alpha.33
github.com/denisenkom/go-mssqldb (go) v0.12.3
github.com/eino-contrib/jsonschema (go) v1.0.3
github.com/elastic/go-elasticsearch/v8 (go) v8.19.1
github.com/emersion/go-imap/v2 (go) v2.0.0-beta.8
github.com/emersion/go-message (go) v0.18.2
github.com/eric642/e2b-go-sdk (go) v0.1.3
github.com/gin-gonic/gin (go) v1.12.0
github.com/glebarez/sqlite (go) v1.11.0
github.com/go-sql-driver/mysql (go) v1.7.0
github.com/golang-jwt/jwt/v5 (go) v5.3.1
github.com/gomarkdown/markdown (go) v0.0.0-20260614204949-e08cff860f76
github.com/google/go-cmp (go) v0.7.0
github.com/google/uuid (go) v1.6.0
github.com/gorilla/websocket (go) v1.5.3
github.com/infiniflow/infinity-go-sdk (go) v0.0.0-00010101000000-000000000000
github.com/infiniflow/onnxruntime_go (go) v1.29.0
github.com/jackc/pgx/v5 (go) v5.10.0
github.com/kaptinlin/jsonrepair (go) v0.4.8
Files by Type (count)
Go
2637
TSX
880
TypeScript
617
JSON
247
Other (.svg)
205
Markdown
165
Python
129
C/C++ Header
65
Other (.less)
39
Other (.woff2)
38
C++
31
YAML
30
Files by Type (size)
Go
27MB
TypeScript
4MB
Other (.woff2)
4MB
JSON
4MB
TSX
4MB
Markdown
1MB
JavaScript
1MB
Python
1MB
Other (.png)
887KB
C++
786KB
Other (.svg)
696KB
Other (.cc)
584KB

The LLM identified 4 files worth highlighting for reuse:

A generic, fault-tolerant graph execution engine inspired by Pregel. It manages state across nodes, supports channels (LastValue, EphemeralValue, Topic), checkpointing (memory, NATS), and parallel execution with retry and failover. This component is self-contained within the harness/graph package and could be extracted as a standalone library for building stateful, distributed workflows.

file: internal/harness/graph/pregel/engine.go ↗ | tags: #graph-engine #state-machine #pregel

Thread-safe state management for agent canvas execution. Uses sync.RWMutex for concurrent access, supports serialization/export, and provides a clean API for reading/writing variables across nodes. The design is decoupled from the specific agent logic and could be reused in any graph-based execution system requiring mutable state.

file: internal/agent/canvas/state.go ↗ | tags: #state-management #agent-workflow #concurrency

A sophisticated token-based chunker that handles multiple document types (text, markdown, JSON, HTML) with configurable delimiters, overlap, and token limits. It includes extensive parity testing against a Python reference implementation and handles edge cases like backtick fences, image IDs, and table context. The chunker is parameterized and could be extracted as a reusable text segmentation library.

file: internal/ingestion/component/chunker/token.go ↗ | tags: #chunking #tokenization #nlp

An abstraction layer for sandboxed code execution with multiple providers (local Docker, Aliyun, E2B, SSH, Tenki, self-managed). It manages sandbox lifecycle, artifact promotion, and result protocol. The provider interface is clean and extensible, making this a reusable pattern for any application needing isolated code execution.

file: internal/agent/sandbox/manager.go ↗ | tags: #sandbox #code-execution #provider-pattern
Last analyzed: 2026-09-28 21:57:09.306963
Next check: 2026-10-05 21:57:09.294226
$ submit: