Репозиторий infiniflow/ragflow представляет собой движок RAG с открытым исходным кодом, который сочетает в себе генерацию с дополненной информацией для поиска данных и рабочие процессы агентов. Данный репозиторий появился в снимке GitHub Daily Trending, предоставленном для 2026-08-14. Это устаревшая информация, а не утверждение о том, что проект будет популярен постоянно. RAGFlow не является продуктом OdiRouter, и рассмотренные здесь источники не подтверждают наличие связи между этими проектами.
Это руководство посвящено вопросам, важным перед тестовым развёртыванием: как документы становятся контекстом для поиска, какое место занимают агенты и MCP, что на самом деле требуется для развёртывания через Docker и какие проверки безопасности и конфиденциальности следует провести до работы с реальными данными.
Что такое RAGFlow и чем оно не является
RAGFlow — это приложение с возможностью самостоятельного развёртывания и API-слой для загрузки документов, индексирования, поиска, чата и оркестрации агентов. В его документации описаны наборы данных, шаблоны разбиения на фрагменты, эмбеддинги, переранжирование, цитаты и визуальное полотно для агентов. Это не просто векторная база данных. Система также включает парсеры, исполнители задач, веб-интерфейс, настройки поставщиков моделей, сервисы хранения и дополнительные интеграции с инструментами.
В README репозитория указано, что RAGFlow предназначен для преобразования сложных данных в контекст для больших языковых моделей. Эта формулировка описывает цель проекта, а не гарантирует качество ответов. Качество поиска зависит от исходных документов, парсера, метода разбиения на фрагменты, модели эмбеддингов, переранжировщика, фильтров, промпта и выбранной LLM.
Архитектура: от документа к ответу
Систему удобно рассматривать как четыре взаимосвязанных этапа.
Загрузка и понимание документов
RAGFlow поддерживает документированные форматы, включая PDF, DOC, DOCX, TXT, MD, MDX, CSV, XLSX, XLS, JPEG, JPG, PNG, TIF, GIF, PPT и PPTX. В кратком руководстве предлагается создать набор данных, выбрать модель эмбеддингов и метод разбиения на фрагменты, загрузить файлы и запустить парсинг. В репозитории также описан сервис компьютерного зрения DeepDoc для анализа макета, OCR и распознавания структуры таблиц.
Разбиение на фрагменты — не просто косметический этап предварительной обработки. Небольшие фрагменты делают семантическое сопоставление более точным, тогда как более крупные сохраняют контекст. RAGFlow предлагает стратегии на основе шаблонов, позволяя явно задать этот компромисс для определённого типа документов. После обработки набора данных моделью эмбеддингов, согласно краткому руководству, эту модель нельзя изменить для данного набора данных, поскольку все векторы должны оставаться в одном и том же пространстве эмбеддингов.
Извлечение и формирование контекста
Во время выполнения запроса система может сочетать семантическое извлечение с фильтрацией по ключевым словам и метаданным. Документация по RAG объясняет, почему одной лишь векторной схожести недостаточно для кодов продуктов, номеров нормативных актов, дат, подразделений и других точных ограничений. RAGFlow также документирует конечные точки построения графов знаний и RAPTOR в справочнике HTTP API. Рассматривайте их как дополнительные стратегии извлечения, которые следует протестировать на вашем корпусе, а не как автоматическое повышение точности.
Модель генерации получает извлечённое содержимое в качестве контекста. Интерфейс и API могут возвращать фрагменты-источники и метаданные, что позволяет проверить, почему был сформирован тот или иной ответ. Ссылки представляют собой подтверждающие ссылки, полученные в процессе поиска информации, а не доказательство правильности ответа. Неправильный синтаксический анализ или отсутствие документа всё ещё могут привести к уверенному ответу.
Роли моделей
RAGFlow разделяет роли моделей, вместо того чтобы рассматривать каждую модель как модель чата. В текущем руководстве по моделям перечислены роли LLM, embedding, rerank, VLM, ASR, TTS, OCR и модерации. Типичный путь извлечения использует модель эмбеддингов для индексации и поиска, необязательный реранкер для переупорядочивания кандидатов и LLM для формулирования ответа. VLM, OCR и другие функции важны, когда входные данные содержат сканы, изображения, речь или мультимодальный контент.
Страница поддерживаемых моделей представляет собой поддерживаемый список провайдеров, а не обещание, что каждая модель обладает идентичными функциями. Он включает в себя локальных и размещенных провайдеров, а также опцию OpenAI-API-Compatible для сервисов, предоставляющих совместимые конечные точки. Проверьте точный идентификатор модели, размеры встраивания, ограничения контекста, поддержку инструментов, поведение потоковой передачи и политику обработки данных для выбранного вами поставщика.
Агенты, память и MCP
Обзор агентов описывает no-code холст, в котором компоненты выполняются последовательно либо ветвятся в зависимости от условий, классификаций или циклов. Агент может вызывать HTTP-интерфейсы, базы данных, инструменты MCP, пользовательский код, средства извлечения и память. Документация разграничивает чат, предназначенный главным образом для вопросов и ответов по базе знаний и многоходового диалога, и агента, который координирует многоэтапный бизнес-процесс.
Компонент Retrieval может выполнять запросы к базе знаний внутри агента. Его также можно предоставить в качестве инструмента, чтобы модель сама решала, когда выполнять поиск. Память — это отдельный поток данных для истории диалога и состояния взаимодействия. Обеспечьте наблюдаемость обоих аспектов: правильный ответ может поступить из набора данных, из памяти, от инструмента или из собственного предшествующего контекста модели.
Сервер MCP компонента RAGFlow является необязательным и работает параллельно с функционирующим сервером RAGFlow. В режиме самостоятельного размещения сервер использует ключ API и может получать доступ к наборам данных одного арендатора. В режиме хостинга каждый клиент может получать доступ к собственным наборам данных, и каждый запрос должен содержать действительный ключ. В текущем руководстве описаны потоковый HTTP на /mcp и устаревший SSE на /sse; также отмечается, что режим хостинга пока не поддерживает потоковый HTTP. Руководство предупреждает, что публичным развёртываниям MCP требуется дополнительная защита сети, и рекомендует при необходимости привязывать локальный сервер к 127.0.0.1.
Безопасный запуск Docker
В кратком руководстве репозитория Docker и Docker Compose указаны как поддерживаемый путь для самостоятельного размещения. В нём перечислены поддержка процессоров x86 и графических процессоров Nvidia, а также указано, что официальные образы собираются для x86. Пользователям ARM64 рекомендуется самостоятельно собрать образ. На той же странице перечислены требования к процессору, ОЗУ, дисковому пространству, Docker и Compose, однако эти значения следует считать базовым уровнем для описанного релиза, а не планом расчёта мощности.
Приведённые ниже команды соответствуют структуре репозитория и при этом не сохраняют секреты в истории оболочки:
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
cp .env .env.local
# Edit .env.local or the service configuration with strong local secrets.
docker compose -f docker-compose.yml up -d
docker logs -f docker-ragflow-cpu-1Закрепите тег образа в файле окружения на версии релиза, которую вы проверили. Текущие файлы репозитория ссылаются на infiniflow/ragflow:v0.26.4, тогда как к моменту развёртывания на странице релизов могут появиться более новые или ночные артефакты. Не смешивайте entrypoint.sh из одного релиза с образом из другого. После запуска дождитесь инициализации сервисов, откройте адрес сервера, настройте LLM и модель эмбеддингов по умолчанию, создайте небольшой тестовый набор данных и проверьте цитаты перед загрузкой конфиденциальных материалов.
В Docker README Elasticsearch или Infinity описываются как движки документов, а также упоминаются MySQL, MinIO и Redis. Helm chart добавляет параметр OpenSearch и позволяет использовать эти зависимости как внешние. Смена движка документов может удалить тома, поэтому перед экспериментами следуйте инструкциям проекта по миграции и создайте резервную копию. Исполнитель кода представляет собой отдельную зону риска и, согласно инструкции по быстрому запуску, требует использования gVisor.
Небольшой план проверки
Начните с небольшого набора данных, содержащего известные ответы, почти идентичные варианты, таблицы и один документ с преднамеренным ограничением доступа. Зафиксируйте:
релиз или коммит RAGFlow, дайджест изображений, механизм обработки документов, парсер, метод фрагментации, модель встраивания, переранжировщик и LLM;
Какие фрагменты были получены, какие цитаты были возвращены и сработали ли фильтры метаданных;
задержка, ошибки, повторные попытки, использование токенов и поведение потоковой передачи для пути API;
Вызовы инструментов агента, чтение памяти и решения о предоставлении разрешений;
какие данные хранились в MySQL, объектном хранилище, журналах, запросах к поставщикам моделей и трафике MCP.
Сравните прямой чат, тест только на получение информации и рабочий процесс оператора. Не превращайте несколько успешно обработанных вопросов в бенчмарк или заявление о безопасности. Повторяйте тест после обновлений, поскольку меняются парсеры, адаптеры моделей и компоненты агентов.
Ограничения, обслуживание и конфиденциальность
RAGFlow — быстро развивающийся проект с открытым исходным кодом. Файл SECURITY.md существует, но в его таблице поддерживаемых версий указана только <=0.7.0, а также содержится публичный отчёт об исполнении кода через restricted_loads. Это несоответствие — повод изучить актуальные исправления, примечания к релизам, рекомендации по зависимостям и предпочтительный канал для сообщений, указанный сопровождающим, прежде чем открывать развёртывание, доступное по сети. Успешная проверка работоспособности контейнера не заменяет аудит безопасности.
Считайте загруженные документы, промпты, извлечённые фрагменты, результаты работы инструментов и ответы моделей потенциально конфиденциальными. Определите, какие данные могут покидать вашу среду, какие поставщики могут сохранять запросы, как долго хранятся журналы и применяются ли обучение моделей или региональная обработка. Используйте отдельные учетные данные для разработки и эксплуатации, храните секреты в менеджере секретов, ограничивайте исходящий доступ, завершайте TLS на контролируемом периметре и сохраняйте слушатель MCP закрытым, если только его модель аутентификации и авторизации не была проверена.
Репозиторий — licensed в составе Apache-2.0. Это разрешает использование на условиях license, но не предоставляет гарантию, договор поддержки или гарантию в отношении сторонних зависимостей. Сохраняйте уведомления, проверяйте транзитивные licenses, фиксируйте версии образов или коммитов и поддерживайте возможность отката.
Когда OdiRouter может быть актуален
RAGFlow и OdiRouter — отдельные проекты. Текущая публичная документация OdiRouter описывает маршрут SDK, совместимый с OpenAI, с базовым URL https://api.odirouter.ai/v1, а его сайт предоставляет каталог моделей. Это может быть актуально, когда развертыванию RAGFlow необходимо тестировать или переключаться между конечными точками моделей без переписывания интеграции с OpenAI SDK. Это не означает, что OdiRouter является бэкендом RAGFlow, что доступна каждая модель или что эти две команды связаны между собой.
Если вы оцениваете этот вариант, начните с OdiRouter model catalog и developer introduction. Перед отправкой документов или промптов проверьте действующий маршрут, идентификатор модели, аутентификацию, ограничения скорости, условия конфиденциальности и тарификацию. Вызовы эмбеддингов и переранжирования следует выполнять через поставщика, чьи методы обработки данных соответствуют вашей политике.
Заключение
К RAGFlow лучше подходить как к полному стеку поиска и рабочих процессов: анализ документов, разбиение на фрагменты, индексация, поиск, роли моделей, чат, агенты, память и опциональный MCP. Начните с зафиксированного релиза и небольшого корпуса нечувствительных данных. Отдельно измерьте поведение поиска и агентов, оцените состояние безопасности и поток данных и лишь затем решайте, подходит ли развертывание для локальной машины, Kubernetes или более крупной контролируемой среды.