Files
2026-10-09 16:09:28 +08:00

24 KiB
Raw Permalink Blame History

README in English 简体中文版自述文件 繁體版中文自述文件 日本語のREADME 한국어 README en Français Bahasa Indonesia Português(Brasil) README in Arabic Türkçe README Русская версия README

подписаться на X(Twitter) Static Badge RAGFlow Docker image downloads Последний релиз лицензия

Облако | Документация | Дорожная карта | Discord

RAGFlow in the GitHub Octoverse
infiniflow%2Fragflow | Trendshift
📕 Содержание

💡 Что такое RAGFlow?

RAGFlow — ведущий open-source движок Retrieval-Augmented Generation (RAG), который объединяет передовые возможности RAG с агентными технологиями и создаёт качественный контекстный слой для больших языковых моделей. Он предлагает понятный и масштабируемый RAG-пайплайн, подходящий как для небольших проектов, так и для крупных компаний. Благодаря объединённому движку контекста и готовым шаблонам агентов RAGFlow позволяет разработчикам быстро превращать сложные данные в высокоточные production-ready AI-системы.

🎮 Начало работы

Попробуйте облачную версию: https://cloud.ragflow.io.

Для локального развёртывания см. раздел Локальное развёртывание.

Chunking demonstration Agentic workflow demonstration

🔥 Последние обновления

  • 2026-09-29 Выпущен RAGFlow 1.0.0-rc1.

  • 2026-09-10 Добавлен сбор веб-контента через sitemap.

  • 2026-08-19 Представлена Knowledge Compilation для создания Wiki, Graph, Tree, PageIndex, Mind Map, Timeline и Skills на уровне документов и наборов данных.

  • 2026-08-19 Представлен Agentic RAG с режимами рассуждения Low, Medium, High и Ultra.

  • 2026-07-02 Добавлены источник данных Google BigQuery и инкрементальная синхронизация.

  • 2026-06-29 Добавлены каналы чата WhatsApp, DingTalk и WeCom.

  • 2026-05-26 Добавлен компонент Browser для просмотра и взаимодействия агентов с веб-страницами.

  • 2026-04-21 Добавлены семь встроенных шаблонов конвейеров ingest данных.

  • 2026-04-21 Добавлены публикация приложений Agent, выполнение кода в sandbox и генерация диаграмм.

  • 2026-04-21 Добавлены хранение и поиск пользовательской памяти.

Другие обновления см. в полных примечаниях к выпускам.

🎉 Следите за обновлениями

⭐️ Поставьте звезду репозиторию, чтобы не пропускать новые возможности и улучшения. Получайте уведомления о релизах!

RAGFlow feature updates

🌟 Ключевые возможности

🍭 «Качество на входе — качество на выходе»

  • Извлечение знаний на основе глубокого понимания документов из неструктурированных данных со сложным форматированием.
  • Поиск «иголки в стоге данных» при практически неограниченном количестве токенов.

🍱 Шаблонный чанкинг

  • Интеллектуальный и объяснимый.
  • Большой выбор готовых шаблонов.

🧩 Компиляция знаний (Knowledge Compilation)

  • Преобразуйте содержимое документов и наборов данных в структурированные объекты знаний: Wiki, Graph, Tree, PageIndex, Mind Map, Timeline и Skills.
  • Настраивайте модели компиляции и правила обработки, просматривайте, обновляйте и создавайте объекты знаний заново.

🧠 Агентный поиск (Agentic Retrieval)

  • Модель анализирует сложные вопросы и при необходимости разбивает их на части, ищет знания и проверяет доказательства в несколько этапов.
  • Режимы Low, Medium, High и Ultra позволяют регулировать глубину поиска и рассуждений в зависимости от сложности вопроса.

🌱 Обоснованные цитаты с минимальными галлюцинациями

  • Визуализация чанкинга с возможностью ручной корректировки.
  • Быстрый просмотр ключевых источников и отслеживаемых цитат.

🍔 Работа с разнородными источниками данных

  • Поддержка Word, презентаций, Excel, txt, изображений, сканов, структурированных данных, веб-страниц и многого другого.

🛀 Автоматизированный и простой RAG-пайплайн

  • Удобная оркестрация RAG как для личных проектов, так и для крупных компаний.
  • Настраиваемые LLM и модели эмбеддингов.
  • Множественный поиск + fused re-ranking.
  • Понятные API для простой интеграции.

🔎 Архитектура системы

Архитектура RAGFlow

🎬 Самостоятельное развёртывание

🐳 Развёртывание с Docker

📝 Требования к развёртыванию с Docker

  • Рекомендуемая начальная конфигурация: 4 ядра CPU, 16 ГБ RAM и 50 ГБ свободного места на диске. Фактические требования зависят от движка документов, объёма данных, задач анализа и параллельной нагрузки. Для локальных моделей и других дополнительных компонентов могут потребоваться дополнительные ресурсы.
  • Docker ≥ 24.0.0 и Docker Compose ≥ v2.26.1
  • gVisor — требуется только для Self-Managed контейнерной Sandbox.

Для Docker-развёртывания не требуется устанавливать Go на хост. Для Self-Managed контейнерной Sandbox необходимо установить и настроить gVisor; другим провайдерам Sandbox gVisor на хосте RAGFlow не требуется.

Tip

Если Docker ещё не установлен (Windows, Mac или Linux), см. Install Docker Engine.

🚀 Запуск сервера

  1. Убедитесь, что vm.max_map_count ≥ 262144:

    Проверить текущее значение:

    sysctl vm.max_map_count
    

    Если значение меньше 262144, установите:

    sudo sysctl -w vm.max_map_count=262144
    

    Чтобы изменение сохранилось после перезагрузки, добавьте в /etc/sysctl.conf:

    vm.max_map_count=262144
    
  2. Клонируйте репозиторий:

    git clone https://github.com/infiniflow/ragflow.git
    
  3. Переключитесь на тег релиза Go и запустите готовый образ Go с помощью Docker Compose:

Caution

Все образы собраны под x86. Образов для ARM64 пока нет. Если вы на ARM64, следуйте этому руководству, чтобы собрать образ самостоятельно.

Перейдите в каталог развертывания Docker.

cd ragflow/docker

Переключитесь на тег релиза Go v1.0.0-rc1.

git checkout v1.0.0-rc1

Запустите службы Go и их зависимости в фоновом режиме.

docker compose -f docker-compose.yml up -d

В конфигурации MySQL по умолчанию точка входа Go-образа сначала выполняет миграции базы данных, а затем запускает Syncer, Admin, API и Ingestor через bin/ragflow_server.

В открытой версии RAGFlow 1.0 DeepDoc использует CPU для анализа макета, OCR и распознавания таблиц.

  1. После запуска проверьте состояние сервисов и готовность API:

    docker ps
    

    Команда выше показывает состояние зависимостей. В RAGFlow не определён Compose healthcheck; подтвердите готовность через API:

    curl -f http://localhost/api/v1/system/healthz
    

    Ответ HTTP 200 означает готовность. Если вы изменили SVR_WEB_HTTP_PORT, используйте этот порт в URL проверки. Если запуск завершился ошибкой, проверьте журналы соответствующего сервиса командой docker logs --tail 50 <service>.

  2. Откройте в браузере IP-адрес сервера и войдите в RAGFlow.

    При стандартных настройках достаточно http://IP_ВАШЕЙ_МАШИНЫ (порт 80 можно не указывать).

  3. После входа добавьте LLM, модель эмбеддингов и reranker на странице поставщиков моделей, затем укажите имя модели, адрес сервиса и API-ключ.

    Подробнее: llm_api_key_setup.

    Готово!

⚙️ Настройка Docker

Развёртывание Go в Docker использует docker/.env и docker/docker-compose.yml, Kvrocks для кэша и хранения Checkpoint, а NATS JetStream — в качестве очереди сообщений. Изменяйте образ, порты, пароли, движок документов и источник образов моделей в соответствии с руководством по настройке Docker. Поддержка платформ (примечание: macOS временно не поддерживается, используйте хост Linux x86_64) описана в руководстве по сборке Go-образа и поддержке платформ.

При смене движка документов, изменении конфигурации и перезапуске сервисов, а также при сохранении или удалении существующих данных следуйте этому же руководству по настройке Docker.

🔨 Запуск из исходников для разработки

📝 Требования для сборки из исходников

  1. Установите версию Go из go.mod (сейчас Go 1.27), Clang 20, LLD 20, CMake 4.0 или новее и файлы разработки PCRE2. Сервисам Go нужны CGO и нативные библиотеки; build.sh задаёт необходимые параметры сборки.

  2. Клонируйте репозиторий, подготовьте нативные библиотеки и файлы моделей, затем соберите сервисы Go:

    git clone https://github.com/infiniflow/ragflow.git
    cd ragflow/
    
    python3 -m venv /tmp/ragflow-go-download-venv
    /tmp/ragflow-go-download-venv/bin/python -m pip install requests huggingface-hub
    /tmp/ragflow-go-download-venv/bin/python ragflow_deps/download_deps.py
    bash build.sh --all
    

    Скрипт подготавливает нативные библиотеки и ресурсы моделей для сборки Go и требует requests и huggingface-hub. Пропустите этот шаг, если те же ресурсы подготовлены другим способом. При запуске из корня репозитория сервисы Go автоматически находят internal/rag/res/deepdoc; для запуска из другого каталога задайте DEEPDOC_MODEL_DIR как абсолютный путь к нему.

  3. Запустите необходимые зависимости (Elasticsearch, MySQL, MinIO, NATS, Kvrocks и ClickHouse):

    sudo sysctl -w vm.max_map_count=262144
    docker compose --env-file docker/.env -f docker/docker-compose-base.yml \
      up -d --wait es01 mysql minio nats kvrocks clickhouse
    

    Сервисы Go, запущенные из исходного кода, подключаются к Kvrocks через localhost:6379; предоставленная конфигурация не требует изменения /etc/hosts.

  4. После миграции базы данных запустите сервисы по порядку. Выполняйте каждую команду в отдельном терминале из корня репозитория и оставьте открытыми четыре терминала сервисов:

    ./bin/ragflow_server --migrate
    RAGFLOW_DEV_MODE=true ./bin/ragflow_server --admin
    RAGFLOW_DEV_MODE=true ./bin/ragflow_server --ingestor
    RAGFLOW_DEV_MODE=true ./bin/ragflow_server --syncer
    RAGFLOW_DEV_MODE=true ./bin/ragflow_server --api
    

    Режимы запуска работают следующим образом:

    • --migrate: выполняет миграции базы данных и завершает работу.
    • --admin: запускает сервис Admin для управления и инициализации.
    • --ingestor: запускает сервис Ingestor для приёма и анализа данных.
    • --syncer: запускает сервис Syncer для синхронизации данных.
    • --api: запускает API для веб-интерфейса, SDK и внешних клиентов.

    RAGFLOW_DEV_MODE=true предназначен только для разработки. Он отключает проверку отката между версиями кода и миграций базы данных, но не запускает миграции и не изменяет схему. Не используйте его в production. Запускайте Admin раньше остальных сервисов. После миграции RAGFLOW_DEV_MODE=true bash build.sh --run запускает Admin, Ingestor и API, но не Syncer; для полной цепочки отдельно выполните RAGFLOW_DEV_MODE=true ./bin/ragflow_server --syncer.

  5. Только для разработки фронтенда установите Node.js и npm, затем запустите React-фронтенд:

    cd web
    npm install
    API_PROXY_SCHEME=go npm run dev
    

    В другом терминале проверьте готовность Go API:

    curl -f http://127.0.0.1:9380/api/v1/system/healthz
    

    Ответ HTTP 200 означает, что API отвечает. После разработки нажмите Ctrl+C в каждом терминале сервиса. Чтобы остановить зависимости, сохранив контейнеры, выполните docker compose --env-file docker/.env -f docker/docker-compose-base.yml stop es01 mysql minio nats kvrocks clickhouse. Чтобы удалить контейнеры зависимостей и сеть Compose, сохранив именованные тома, выполните docker compose --env-file docker/.env -f docker/docker-compose-base.yml down.

Подробнее см. Запуск сервиса из исходников.

📚 Документация

📜 Дорожная карта

См. Дорожную карту RAGFlow на 2026 год

🏄 Сообщество

🙌 Участие в разработке

RAGFlow развивается как open-source проект. Мы рады любым вкладам сообщества. Если хотите помочь — сначала ознакомьтесь с Contribution Guidelines.