cognita
模块化生产级 RAG 框架,在 LangChain 之上构建模块化、可扩展的检索增强生成管道
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
模块化生产级 RAG 框架,在 LangChain 之上构建模块化、可扩展的检索增强生成管道
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你在 Jupyter Notebook 里用 LangChain 快速搭了一个 RAG(检索增强生成)原型,效果还不错。团队看了都说好,产品拍板要上线——然后噩梦开始了。Notebook 里的代码散落在各处,向量数据库连接硬编码,数据源管理混乱,查询逻辑和业务逻辑搅在一起,根本没法扩展,也没法让非技术人员使用。
这正是 Cognita 要解决的问题。Cognita 是由企业级 MLOps 平台 TrueFoundry 推出的开源 RAG 框架,它的核心理念不是重新发明轮子,而是在 LangChain/LlamaIndex 之上构建一层生产级组织结构,让 RAG 应用的每个组件——数据加载、解析、分块、向量化、索引、查询——都变成独立可插拔的模块,并通过 API 和 Web UI 统一管理。
Cognita 由 TrueFoundry 团队开发和维护。TrueFoundry 是一家专注于 LLM 应用开发和部署的企业,其同名商业平台提供端到端的 MLOps 解决方案,包括模型部署、微调、RAG 管道管理等。Cognita 诞生于 TrueFoundry 自身的工程实践:当团队在帮助客户将 RAG 应用从实验阶段迁移到生产环境时,发现现有的 LangChain/LlamaIndex 抽象在模块化、可观测性和团队协作方面存在结构性不足,于是决定开源 Cognita,让社区也能用上这些经过生产验证的设计思路。
项目于 2024 年初正式开源,Apache-2.0 许可,目前在 GitHub 上有超过 4400 颗星,topics 覆盖 agent、LLM-ops、fine-tuning、generative-ai 等热门领域。值得注意的是,项目 README 在 2025 年标注了"不再积极维护"(no longer actively maintained),但核心代码库保持可用,且贡献者社区仍在持续提交 issue 和 PR。
Cognita 的架构遵循"关注点分离"原则,将 RAG 管道拆解为多个可独立配置、替换和扩展的组件:
后端(Python/FastAPI) — 核心引擎,基于 FastAPI + Uvicorn 构建高性能异步 API 服务。后端内部进一步划分为几个核心模块:modules/parsers 负责多格式文档解析(PDF、HTML、Markdown、音视频);modules/vector_db 支持 Qdrant 等向量数据库的接入;modules/query_controllers 管理查询逻辑;modules/model_gateway 是 2024 年 7 月新引入的模块,提供统一的模型配置管理入口,可以在一个文件中管理所有 Embedding、Reranking 和 LLM 模型配置;modules/metadata_store 基于 Prisma + PostgreSQL 管理元数据。
前端(Vue.js + TypeScript) — 提供无代码 Web UI,让非技术人员也能通过图形界面管理数据源、创建集合、触发索引、测试查询。技术栈包括 Vite 构建、Tailwind CSS 样式、TypeScript 类型安全,以及 Vite 的开发/生产双 Dockerfile 支持。
数据库层 — PostgreSQL 13 存储元数据(通过 Prisma ORM),Qdrant 向量数据库存储 Embedding 向量。
解析服务 — 使用 Unstructured API 镜像处理各种非结构化文档格式的解析。
Cognita 提供了开箱即用的端到端 RAG 体验:
多模态解析:支持 PDF、HTML、Markdown、音频(含 Faster-Whisper 集成)、视频(含多模态解析,集成 GPT-4V)等格式的自动解析和内容提取。2024 年 9 月新增了 AudioParser 和 VideoParser,进一步扩展了数据源类型。
增量索引:支持增量索引(incremental indexing),即对已索引数据源进行增量更新,而无需全量重建索引。这对于生产环境中持续有新文档加入的场景至关重要。
多向量数据库支持:通过 backend/vectordb.requirements.txt 插件化支持多种向量数据库,默认为 Qdrant。
Model Gateway:2024 年 7 月引入的单文件模型配置管理,可以集中管理所有模型的 API 端点、密钥、超参数,大幅简化多模型切换。
无代码 UI:2024 年 6 月推出的重磅功能,基于 Prisma + PostgreSQL 的 Metadatastore,使 Cognita 完全可以通过 Web UI 操作,无需手写 local.metadata.yaml 配置文件,降低了使用门槛。
Cognita 在部署方面表现出色,是本批分析项目中部署支持度最高的项目之一:
Docker Compose 一键启动:官方提供的 docker-compose.yaml 包含了 6 个核心服务——PostgreSQL、Qdrant 向量数据库、Unstructured API 解析服务,以及可选的 Ollama(本地 LLM)、Infinity(Embedding/Reranking 服务)——通过环境变量文件 compose.env 配置,一行命令即可启动完整系统。
前后端独立容器化:Backend 有独立的多阶段 Dockerfile,使用 Python 3.11 虚拟环境,分离了 requirements.txt 和可选的 vectordb.requirements.txt,支持按需安装向量数据库驱动。Frontend 有 Vite + Vue 应用的 Dockerfile 及开发版本 Dockerfile。
Healthcheck 完备:所有服务均配置了健康检查(healthcheck),确保依赖关系正确启动后再接受流量。
适合你吗?
如果你是在 Notebook 里做 RAG 实验的 AI 爱好者,Cognita 提供了比原生 LangChain 更结构化的方式来实现你的想法,同时保留了通过代码扩展的能力。Docker Compose 一键部署让你无需深入了解每个组件的运行机制就能跑起来。
如果你是需要将 RAG 应用投入生产的开发者或团队,Cognita 的模块化设计让每个组件可以独立测试和替换,PostgreSQL 元数据管理支持团队协作,而 Web UI 则让产品经理和领域专家也能参与数据管理和效果评估。TrueFoundry 商业平台还提供了云托管版本,适合不想自建基础设施的团队。
不再积极维护:这是最需要关注的风险点。项目 README 明确标注"no longer actively maintained",这意味着未来不会有新功能、BUG 修复和依赖更新。如果 LangChain 或其他核心依赖发生 Breaking Change,Cognita 可能面临兼容性问题。选择前需评估对活跃维护的依赖程度。
性能考量:使用 Ollama 本地运行 LLM 时需要足够的 CPU/内存资源;Infinity 服务(Embedding/Reranking)作为独立服务运行增加了系统复杂度,需要额外的运维关注。
学习曲线:虽然 Web UI 降低了基本使用门槛,但深度定制(如新增解析器、自定义向量数据库)仍需要阅读源码和理解模块间的接口约定。
Cognita 代表了 RAG 框架演进的一个重要方向——从"实验工具"到"生产系统"的架构升级。在它之前,LangChain/LlamaIndex 解决了"能不能做"的问题;Cognita 尝试回答的问题是"能不能稳定地做、可协作地做、可观测地做"。其模块化设计、Model Gateway 理念、以及对增量索引和增量解析的支持,都体现了对生产环境的深入理解。
尽管维护状态不再活跃,Cognita 的架构设计理念对理解 RAG 系统的工程化需求仍具有重要参考价值。其开源代码也为需要自建 RAG 基础设施的团队提供了可直接借鉴的工程实践。