logo
0
0
WeChat Login

智能知识库助手 (Smart Knowledge Assistant)

基于 LangChain、LangGraph、Milvus 的智能知识库系统,集成 RAG、Memory、MCP、Output Parser、Prompt Template 等先进技术。

Python License LangChain LangGraph Code style: black

✨ 特性

  • 🔍 智能检索: 基于 Milvus 向量数据库的高效相似度搜索
  • 🧠 记忆管理: 4种记忆类型,上下文感知对话
  • 🔄 工作流编排: 使用 LangGraph 实现5节点处理流程
  • 📡 MCP 协议: 标准化的知识库访问接口
  • 📝 输出解析: 结构化输出,自动修复和验证
  • 🎨 提示词模板: 丰富的模板库,支持自定义
  • 🧪 完整测试: 51+ 单元测试,代码覆盖充分
  • 📚 详细文档: 12个文档文件,6000+字说明

🚀 快速开始

方式 1: Docker Compose(推荐,已验证)

# 1. 克隆项目 git clone https://github.com/yourusername/smart-knowledge-assistant.git cd smart-knowledge-assistant # 2. 配置环境变量 cp .env.example .env # 编辑 .env 文件,填入 DeepSeek API Key: # OPENAI_API_KEY=sk-your-api-key-here # 3. 启动所有服务 docker compose up -d etcd minio sleep 10 docker compose up -d milvus sleep 20 docker compose run -d --name smart-assistant smart-assistant tail -f /dev/null # 4. 安装依赖(首次需要 5-10 分钟) docker exec smart-assistant pip install --no-cache-dir pymilvus langchain langgraph sentence-transformers openai pydantic python-dotenv pydantic-settings langchain-openai langchain-community # 5. 运行演示 docker exec smart-assistant python demo_run.py

方式 2: 本地 Python 环境

# 1. 克隆项目并创建虚拟环境 git clone https://github.com/yourusername/smart-knowledge-assistant.git cd smart-knowledge-assistant python3 -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows # 2. 安装依赖 pip install -r requirements.txt # 3. 启动 Milvus(使用 Docker) docker run -d \ --name milvus-standalone \ -p 19530:19530 \ -v /tmp/milvus:/var/lib/milvus \ milvusdb/milvus:v2.3.3 # 4. 配置环境变量 cp .env.example .env # 编辑 .env 文件 # 5. 运行应用 python demo_run.py # 或交互模式: python main.py

环境要求

组件最低版本推荐版本
Python3.9+3.10+
Docker20.10+24.0+
Docker Compose2.0+2.20+
内存4GB8GB+
磁盘10GB20GB+

🌐 Web UI 界面

快速启动 Web UI

Linux/Mac:

./start_web.sh

Windows:

start_web.bat

或直接运行:

pip install streamlit cd src/web streamlit run app.py

访问地址: http://localhost:8502

Web UI 功能

  • 💬 智能对话: 实时对话、置信度显示、来源追踪
  • 📚 文档管理: 拖拽上传、批量处理、文档列表
  • 📜 对话历史: 历史查看、导出为 JSON/Markdown
  • ⚙️ 高级设置: Temperature、Top K、记忆类型配置
  • 🎨 美观界面: 现代化设计、响应式布局

详细使用说明请查看 Web UI 使用指南

📖 使用示例

基础查询

from src.components.rag_engine import RAGEngine from src.utils.document_loader import DocumentLoader # 初始化 loader = DocumentLoader() rag = RAGEngine() # 加载文档 docs = loader.load_directory("./data") rag.add_documents(docs) # 查询 result = rag.query("Python 有什么特点?") print(result.answer)

使用工作流

from src.graph.workflow import KnowledgeAssistantGraph graph = KnowledgeAssistantGraph() result = graph.run("什么是机器学习?") print(result["answer"])

MCP 服务器

from src.components.mcp_server import MCPServer from src.models import MCPRequest mcp = MCPServer() request = MCPRequest( method="query", params={"question": "LangChain 是什么?"}, request_id="001" ) response = mcp.handle_request(request) print(response.result)

📚 文档

🧪 测试

# 运行所有测试 pytest src/tests/ -v # 运行特定测试 pytest src/tests/test_rag_engine.py -v # 生成覆盖率报告 pytest src/tests/ --cov=src --cov-report=html # 查看覆盖率报告 open htmlcov/index.html # Mac xdg-open htmlcov/index.html # Linux start htmlcov/index.html # Windows

📊 项目统计

  • Python 文件: 27 个
  • 代码行数: 3,332 行
  • 测试用例: 51+ 个
  • 文档文件: 12 个 (6000+ 字)
  • 示例代码: 3 个

🏗️ 项目结构

smart-knowledge-assistant/ ├── config/ # 配置文件 ├── src/ │ ├── components/ # 核心组件 │ │ ├── rag_engine.py │ │ ├── memory_manager.py │ │ └── mcp_server.py │ ├── graph/ # LangGraph 工作流 │ ├── utils/ # 工具类 │ ├── models/ # 数据模型 │ └── tests/ # 单元测试 ├── examples/ # 使用示例 ├── docs/ # 文档 └── main.py # 主程序

🔧 技术栈

技术版本用途
LangChain0.3.7核心框架
LangGraph0.2.45工作流编排
MilvusLatest向量数据库
sentence-transformersLatest文本嵌入
PydanticLatest数据验证
pytestLatest单元测试

🎯 核心功能

1️⃣ RAG 引擎

  • 文档加载和智能分块
  • 向量化嵌入生成
  • 语义相似度搜索
  • 上下文增强的答案生成
  • 置信度评估

2️⃣ 记忆管理

  • ConversationBufferMemory (全量记忆)
  • ConversationBufferWindowMemory (窗口记忆)
  • ConversationTokenBufferMemory (Token限制)
  • ConversationSummaryMemory (摘要记忆)
  • 对话历史持久化

3️⃣ LangGraph 工作流

  • 分析用户输入
  • 检索相关上下文
  • 生成答案
  • 评估答案质量
  • 更新对话记忆
  • 条件路由和流式执行

4️⃣ MCP 服务器

  • query - 查询知识库
  • search - 搜索文档
  • add_documents - 添加文档
  • delete_document - 删除文档
  • get_stats - 获取统计
  • clear - 清空知识库

🤝 贡献

我们欢迎所有形式的贡献!请查看 贡献指南 了解详情。

贡献方式

  • 🐛 报告 Bug
  • 💡 提出新功能建议
  • 📝 改进文档
  • 🔧 提交代码修复
  • 🧪 添加测试用例

📄 许可证

本项目采用 MIT 许可证 开源。

🔮 路线图

✅ 已完成功能 (v1.0)

核心功能

  • ✅ 基于 LangChain 的 RAG 引擎实现
  • ✅ Milvus 向量数据库集成
  • ✅ 4 种记忆管理类型(Buffer/Window/Token/Summary)
  • ✅ LangGraph 5节点工作流编排
  • ✅ MCP 服务器(6个核心接口)
  • ✅ 结构化输出解析器(自动修复和验证)
  • ✅ 可配置提示词模板系统
  • ✅ 文档加载器(支持多种格式)

工程化

  • ✅ 51+ 单元测试覆盖
  • ✅ 完整的中文文档体系(12个文档,6000+字)
  • ✅ Docker Compose 部署方案
  • ✅ 环境变量配置管理
  • ✅ 类型注解和代码规范

示例和演示

  • ✅ 3个完整示例程序
  • ✅ 交互式命令行界面
  • ✅ 演示对话脚本

🚀 短期计划 (v1.1 - v1.2)

v1.1 - 功能增强

  • 多语言支持

    • 中英文混合查询优化
    • 多语言文档嵌入模型
    • 语言检测和自动切换
  • Web UI 界面 (已完成)

    • ✅ Streamlit 基础界面
    • ✅ 实时对话展示
    • ✅ 文档上传和管理
    • ✅ 查询历史记录
    • ✅ 置信度显示
    • ✅ 来源追踪
    • ✅ 高级参数配置
    • ✅ 对话历史导出
  • 批量文档处理

    • 文档队列处理系统
    • 进度监控和日志
    • 增量更新机制

v1.2 - 性能优化

  • 检索优化

    • 混合检索(向量+关键词)
    • 查询重写和扩展
    • 结果排序算法优化
    • 缓存机制(查询缓存/嵌入缓存)
  • 数据库扩展

    • Chroma 向量数据库支持
    • Weaviate 向量数据库支持
    • 多数据库同时使用
    • 数据迁移工具

🎯 中期计划 (v2.0 - v2.1)

v2.0 - 企业级特性

  • RESTful API

    • FastAPI 服务器实现
    • API 文档(Swagger/OpenAPI)
    • 认证和授权(JWT)
    • API 限流和监控
    • 请求日志和审计
  • 知识库管理

    • 知识库导出(JSON/CSV/Markdown)
    • 知识库导入和恢复
    • 知识库版本控制
    • 文档标签和分类
    • 文档去重和合并
  • 高级记忆功能

    • 长期记忆存储(向量数据库)
    • 语义记忆和情景记忆
    • 记忆重要性评分
    • 记忆自动清理和归档

v2.1 - 智能增强

  • 多模态支持

    • 图像文档 OCR 识别
    • 音频转文字(ASR)
    • 视频内容提取
    • 多模态嵌入模型
  • 高级工作流

    • 子图和循环支持
    • 并行任务执行
    • 工作流可视化
    • 自定义节点扩展
  • Agent 集成

    • 工具调用能力(函数调用)
    • 多 Agent 协作
    • 自我反思和修正
    • 计划和执行分解

🌟 长期愿景 (v3.0+)

v3.0 - 生态扩展

  • 插件系统

    • 插件开发框架
    • 第三方插件市场
    • 插件沙箱隔离
    • 插件热加载
  • 多模型支持

    • OpenAI GPT 系列
    • Anthropic Claude 系列
    • 本地模型(LLaMA、Qwen)
    • 模型路由和负载均衡
  • 分布式部署

    • Kubernetes 部署支持
    • 微服务架构拆分
    • 服务网格集成
    • 横向扩展能力

v3.1 - 企业级功能

  • 监控和运维

    • Prometheus 指标采集
    • Grafana 可视化看板
    • 告警和通知系统
    • 健康检查和自动恢复
  • 安全和合规

    • 数据加密(传输/存储)
    • 访问控制(RBAC)
    • 审计日志
    • GDPR/合规支持
  • 数据治理

    • 数据质量评估
    • 数据血缘追踪
    • 敏感数据识别
    • 数据脱敏

💡 创新功能 (探索中)

  • 知识图谱集成 - 结合图数据库增强推理
  • 实时学习 - 在线学习和知识更新
  • 个性化推荐 - 基于用户行为的推荐系统
  • 联邦学习 - 隐私保护的分布式学习
  • 对话式文档 - 与文档进行深度对话
  • 跨库检索 - 多知识库联合检索
  • 智能摘要 - 文档自动摘要和关键点提取
  • 问答对生成 - 自动生成 QA 数据集

📅 发布时间表

版本计划时间主要特性
v1.0✅ 已完成核心 RAG、记忆、LangGraph、MCP
v1.1Q2 2026多语言、Web UI、批量处理
v1.2Q3 2026检索优化、多数据库支持
v2.0Q4 2026RESTful API、知识库管理、高级记忆
v2.1Q1 2027多模态、高级工作流、Agent 集成
v3.0Q2 2027插件系统、多模型、分布式
v3.1Q3 2027监控运维、安全合规、数据治理

🤝 参与路线图

欢迎社区贡献!如果您有兴趣参与特定功能的开发:

  1. 查看现有 Issue
  2. 在 Issue 中评论表明意向
  3. 阅读 贡献指南
  4. 提交 Pull Request

如果您有新的功能建议或想法,欢迎 创建新的 Feature Request

🙏 致谢

感谢以下开源项目:

About

No description, topics, or website provided.
860.00 KiB
0 forks0 stars1 branches1 TagREADMEMIT license
Language
Python79.7%
HTML11.8%
Shell7.9%
Others0.6%