智能知识库系统

一个全面的知识管理系统,支持用户通过文档、网页内容和代码仓库构建自定义AI助手,具备RAG驱动的聊天、文档摘要和MCP服务器集成功能。

  • by NguyenVietMy
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 NguyenVietMy/RAG7

使用说明

RAG7

使用我们新的智能知识库彻底改变您的氛围编码工作流程,该知识库可以无限扩展。

一个全面的知识管理系统,使用户能够通过摄取文档、网络内容和代码库来构建自定义AI助手。具有RAG支持的聊天、文档摘要和用于AI编码助手的MCP服务器集成功能。


1.技术栈

后端

  • 框架:FastAPI(Python 3.12)
  • 向量数据库:ChromaDB
  • 关系数据库:PostgreSQL
  • AI/ML:
    • OpenAI API(GPT-4o,用于聊天的GPT-4o-mini)
    • OpenAI嵌入(文本嵌入3-small)
  • Web剪贴:Crawl4AI(与剧作家/Chromium合作)
  • MCP服务器:FastMCP(模型上下文协议)
  • 容器化:Docker和Docker Compose
  • 包管理:uv(超快Python包安装程序)

前端

  • 框架:Next.js 14(TypeScript)
  • UI组件:根UI+shadcn/UI
  • 样式:顺风CSS
  • 状态管理:反应挂钩
  • 文件上传:React Dropzone
  • PDF处理:pdfjs dist

基础设施

  • 数据库PostgreSQL 15(通过Supabase或独立)
  • 向量存储:ChromaDB(自托管或云)
  • 部署:带有Docker compose的Docker容器
  • 环境:Python 3.12-slim基础镜像

2.特点

核心知识库功能

文档管理

  • 文件上传:支持PDF、DOCX、TXT、Markdown文件
  • 文档分析:自动文本提取和分块
  • 矢量嵌入:用于语义搜索的OpenAI嵌入
  • 馆藏管理:创建、列出、查询和管理ChromaDB集合
  • 文件统计:跟踪每个收藏的文件和记录

RAG供电聊天

  • 语义搜索:使用自然语言查询集合
  • 上下文感知响应:根据查询检索相关块
  • 引用:每个回复都包括源引用
  • 会话存储器:具有上下文保留功能的多回合对话
  • 可配置RAG:可调节的相似性阈值、结果计数和上下文标记
  • 模型选择:支持GPT-4o和GPT-4o-mini

文件摘要

  • 分层汇总:高效的批处理(25块→ 摘要→ 最终总结)
  • 成本有效:~22-23 LLM需要500个块
  • PostgreSQL存储:存储摘要以供快速检索
  • 自动摘要:文档上传时可选择自动摘要
  • 摘要检索:查询存储的文档摘要

Web抓取功能

智能网络爬行

  • 三种爬行策略:
    1. 网站地图爬行:解析sitemap.xml并并行抓取所有URL
    2. 文本文件爬网:直接检索.txt/markdown文件(例如llms.txt)
    3. 递归内部链接:递归跟踪内部链接,直到max_depth
  • 自动检测:根据URL自动选择最佳策略
  • 智能分块:保留代码块,尊重段落边界
  • 批量嵌入:具有重试逻辑的高效嵌入生成
  • 内存管理:自适应调度程序可防止内存问题
  • 进度记录:用于监控刮擦进度的详细日志记录

GitHub存储库报废

代码库摄取

  • 存储库克隆:使用git克隆GitHub存储库
  • 文件处理:提取代码和文档文件
  • 语言支持:处理多种编程语言(Python、JavaScript、TypeScript、Java、Go、Rust等)
  • 智能过滤:包含/排除文件选择模式
  • 上下文保护:维护元数据中的文件路径和结构
  • 分块:具有语言感知拆分功能的智能代码分块
  • 进度跟踪:刮擦过程的逐步记录

MCP服务器集成

AI助手工具(用于光标、克劳德桌面等)

  • 收藏工具:
    • list_collections:列出所有ChromaDB系列
    • get_collection_info:获取集合元数据和统计数据
    • query_collection:使用RAG搜索收藏
  • 聊天工具:
    • rag_chat:与收藏中的RAG上下文聊天
    • generate_chat_title:自动生成对话标题
  • 配置工具:
    • get_rag_config:获取当前RAG设置
    • update_rag_config:更新RAG参数
  • 文档工具:
    • summarize_document:生成分层文档摘要
    • get_document_summary:检索存储的摘要
  • 报废工具:
    • scrape_web_documentation:抓取和摄取web文档
    • scrape_github_repo:抓取和摄取GitHub存储库

API终点

集合

  • GET /collections -列出所有收藏
  • POST /collections -创建新收藏
  • GET /collections/{name} -获取收藏信息
  • GET /collections/{name}/files -获取文件统计信息
  • POST /collections/{name}/upsert -上传和索引文档
  • POST /collections/{name}/upsert-and-summarize -上传并自动摘要
  • POST /collections/{name}/query -使用RAG查询集合
  • DELETE /collections/{name}/delete -按文件名删除记录

聊天

  • POST /chat -RAG驱动的聊天端点
  • POST /chat/generate-title -生成对话标题

配置

  • GET /rag/config -获取RAG配置
  • PUT /rag/config -更新RAG配置

健康

  • GET /health -基本健康检查
  • GET /health/chroma -ChromaDB连接检查
  • GET /health/chroma/env -ChromaDB配置诊断

3.用例

面向学生和学习者

  • 学习顾问:上传课堂讲稿、教科书和研究论文,以创建个性化的学习助手
  • 研究伙伴:从多个来源建立知识库,并在所有材料中提问
  • 考试准备:查询您上传的材料以测试理解并获得解释

面向开发者

  • 代码库文档:废弃GitHub存储库,创建可搜索的代码库文档
  • API文档:从网站获取API文档,以便在编码时立即访问
  • 项目知识库:将代码、文档和设计决策组合到一个可查询的系统中
  • IDE集成:编码时使用带Cursor/Claude Desktop的MCP服务器查询知识库

对于研究人员

  • 文献综述:上传多篇研究论文并查询其中的见解
  • 数据分析:从研究数据集和文档中创建知识库
  • 协作:与团队成员共享知识库以进行协作研究

面向内容创作者

  • 内容研究:废弃相关网站和文件,建立参考知识库
  • 事实核查:上传源材料并快速验证信息
  • 内容规划:查询知识库以查找内容创建的相关信息

对于企业

  • 内部文件:从公司维基、文档和培训材料中创建可搜索的知识库
  • 客户支持:从支持文档中构建知识库,以加快响应速度
  • 入职:新员工可以查询公司知识库以更快地学习
  • 合规:维护可搜索的政策、程序和法规档案

技术团队

  • 架构文档:废弃技术文档网站并与内部文档合并
  • 故障排除:查询知识库以获取常见问题的解决方案
  • 最佳实践维护编码标准和最佳实践的可搜索存储库
  • 集成指南:Ingest API文件来自多个来源,便于参考

快速开始

先决条件

  • Docker和Docker Compose
  • OpenAI API密钥

设置

  1. 克隆存储库
  2. 创建 .env 使用您的OpenAI API密钥文件
  3. 跑 docker-compose up 在 backend 目录
  4. 访问前端 http://localhost:3000
  5. 开始上传文档或抓取网络内容!

建筑亮点

  • 双接口:用于前端的FastAPI REST API+用于AI助手的MCP服务器
  • 可扩展的:基于Docker的部署,具有单独的服务
  • 高效:批处理、智能分块和经济高效的摘要
  • 可扩展:易于添加新的抓取源和集成
  • 生产准备就绪:全面的错误处理、日志记录和健康检查