Cognita - 模块化RAG框架简介
Cognita是一个开源的RAG(检索增强生成)框架,旨在帮助开发者构建模块化、可扩展的生产级应用。它基于Langchain和LlamaIndex,提供了一套组织RAG代码库的方法,使得从实验到生产的过渡更加顺畅。
主要特点
- 模块化设计:每个RAG组件都是模块化、API驱动且易于扩展的
- 本地开发支持:可以在本地环境中轻松运行和测试
- 生产就绪:提供生产环境部署所需的各种组件
- 无代码UI:内置前端界面,方便非技术用户使用
- 增量索引:支持文档的增量索引,减少计算负担
快速开始
- 使用Docker Compose本地运行(推荐):
docker-compose --env-file compose.env up
-
配置模型提供者: 编辑
models_config.yaml
文件,选择合适的嵌入和LLM模型。 -
访问服务:
- Qdrant向量数据库: http://localhost:6333
- 后端API: http://localhost:8000
- 前端UI: http://localhost:5001
核心组件
- 数据源:存储待索引文档的位置(如S3、数据库等)
- 元数据存储:保存集合相关的元数据信息
- LLM网关:统一管理各种嵌入和LLM模型的API
- 向量数据库:存储文档的嵌入向量和元数据
- 索引任务:负责文档的扫描、解析、嵌入等流程
- API服务器:处理用户查询,生成答案
自定义开发
Cognita提供了灵活的自定义能力:
- 自定义数据加载器
- 自定义嵌入模型
- 自定义文档解析器
- 添加自定义向量数据库
- 编写查询控制器
详细的自定义指南可以参考官方文档。
学习资源
Cognita作为一个强大而灵活的RAG框架,正在不断发展。未来还将支持更多向量数据库、RAG评估、可视化等功能。欢迎开发者们积极参与,共同推动RAG技术的进步!