# DAML-RAG 框架
**领域自适应元学习RAG** - 面向垂直领域AI应用的生产就绪框架
[](https://python.org)
[](LICENSE)
[](CHANGELOG.md)
[](BUILD_AND_PUBLISH.md)
[](scripts/build.sh)
**[English](README_EN.md)** | 简体中文
> 📦 **打包状态**: 项目已完成打包配置,可以发布到 PyPI!详见 [BUILD_AND_PUBLISH.md](BUILD_AND_PUBLISH.md)
> 🎓 **结合GraphRAG、上下文学习、多智能体协同,打造成本高效的垂直领域AI系统**
> 🚀 **生产就绪框架,实现Token优化和成本控制的工程最佳实践**
---
## 📖 项目简介
DAML-RAG是一个生产就绪框架,整合了经过验证的技术——GraphRAG混合检索、上下文学习、教师-学生协同和基于MCP的多智能体编排——用于构建垂直领域AI应用,实现Token节省和成本优化。
**不是新理论,而是面向实践者的工程最佳实践框架。**
---
## 🔬 学术定位
### DAML-RAG 是什么 ✅
- **工程框架**:系统整合RAG [1]、GraphRAG [2]、ICL [3]、知识图谱 [4]
- **生产系统**:在玉珍健身领域经过验证
- **成本优化**:通过教师-学生协同降低成本
- **垂直领域聚焦**:专为知识密集型领域设计
### DAML-RAG 不是什么 ❌
- ❌ **不是新的ML/AI理论**:没有创新算法或学习范式
- ❌ **不声称通用优越性**:为特定用例设计
- ❌ **不是自动化领域适配**:需要领域专家构建知识图谱
- ❌ **不是推理时"元学习"**:正确术语是"上下文学习"(v2.0修正)
---
## 🎯 核心特性
- 🎯 **GraphRAG混合检索**:向量 + 图谱 + 规则三层架构
- 🧠 **上下文学习** ⭐(v2.0修正):Few-Shot + 案例推理维持质量
- ⚡ **教师-学生模型**:DeepSeek(教师)+ Ollama(学生)降低成本
- 🔌 **MCP编排**:基于Model Context Protocol的标准化多智能体协同
- 🛡️ **质量保障**:自动质量监控和升级机制
- 📊 **生产就绪**:完整的监控、缓存、容错系统
---
## 🏗️ 核心架构:三层检索系统
DAML-RAG的核心创新在于三层混合检索架构,完美结合向量检索、知识图谱和业务规则:
```
┌─────────────────────────────────────────────────────────────┐
│ 用户查询输入 │
│ "推荐不伤膝盖的腿部增肌动作" │
└────────────────────┬────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第一层:向量语义检索 (Vector Retrieval) │
│ │
│ 📊 支持多种向量数据库: │
│ • Qdrant (推荐) - 高性能向量数据库 │
│ • FAISS - Facebook AI相似度搜索 │
│ • Milvus - 开源向量数据库 │
│ • Pinecone/Weaviate - 云端向量服务 │
│ │
│ 🔍 语义相似度匹配: │
│ • 余弦相似度(Cosine Similarity) │
│ • HNSW索引优化(< 50ms响应时间) │
│ • 多语言embedding模型支持 │
│ │
│ 🎯 核心功能: │
│ • 理解用户意图("增肌" = "肥大训练") │
│ • 模糊匹配(拼写错误、同义词识别) │
│ • 快速召回候选集(Top 20-50) │
│ • 多模态检索支持(文本、图像、音频) │
└────────────────────┬────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第二层:图关系推理 (Knowledge Graph) │
│ │
│ 🕸️ 支持多种图数据库: │
│ • Neo4j (推荐) - 专业图数据库 │
│ • ArangoDB - 多模型数据库 │
│ • JanusGraph - 分布式图数据库 │
│ • Amazon Neptune - 云端图服务 │
│ │
│ 🔗 结构化关系推理: │
│ • Cypher查询语言(Neo4j) │
│ • Gremlin图遍历语言 │
│ • SPARQL语义查询 │
│ • 多跳推理能力(< 100ms) │
│ │
│ 🎯 核心功能: │
│ • 精确筛选(基于2,447+实体节点) │
│ • 约束验证("不压迫膝盖") │
│ • 可解释性(清晰的推理路径) │
│ • 多跳推理("动作→肌群→目标→约束") │
└────────────────────┬────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 第三层:业务规则验证 (Rule Filtering) │
│ │
│ 📋 领域专业规则引擎: │
│ • 安全规则(年龄、损伤、康复阶段) │
│ • 器械规则(可用设备、场地限制) │
│ • 容量规则(MRV、超量恢复、训练频率) │
│ • 个性化规则(用户偏好、目标水平) │
│ │
│ 🛡️ 智能验证系统: │
│ • 动态规则加载(< 20ms) │
│ • 规则优先级管理 │
│ • 规则冲突检测和解决 │
│ • 规则效果评估和优化 │
└────────────────────┬────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 📊 最终结果:5个精准推荐 + 推荐理由 + 置信度评分 │
│ 💡 Token优化:理论设计目标(未验证) │
│ ⚡ 总响应时间:玉珍实测 ~20秒(笔记本,未优化) │
│ 🎯 用户满意度:设计目标(未验证) │
└─────────────────────────────────────────────────────────────┘
```
### 🔧 技术栈选型
DAML-RAG支持灵活的技术栈选型,开发者可以根据偏好和需求选择:
```yaml
# 向量数据库选择
向量数据库:
Qdrant: ⭐⭐⭐⭐⭐ 推荐(高性能、易部署)
FAISS: ⭐⭐⭐⭐ (本地部署、速度快)
Milvus: ⭐⭐⭐⭐ (开源、分布式)
Pinecone: ⭐⭐⭐ (云端、托管服务)
Weaviate: ⭐⭐⭐ (语义搜索、GraphQL)
# 图数据库选择
图数据库:
Neo4j: ⭐⭐⭐⭐⭐ 推荐(专业图数据库)
ArangoDB: ⭐⭐⭐⭐ (多模型、灵活)
JanusGraph: ⭐⭐⭐ (分布式、大数据)
Neptune: ⭐⭐⭐ (AWS集成)
# AI模型选择
大模型:
DeepSeek: ⭐⭐⭐⭐⭐ 教师模型(高质量、中文优化)
GPT-4: ⭐⭐⭐⭐ (通用能力强)
Claude: ⭐⭐⭐⭐ (安全性高)
Qwen: ⭐⭐⭐⭐ (开源、中文)
小模型:
Ollama: ⭐⭐⭐⭐⭐ 学生模型(本地部署、成本优化)
Llama: ⭐⭐⭐⭐ (开源、性能好)
Phi: ⭐⭐⭐ (微软、小而精)
Gemma: ⭐⭐⭐ (Google、轻量级)
```
---
## 📦 模块结构
```
daml-rag-framework/
├── daml-rag-core/ # 🔧 核心框架
│ ├── interfaces/ # 抽象接口定义
│ ├── models/ # 数据模型
│ ├── config/ # 配置管理
│ └── utils/ # 工具函数
├── daml-rag-retrieval/ # 🔍 三层检索引擎
│ ├── vector/ # 向量检索层
│ ├── knowledge/ # 知识图谱层
│ ├── rules/ # 规则过滤层
│ └── cache/ # 缓存管理
├── daml-rag-orchestration/ # 🎯 任务编排引擎
├── daml-rag-learning/ # 🧠 推理时学习
├── daml-rag-adapters/ # 🔌 领域适配器
├── daml-rag-cli/ # 🚀 命令行工具
└── examples/ # 📚 示例项目
```
---
## 🚀 快速开始
### 安装
#### 方式1:从 PyPI 安装(推荐)
**⚠️ 注意:项目尚未发布到 PyPI,暂时请使用方式2或3安装**
```bash
# 正式发布后可用
pip install daml-rag-framework
```
#### 方式2:从源码安装(开发版)
```bash
# 克隆仓库
git clone https://github.com/vivy1024/daml-rag-framework.git
cd daml-rag-framework
# 安装依赖并安装框架(开发模式)
pip install -e .
# 或者构建并安装
python -m pip install --upgrade build
python -m build
pip install dist/*.whl
```
#### 方式3:从 GitHub 直接安装
```bash
pip install git+https://github.com/vivy1024/daml-rag-framework.git
```
### 验证安装
```bash
# 验证导入
python -c "from daml_rag import DAMLRAGFramework; print('✅ 安装成功')"
# 测试 CLI
daml-rag --help
```
### 创建新项目
```bash
# 创建健身领域AI应用
daml-rag init my-fitness-app --domain fitness
# 创建医疗领域AI应用
daml-rag init my-medical-app --domain healthcare
# 创建自定义领域AI应用
daml-rag init my-custom-app --template custom
```
### 基本使用
```python
import asyncio
from daml_rag import DAMLRAGFramework, DAMLRAGConfig
from daml_rag.adapters import FitnessDomainAdapter
async def main():
# 加载配置
config = DAMLRAGConfig.from_file("config.yaml")
# 创建框架实例
framework = DAMLRAGFramework(config)
# 初始化领域适配器
adapter = FitnessDomainAdapter(config.domain_config)
await adapter.initialize()
# 初始化框架
await framework.initialize()
# 处理用户查询
result = await framework.process_query("我想制定一个增肌计划")
print(result.response)
if __name__ == "__main__":
asyncio.run(main())
```
### 配置文件示例
```yaml
# config.yaml
domain: fitness
debug: false
retrieval:
vector_model: "BAAI/bge-base-zh-v1.5"
top_k: 5
similarity_threshold: 0.6
cache_ttl: 300
enable_kg: true
enable_rules: true
orchestration:
max_parallel_tasks: 10
timeout_seconds: 30
retry_attempts: 3
enable_caching: true
learning:
teacher_model: "deepseek"
student_model: "ollama-qwen2.5"
experience_threshold: 3.5
feedback_weight: 0.8
adaptive_threshold: 0.7
domain_config:
knowledge_graph_path: "./data/knowledge_graph.db"
mcp_servers:
- name: "user-profile"
command: "python"
args: ["user-profile-stdio/server.py"]
- name: "professional-coach"
command: "python"
args: ["professional-coach-stdio/server.py"]
```
---
## 📊 当前状态
**⚠️ 项目状态:生产准备(前端完善中)**
### 实际测量数据
| 指标 | 当前值 | 说明 |
|------|-------|------|
| **Token/查询(简单)** | 500-800 | DeepSeek + 用户档案MCP |
| **响应时间** | **~20秒** | ⚠️ 未优化,需要缓存 |
| **项目阶段** | 生产准备 | 准备部署中 |
| **MCP工具实现** | 14/14 ✅ | 所有工具已完成 |
| **Docker状态** | 使用中 | 本地部署就绪 |
| **前端状态** | 进行中 | 部署前完善 |
### 当前问题
**⚠️ 已知性能问题:**
- **响应缓慢**:简单查询约20秒
- 原因:未优化的图查询,无缓存机制
- 原因:多个串行MCP调用,无并行化
- 状态:第一阶段计划优化
- **前端完善**:进行中
- 工具后端:✅ 完成(14/14)
- 前端UI:🚧 完善中
- Docker部署:✅ 本地就绪
- **生产部署**:准备中
- 本地Docker:✅ 使用中
- 生产部署:🚧 前端完成后
- 性能优化:⏳ 已计划
### 已知限制
**⚠️ 重要:使用前请阅读 [LIMITATIONS.md](LIMITATIONS.md)!**
关键限制:
- **硬件需求**:最低16GB内存,推荐32GB+
- **响应时间**:~20秒(玉珍健身笔记本案例,未优化)
- **规模限制**:单机超过30K节点性能下降
- **部署**:生产环境建议分布式部署
详细分析见 [LIMITATIONS.md](LIMITATIONS.md)。
### 设计目标(未验证)
以下是**理论设计目标**,非验证指标:
- 🎯 通过GraphRAG混合检索实现Token效率
- 🎯 通过教师-学生协同优化成本
- 🎯 通过结构化知识提升质量
- 🎯 通过向量+图谱+规则实现快速检索
**状态**:实施进行中,基准测试待进行。
---
## 📚 文档
### 必读文档
- **[LIMITATIONS.md](LIMITATIONS.md)** ⚠️ - 限制和约束(必读!)
- **[PUBLISHING.md](PUBLISHING.md)** 📦 - PyPI 发布指南(开发者必读)
### 理论基础
- [理论演进历史](docs/theory/00-理论演进历史.md)
- [GraphRAG混合检索理论](docs/theory/01-GraphRAG混合检索理论.md)
- [推理时上下文学习理论](docs/theory/02-推理时上下文学习理论.md)
- [框架总览](docs/theory/框架总览.md)
### 案例研究
- [玉珍健身案例研究](examples/YUZHEN_FITNESS_CASE_STUDY.md)(即将推出)- 参考实现
### 指南
- [快速开始](docs/tutorials/quickstart.md)(即将推出)
- [架构设计](docs/architecture/)(即将推出)
- [API文档](docs/api/)(即将推出)
- [部署指南](docs/tutorials/deployment.md)(即将推出)
### 开发者指南
- [打包和发布流程](PUBLISHING.md) - 如何发布到 PyPI
- [贡献指南](CONTRIBUTING.md)(即将推出)
- [开发环境设置](docs/development/)(即将推出)
### 参考文献
- [完整参考文献](REFERENCES.md)
- [学术引用](CITATION.cff)
---
## 📖 学术引用
如果您在研究或项目中使用DAML-RAG,请引用:
```bibtex
@software{daml_rag_2024,
title={DAML-RAG: Domain-Adaptive Meta-Learning RAG Framework},
author={薛小川 (Xue Xiaochuan)},
year={2025},
version={1.0.0},
url={https://github.com/vivy1024/daml-rag-framework}
}
```
详见 [CITATION.cff](CITATION.cff) 获取完整引用元数据。
**版权所有 © 2025 薛小川。保留所有权利。**
---
## 🤝 贡献
欢迎贡献!请查看:
- [CONTRIBUTING.md](CONTRIBUTING.md)(即将推出)
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)(即将推出)
---
## 📄 许可证
**版权所有 © 2025 薛小川。保留所有权利。**
根据Apache License 2.0许可证授权。您可以在以下网址获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按"原样"分发,不附带任何明示或暗示的担保或条件。详见 [LICENSE](LICENSE) 文件。
---
## 🙏 致谢
基于玉珍健身 v2.0项目的理论和实践成果构建。
**站在巨人的肩膀上:**
- RAG:Lewis et al. (2020)
- GraphRAG:Microsoft Research (2025)
- 上下文学习:Brown et al. (2020)
- 知识图谱:Hogan et al. (2021)
- MCP:Anthropic (2025)
---
**让AI更懂专业领域** 🚀
Raw data
{
"_id": null,
"home_page": null,
"name": "daml-rag-framework",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "\"\u859b\u5c0f\u5ddd (Xue Xiaochuan)\" <1765563156@qq.com>",
"keywords": "rag, retrieval-augmented-generation, graphrag, knowledge-graph, artificial-intelligence, machine-learning, in-context-learning, multi-agent-systems, vertical-domain, production-ready, vector-database, neo4j, qdrant, mcp, model-context-protocol",
"author": null,
"author_email": "\"\u859b\u5c0f\u5ddd (Xue Xiaochuan)\" <1765563156@qq.com>",
"download_url": "https://files.pythonhosted.org/packages/d7/6b/a59859a90e2f28e3633cdac58b6dadd1e3041b4aa224239b083aa0e7c974/daml_rag_framework-1.0.0.tar.gz",
"platform": null,
"description": "# DAML-RAG \u6846\u67b6\r\n\r\n**\u9886\u57df\u81ea\u9002\u5e94\u5143\u5b66\u4e60RAG** - \u9762\u5411\u5782\u76f4\u9886\u57dfAI\u5e94\u7528\u7684\u751f\u4ea7\u5c31\u7eea\u6846\u67b6\r\n\r\n[](https://python.org)\r\n[](LICENSE)\r\n[](CHANGELOG.md)\r\n[](BUILD_AND_PUBLISH.md)\r\n[](scripts/build.sh)\r\n\r\n**[English](README_EN.md)** | \u7b80\u4f53\u4e2d\u6587\r\n\r\n> \ud83d\udce6 **\u6253\u5305\u72b6\u6001**: \u9879\u76ee\u5df2\u5b8c\u6210\u6253\u5305\u914d\u7f6e\uff0c\u53ef\u4ee5\u53d1\u5e03\u5230 PyPI\uff01\u8be6\u89c1 [BUILD_AND_PUBLISH.md](BUILD_AND_PUBLISH.md)\r\n\r\n> \ud83c\udf93 **\u7ed3\u5408GraphRAG\u3001\u4e0a\u4e0b\u6587\u5b66\u4e60\u3001\u591a\u667a\u80fd\u4f53\u534f\u540c\uff0c\u6253\u9020\u6210\u672c\u9ad8\u6548\u7684\u5782\u76f4\u9886\u57dfAI\u7cfb\u7edf** \r\n> \ud83d\ude80 **\u751f\u4ea7\u5c31\u7eea\u6846\u67b6\uff0c\u5b9e\u73b0Token\u4f18\u5316\u548c\u6210\u672c\u63a7\u5236\u7684\u5de5\u7a0b\u6700\u4f73\u5b9e\u8df5**\r\n\r\n---\r\n\r\n## \ud83d\udcd6 \u9879\u76ee\u7b80\u4ecb\r\n\r\nDAML-RAG\u662f\u4e00\u4e2a\u751f\u4ea7\u5c31\u7eea\u6846\u67b6\uff0c\u6574\u5408\u4e86\u7ecf\u8fc7\u9a8c\u8bc1\u7684\u6280\u672f\u2014\u2014GraphRAG\u6df7\u5408\u68c0\u7d22\u3001\u4e0a\u4e0b\u6587\u5b66\u4e60\u3001\u6559\u5e08-\u5b66\u751f\u534f\u540c\u548c\u57fa\u4e8eMCP\u7684\u591a\u667a\u80fd\u4f53\u7f16\u6392\u2014\u2014\u7528\u4e8e\u6784\u5efa\u5782\u76f4\u9886\u57dfAI\u5e94\u7528\uff0c\u5b9e\u73b0Token\u8282\u7701\u548c\u6210\u672c\u4f18\u5316\u3002\r\n\r\n**\u4e0d\u662f\u65b0\u7406\u8bba\uff0c\u800c\u662f\u9762\u5411\u5b9e\u8df5\u8005\u7684\u5de5\u7a0b\u6700\u4f73\u5b9e\u8df5\u6846\u67b6\u3002**\r\n\r\n---\r\n\r\n## \ud83d\udd2c \u5b66\u672f\u5b9a\u4f4d\r\n\r\n### DAML-RAG \u662f\u4ec0\u4e48 \u2705\r\n\r\n- **\u5de5\u7a0b\u6846\u67b6**\uff1a\u7cfb\u7edf\u6574\u5408RAG [1]\u3001GraphRAG [2]\u3001ICL [3]\u3001\u77e5\u8bc6\u56fe\u8c31 [4]\r\n- **\u751f\u4ea7\u7cfb\u7edf**\uff1a\u5728\u7389\u73cd\u5065\u8eab\u9886\u57df\u7ecf\u8fc7\u9a8c\u8bc1\r\n- **\u6210\u672c\u4f18\u5316**\uff1a\u901a\u8fc7\u6559\u5e08-\u5b66\u751f\u534f\u540c\u964d\u4f4e\u6210\u672c\r\n- **\u5782\u76f4\u9886\u57df\u805a\u7126**\uff1a\u4e13\u4e3a\u77e5\u8bc6\u5bc6\u96c6\u578b\u9886\u57df\u8bbe\u8ba1\r\n\r\n### DAML-RAG \u4e0d\u662f\u4ec0\u4e48 \u274c\r\n\r\n- \u274c **\u4e0d\u662f\u65b0\u7684ML/AI\u7406\u8bba**\uff1a\u6ca1\u6709\u521b\u65b0\u7b97\u6cd5\u6216\u5b66\u4e60\u8303\u5f0f\r\n- \u274c **\u4e0d\u58f0\u79f0\u901a\u7528\u4f18\u8d8a\u6027**\uff1a\u4e3a\u7279\u5b9a\u7528\u4f8b\u8bbe\u8ba1\r\n- \u274c **\u4e0d\u662f\u81ea\u52a8\u5316\u9886\u57df\u9002\u914d**\uff1a\u9700\u8981\u9886\u57df\u4e13\u5bb6\u6784\u5efa\u77e5\u8bc6\u56fe\u8c31\r\n- \u274c **\u4e0d\u662f\u63a8\u7406\u65f6\"\u5143\u5b66\u4e60\"**\uff1a\u6b63\u786e\u672f\u8bed\u662f\"\u4e0a\u4e0b\u6587\u5b66\u4e60\"\uff08v2.0\u4fee\u6b63\uff09\r\n\r\n---\r\n\r\n## \ud83c\udfaf \u6838\u5fc3\u7279\u6027\r\n\r\n- \ud83c\udfaf **GraphRAG\u6df7\u5408\u68c0\u7d22**\uff1a\u5411\u91cf + \u56fe\u8c31 + \u89c4\u5219\u4e09\u5c42\u67b6\u6784\r\n- \ud83e\udde0 **\u4e0a\u4e0b\u6587\u5b66\u4e60** \u2b50(v2.0\u4fee\u6b63)\uff1aFew-Shot + \u6848\u4f8b\u63a8\u7406\u7ef4\u6301\u8d28\u91cf\r\n- \u26a1 **\u6559\u5e08-\u5b66\u751f\u6a21\u578b**\uff1aDeepSeek\uff08\u6559\u5e08\uff09+ Ollama\uff08\u5b66\u751f\uff09\u964d\u4f4e\u6210\u672c\r\n- \ud83d\udd0c **MCP\u7f16\u6392**\uff1a\u57fa\u4e8eModel Context Protocol\u7684\u6807\u51c6\u5316\u591a\u667a\u80fd\u4f53\u534f\u540c\r\n- \ud83d\udee1\ufe0f **\u8d28\u91cf\u4fdd\u969c**\uff1a\u81ea\u52a8\u8d28\u91cf\u76d1\u63a7\u548c\u5347\u7ea7\u673a\u5236\r\n- \ud83d\udcca **\u751f\u4ea7\u5c31\u7eea**\uff1a\u5b8c\u6574\u7684\u76d1\u63a7\u3001\u7f13\u5b58\u3001\u5bb9\u9519\u7cfb\u7edf\r\n\r\n---\r\n\r\n## \ud83c\udfd7\ufe0f \u6838\u5fc3\u67b6\u6784\uff1a\u4e09\u5c42\u68c0\u7d22\u7cfb\u7edf\r\n\r\nDAML-RAG\u7684\u6838\u5fc3\u521b\u65b0\u5728\u4e8e\u4e09\u5c42\u6df7\u5408\u68c0\u7d22\u67b6\u6784\uff0c\u5b8c\u7f8e\u7ed3\u5408\u5411\u91cf\u68c0\u7d22\u3001\u77e5\u8bc6\u56fe\u8c31\u548c\u4e1a\u52a1\u89c4\u5219\uff1a\r\n\r\n```\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 \u7528\u6237\u67e5\u8be2\u8f93\u5165 \u2502\r\n\u2502 \"\u63a8\u8350\u4e0d\u4f24\u819d\u76d6\u7684\u817f\u90e8\u589e\u808c\u52a8\u4f5c\" \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n \u2193\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 \u7b2c\u4e00\u5c42\uff1a\u5411\u91cf\u8bed\u4e49\u68c0\u7d22 (Vector Retrieval) \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83d\udcca \u652f\u6301\u591a\u79cd\u5411\u91cf\u6570\u636e\u5e93: \u2502\r\n\u2502 \u2022 Qdrant (\u63a8\u8350) - \u9ad8\u6027\u80fd\u5411\u91cf\u6570\u636e\u5e93 \u2502\r\n\u2502 \u2022 FAISS - Facebook AI\u76f8\u4f3c\u5ea6\u641c\u7d22 \u2502\r\n\u2502 \u2022 Milvus - \u5f00\u6e90\u5411\u91cf\u6570\u636e\u5e93 \u2502\r\n\u2502 \u2022 Pinecone/Weaviate - \u4e91\u7aef\u5411\u91cf\u670d\u52a1 \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83d\udd0d \u8bed\u4e49\u76f8\u4f3c\u5ea6\u5339\u914d: \u2502\r\n\u2502 \u2022 \u4f59\u5f26\u76f8\u4f3c\u5ea6\uff08Cosine Similarity\uff09 \u2502\r\n\u2502 \u2022 HNSW\u7d22\u5f15\u4f18\u5316\uff08< 50ms\u54cd\u5e94\u65f6\u95f4\uff09 \u2502\r\n\u2502 \u2022 \u591a\u8bed\u8a00embedding\u6a21\u578b\u652f\u6301 \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83c\udfaf \u6838\u5fc3\u529f\u80fd: \u2502\r\n\u2502 \u2022 \u7406\u89e3\u7528\u6237\u610f\u56fe\uff08\"\u589e\u808c\" = \"\u80a5\u5927\u8bad\u7ec3\"\uff09 \u2502\r\n\u2502 \u2022 \u6a21\u7cca\u5339\u914d\uff08\u62fc\u5199\u9519\u8bef\u3001\u540c\u4e49\u8bcd\u8bc6\u522b\uff09 \u2502\r\n\u2502 \u2022 \u5feb\u901f\u53ec\u56de\u5019\u9009\u96c6\uff08Top 20-50\uff09 \u2502\r\n\u2502 \u2022 \u591a\u6a21\u6001\u68c0\u7d22\u652f\u6301\uff08\u6587\u672c\u3001\u56fe\u50cf\u3001\u97f3\u9891\uff09 \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n \u2193\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 \u7b2c\u4e8c\u5c42\uff1a\u56fe\u5173\u7cfb\u63a8\u7406 (Knowledge Graph) \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83d\udd78\ufe0f \u652f\u6301\u591a\u79cd\u56fe\u6570\u636e\u5e93: \u2502\r\n\u2502 \u2022 Neo4j (\u63a8\u8350) - \u4e13\u4e1a\u56fe\u6570\u636e\u5e93 \u2502\r\n\u2502 \u2022 ArangoDB - \u591a\u6a21\u578b\u6570\u636e\u5e93 \u2502\r\n\u2502 \u2022 JanusGraph - \u5206\u5e03\u5f0f\u56fe\u6570\u636e\u5e93 \u2502\r\n\u2502 \u2022 Amazon Neptune - \u4e91\u7aef\u56fe\u670d\u52a1 \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83d\udd17 \u7ed3\u6784\u5316\u5173\u7cfb\u63a8\u7406: \u2502\r\n\u2502 \u2022 Cypher\u67e5\u8be2\u8bed\u8a00\uff08Neo4j\uff09 \u2502\r\n\u2502 \u2022 Gremlin\u56fe\u904d\u5386\u8bed\u8a00 \u2502\r\n\u2502 \u2022 SPARQL\u8bed\u4e49\u67e5\u8be2 \u2502\r\n\u2502 \u2022 \u591a\u8df3\u63a8\u7406\u80fd\u529b\uff08< 100ms\uff09 \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83c\udfaf \u6838\u5fc3\u529f\u80fd: \u2502\r\n\u2502 \u2022 \u7cbe\u786e\u7b5b\u9009\uff08\u57fa\u4e8e2,447+\u5b9e\u4f53\u8282\u70b9\uff09 \u2502\r\n\u2502 \u2022 \u7ea6\u675f\u9a8c\u8bc1\uff08\"\u4e0d\u538b\u8feb\u819d\u76d6\"\uff09 \u2502\r\n\u2502 \u2022 \u53ef\u89e3\u91ca\u6027\uff08\u6e05\u6670\u7684\u63a8\u7406\u8def\u5f84\uff09 \u2502\r\n\u2502 \u2022 \u591a\u8df3\u63a8\u7406\uff08\"\u52a8\u4f5c\u2192\u808c\u7fa4\u2192\u76ee\u6807\u2192\u7ea6\u675f\"\uff09 \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n \u2193\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 \u7b2c\u4e09\u5c42\uff1a\u4e1a\u52a1\u89c4\u5219\u9a8c\u8bc1 (Rule Filtering) \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83d\udccb \u9886\u57df\u4e13\u4e1a\u89c4\u5219\u5f15\u64ce: \u2502\r\n\u2502 \u2022 \u5b89\u5168\u89c4\u5219\uff08\u5e74\u9f84\u3001\u635f\u4f24\u3001\u5eb7\u590d\u9636\u6bb5\uff09 \u2502\r\n\u2502 \u2022 \u5668\u68b0\u89c4\u5219\uff08\u53ef\u7528\u8bbe\u5907\u3001\u573a\u5730\u9650\u5236\uff09 \u2502\r\n\u2502 \u2022 \u5bb9\u91cf\u89c4\u5219\uff08MRV\u3001\u8d85\u91cf\u6062\u590d\u3001\u8bad\u7ec3\u9891\u7387\uff09 \u2502\r\n\u2502 \u2022 \u4e2a\u6027\u5316\u89c4\u5219\uff08\u7528\u6237\u504f\u597d\u3001\u76ee\u6807\u6c34\u5e73\uff09 \u2502\r\n\u2502 \u2502\r\n\u2502 \ud83d\udee1\ufe0f \u667a\u80fd\u9a8c\u8bc1\u7cfb\u7edf: \u2502\r\n\u2502 \u2022 \u52a8\u6001\u89c4\u5219\u52a0\u8f7d\uff08< 20ms\uff09 \u2502\r\n\u2502 \u2022 \u89c4\u5219\u4f18\u5148\u7ea7\u7ba1\u7406 \u2502\r\n\u2502 \u2022 \u89c4\u5219\u51b2\u7a81\u68c0\u6d4b\u548c\u89e3\u51b3 \u2502\r\n\u2502 \u2022 \u89c4\u5219\u6548\u679c\u8bc4\u4f30\u548c\u4f18\u5316 \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n \u2193\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 \ud83d\udcca \u6700\u7ec8\u7ed3\u679c\uff1a5\u4e2a\u7cbe\u51c6\u63a8\u8350 + \u63a8\u8350\u7406\u7531 + \u7f6e\u4fe1\u5ea6\u8bc4\u5206 \u2502\r\n\u2502 \ud83d\udca1 Token\u4f18\u5316\uff1a\u7406\u8bba\u8bbe\u8ba1\u76ee\u6807\uff08\u672a\u9a8c\u8bc1\uff09 \u2502\r\n\u2502 \u26a1 \u603b\u54cd\u5e94\u65f6\u95f4\uff1a\u7389\u73cd\u5b9e\u6d4b ~20\u79d2\uff08\u7b14\u8bb0\u672c\uff0c\u672a\u4f18\u5316\uff09 \u2502\r\n\u2502 \ud83c\udfaf \u7528\u6237\u6ee1\u610f\u5ea6\uff1a\u8bbe\u8ba1\u76ee\u6807\uff08\u672a\u9a8c\u8bc1\uff09 \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n```\r\n\r\n### \ud83d\udd27 \u6280\u672f\u6808\u9009\u578b\r\n\r\nDAML-RAG\u652f\u6301\u7075\u6d3b\u7684\u6280\u672f\u6808\u9009\u578b\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u6839\u636e\u504f\u597d\u548c\u9700\u6c42\u9009\u62e9\uff1a\r\n\r\n```yaml\r\n# \u5411\u91cf\u6570\u636e\u5e93\u9009\u62e9\r\n\u5411\u91cf\u6570\u636e\u5e93:\r\n Qdrant: \u2b50\u2b50\u2b50\u2b50\u2b50 \u63a8\u8350\uff08\u9ad8\u6027\u80fd\u3001\u6613\u90e8\u7f72\uff09\r\n FAISS: \u2b50\u2b50\u2b50\u2b50 \uff08\u672c\u5730\u90e8\u7f72\u3001\u901f\u5ea6\u5feb\uff09\r\n Milvus: \u2b50\u2b50\u2b50\u2b50 \uff08\u5f00\u6e90\u3001\u5206\u5e03\u5f0f\uff09\r\n Pinecone: \u2b50\u2b50\u2b50 \uff08\u4e91\u7aef\u3001\u6258\u7ba1\u670d\u52a1\uff09\r\n Weaviate: \u2b50\u2b50\u2b50 \uff08\u8bed\u4e49\u641c\u7d22\u3001GraphQL\uff09\r\n\r\n# \u56fe\u6570\u636e\u5e93\u9009\u62e9\r\n\u56fe\u6570\u636e\u5e93:\r\n Neo4j: \u2b50\u2b50\u2b50\u2b50\u2b50 \u63a8\u8350\uff08\u4e13\u4e1a\u56fe\u6570\u636e\u5e93\uff09\r\n ArangoDB: \u2b50\u2b50\u2b50\u2b50 \uff08\u591a\u6a21\u578b\u3001\u7075\u6d3b\uff09\r\n JanusGraph: \u2b50\u2b50\u2b50 \uff08\u5206\u5e03\u5f0f\u3001\u5927\u6570\u636e\uff09\r\n Neptune: \u2b50\u2b50\u2b50 \uff08AWS\u96c6\u6210\uff09\r\n\r\n# AI\u6a21\u578b\u9009\u62e9\r\n\u5927\u6a21\u578b:\r\n DeepSeek: \u2b50\u2b50\u2b50\u2b50\u2b50 \u6559\u5e08\u6a21\u578b\uff08\u9ad8\u8d28\u91cf\u3001\u4e2d\u6587\u4f18\u5316\uff09\r\n GPT-4: \u2b50\u2b50\u2b50\u2b50 \uff08\u901a\u7528\u80fd\u529b\u5f3a\uff09\r\n Claude: \u2b50\u2b50\u2b50\u2b50 \uff08\u5b89\u5168\u6027\u9ad8\uff09\r\n Qwen: \u2b50\u2b50\u2b50\u2b50 \uff08\u5f00\u6e90\u3001\u4e2d\u6587\uff09\r\n\r\n\u5c0f\u6a21\u578b:\r\n Ollama: \u2b50\u2b50\u2b50\u2b50\u2b50 \u5b66\u751f\u6a21\u578b\uff08\u672c\u5730\u90e8\u7f72\u3001\u6210\u672c\u4f18\u5316\uff09\r\n Llama: \u2b50\u2b50\u2b50\u2b50 \uff08\u5f00\u6e90\u3001\u6027\u80fd\u597d\uff09\r\n Phi: \u2b50\u2b50\u2b50 \uff08\u5fae\u8f6f\u3001\u5c0f\u800c\u7cbe\uff09\r\n Gemma: \u2b50\u2b50\u2b50 \uff08Google\u3001\u8f7b\u91cf\u7ea7\uff09\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udce6 \u6a21\u5757\u7ed3\u6784\r\n\r\n```\r\ndaml-rag-framework/\r\n\u251c\u2500\u2500 daml-rag-core/ # \ud83d\udd27 \u6838\u5fc3\u6846\u67b6\r\n\u2502 \u251c\u2500\u2500 interfaces/ # \u62bd\u8c61\u63a5\u53e3\u5b9a\u4e49\r\n\u2502 \u251c\u2500\u2500 models/ # \u6570\u636e\u6a21\u578b\r\n\u2502 \u251c\u2500\u2500 config/ # \u914d\u7f6e\u7ba1\u7406\r\n\u2502 \u2514\u2500\u2500 utils/ # \u5de5\u5177\u51fd\u6570\r\n\u251c\u2500\u2500 daml-rag-retrieval/ # \ud83d\udd0d \u4e09\u5c42\u68c0\u7d22\u5f15\u64ce\r\n\u2502 \u251c\u2500\u2500 vector/ # \u5411\u91cf\u68c0\u7d22\u5c42\r\n\u2502 \u251c\u2500\u2500 knowledge/ # \u77e5\u8bc6\u56fe\u8c31\u5c42\r\n\u2502 \u251c\u2500\u2500 rules/ # \u89c4\u5219\u8fc7\u6ee4\u5c42\r\n\u2502 \u2514\u2500\u2500 cache/ # \u7f13\u5b58\u7ba1\u7406\r\n\u251c\u2500\u2500 daml-rag-orchestration/ # \ud83c\udfaf \u4efb\u52a1\u7f16\u6392\u5f15\u64ce\r\n\u251c\u2500\u2500 daml-rag-learning/ # \ud83e\udde0 \u63a8\u7406\u65f6\u5b66\u4e60\r\n\u251c\u2500\u2500 daml-rag-adapters/ # \ud83d\udd0c \u9886\u57df\u9002\u914d\u5668\r\n\u251c\u2500\u2500 daml-rag-cli/ # \ud83d\ude80 \u547d\u4ee4\u884c\u5de5\u5177\r\n\u2514\u2500\u2500 examples/ # \ud83d\udcda \u793a\u4f8b\u9879\u76ee\r\n```\r\n\r\n---\r\n\r\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\r\n\r\n### \u5b89\u88c5\r\n\r\n#### \u65b9\u5f0f1\uff1a\u4ece PyPI \u5b89\u88c5\uff08\u63a8\u8350\uff09\r\n\r\n**\u26a0\ufe0f \u6ce8\u610f\uff1a\u9879\u76ee\u5c1a\u672a\u53d1\u5e03\u5230 PyPI\uff0c\u6682\u65f6\u8bf7\u4f7f\u7528\u65b9\u5f0f2\u62163\u5b89\u88c5**\r\n\r\n```bash\r\n# \u6b63\u5f0f\u53d1\u5e03\u540e\u53ef\u7528\r\npip install daml-rag-framework\r\n```\r\n\r\n#### \u65b9\u5f0f2\uff1a\u4ece\u6e90\u7801\u5b89\u88c5\uff08\u5f00\u53d1\u7248\uff09\r\n\r\n```bash\r\n# \u514b\u9686\u4ed3\u5e93\r\ngit clone https://github.com/vivy1024/daml-rag-framework.git\r\ncd daml-rag-framework\r\n\r\n# \u5b89\u88c5\u4f9d\u8d56\u5e76\u5b89\u88c5\u6846\u67b6\uff08\u5f00\u53d1\u6a21\u5f0f\uff09\r\npip install -e .\r\n\r\n# \u6216\u8005\u6784\u5efa\u5e76\u5b89\u88c5\r\npython -m pip install --upgrade build\r\npython -m build\r\npip install dist/*.whl\r\n```\r\n\r\n#### \u65b9\u5f0f3\uff1a\u4ece GitHub \u76f4\u63a5\u5b89\u88c5\r\n\r\n```bash\r\npip install git+https://github.com/vivy1024/daml-rag-framework.git\r\n```\r\n\r\n### \u9a8c\u8bc1\u5b89\u88c5\r\n\r\n```bash\r\n# \u9a8c\u8bc1\u5bfc\u5165\r\npython -c \"from daml_rag import DAMLRAGFramework; print('\u2705 \u5b89\u88c5\u6210\u529f')\"\r\n\r\n# \u6d4b\u8bd5 CLI\r\ndaml-rag --help\r\n```\r\n\r\n### \u521b\u5efa\u65b0\u9879\u76ee\r\n\r\n```bash\r\n# \u521b\u5efa\u5065\u8eab\u9886\u57dfAI\u5e94\u7528\r\ndaml-rag init my-fitness-app --domain fitness\r\n\r\n# \u521b\u5efa\u533b\u7597\u9886\u57dfAI\u5e94\u7528\r\ndaml-rag init my-medical-app --domain healthcare\r\n\r\n# \u521b\u5efa\u81ea\u5b9a\u4e49\u9886\u57dfAI\u5e94\u7528\r\ndaml-rag init my-custom-app --template custom\r\n```\r\n\r\n### \u57fa\u672c\u4f7f\u7528\r\n\r\n```python\r\nimport asyncio\r\nfrom daml_rag import DAMLRAGFramework, DAMLRAGConfig\r\nfrom daml_rag.adapters import FitnessDomainAdapter\r\n\r\nasync def main():\r\n # \u52a0\u8f7d\u914d\u7f6e\r\n config = DAMLRAGConfig.from_file(\"config.yaml\")\r\n \r\n # \u521b\u5efa\u6846\u67b6\u5b9e\u4f8b\r\n framework = DAMLRAGFramework(config)\r\n \r\n # \u521d\u59cb\u5316\u9886\u57df\u9002\u914d\u5668\r\n adapter = FitnessDomainAdapter(config.domain_config)\r\n await adapter.initialize()\r\n \r\n # \u521d\u59cb\u5316\u6846\u67b6\r\n await framework.initialize()\r\n \r\n # \u5904\u7406\u7528\u6237\u67e5\u8be2\r\n result = await framework.process_query(\"\u6211\u60f3\u5236\u5b9a\u4e00\u4e2a\u589e\u808c\u8ba1\u5212\")\r\n print(result.response)\r\n\r\nif __name__ == \"__main__\":\r\n asyncio.run(main())\r\n```\r\n\r\n### \u914d\u7f6e\u6587\u4ef6\u793a\u4f8b\r\n\r\n```yaml\r\n# config.yaml\r\ndomain: fitness\r\ndebug: false\r\n\r\nretrieval:\r\n vector_model: \"BAAI/bge-base-zh-v1.5\"\r\n top_k: 5\r\n similarity_threshold: 0.6\r\n cache_ttl: 300\r\n enable_kg: true\r\n enable_rules: true\r\n\r\norchestration:\r\n max_parallel_tasks: 10\r\n timeout_seconds: 30\r\n retry_attempts: 3\r\n enable_caching: true\r\n\r\nlearning:\r\n teacher_model: \"deepseek\"\r\n student_model: \"ollama-qwen2.5\"\r\n experience_threshold: 3.5\r\n feedback_weight: 0.8\r\n adaptive_threshold: 0.7\r\n\r\ndomain_config:\r\n knowledge_graph_path: \"./data/knowledge_graph.db\"\r\n mcp_servers:\r\n - name: \"user-profile\"\r\n command: \"python\"\r\n args: [\"user-profile-stdio/server.py\"]\r\n - name: \"professional-coach\"\r\n command: \"python\"\r\n args: [\"professional-coach-stdio/server.py\"]\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udcca \u5f53\u524d\u72b6\u6001\r\n\r\n**\u26a0\ufe0f \u9879\u76ee\u72b6\u6001\uff1a\u751f\u4ea7\u51c6\u5907\uff08\u524d\u7aef\u5b8c\u5584\u4e2d\uff09**\r\n\r\n### \u5b9e\u9645\u6d4b\u91cf\u6570\u636e\r\n\r\n| \u6307\u6807 | \u5f53\u524d\u503c | \u8bf4\u660e |\r\n|------|-------|------|\r\n| **Token/\u67e5\u8be2\uff08\u7b80\u5355\uff09** | 500-800 | DeepSeek + \u7528\u6237\u6863\u6848MCP |\r\n| **\u54cd\u5e94\u65f6\u95f4** | **~20\u79d2** | \u26a0\ufe0f \u672a\u4f18\u5316\uff0c\u9700\u8981\u7f13\u5b58 |\r\n| **\u9879\u76ee\u9636\u6bb5** | \u751f\u4ea7\u51c6\u5907 | \u51c6\u5907\u90e8\u7f72\u4e2d |\r\n| **MCP\u5de5\u5177\u5b9e\u73b0** | 14/14 \u2705 | \u6240\u6709\u5de5\u5177\u5df2\u5b8c\u6210 |\r\n| **Docker\u72b6\u6001** | \u4f7f\u7528\u4e2d | \u672c\u5730\u90e8\u7f72\u5c31\u7eea |\r\n| **\u524d\u7aef\u72b6\u6001** | \u8fdb\u884c\u4e2d | \u90e8\u7f72\u524d\u5b8c\u5584 |\r\n\r\n### \u5f53\u524d\u95ee\u9898\r\n\r\n**\u26a0\ufe0f \u5df2\u77e5\u6027\u80fd\u95ee\u9898\uff1a**\r\n\r\n- **\u54cd\u5e94\u7f13\u6162**\uff1a\u7b80\u5355\u67e5\u8be2\u7ea620\u79d2\r\n - \u539f\u56e0\uff1a\u672a\u4f18\u5316\u7684\u56fe\u67e5\u8be2\uff0c\u65e0\u7f13\u5b58\u673a\u5236\r\n - \u539f\u56e0\uff1a\u591a\u4e2a\u4e32\u884cMCP\u8c03\u7528\uff0c\u65e0\u5e76\u884c\u5316\r\n - \u72b6\u6001\uff1a\u7b2c\u4e00\u9636\u6bb5\u8ba1\u5212\u4f18\u5316\r\n \r\n- **\u524d\u7aef\u5b8c\u5584**\uff1a\u8fdb\u884c\u4e2d\r\n - \u5de5\u5177\u540e\u7aef\uff1a\u2705 \u5b8c\u6210\uff0814/14\uff09\r\n - \u524d\u7aefUI\uff1a\ud83d\udea7 \u5b8c\u5584\u4e2d\r\n - Docker\u90e8\u7f72\uff1a\u2705 \u672c\u5730\u5c31\u7eea\r\n\r\n- **\u751f\u4ea7\u90e8\u7f72**\uff1a\u51c6\u5907\u4e2d\r\n - \u672c\u5730Docker\uff1a\u2705 \u4f7f\u7528\u4e2d\r\n - \u751f\u4ea7\u90e8\u7f72\uff1a\ud83d\udea7 \u524d\u7aef\u5b8c\u6210\u540e\r\n - \u6027\u80fd\u4f18\u5316\uff1a\u23f3 \u5df2\u8ba1\u5212\r\n\r\n### \u5df2\u77e5\u9650\u5236\r\n\r\n**\u26a0\ufe0f \u91cd\u8981\uff1a\u4f7f\u7528\u524d\u8bf7\u9605\u8bfb [LIMITATIONS.md](LIMITATIONS.md)\uff01**\r\n\r\n\u5173\u952e\u9650\u5236\uff1a\r\n\r\n- **\u786c\u4ef6\u9700\u6c42**\uff1a\u6700\u4f4e16GB\u5185\u5b58\uff0c\u63a8\u835032GB+\r\n- **\u54cd\u5e94\u65f6\u95f4**\uff1a~20\u79d2\uff08\u7389\u73cd\u5065\u8eab\u7b14\u8bb0\u672c\u6848\u4f8b\uff0c\u672a\u4f18\u5316\uff09\r\n- **\u89c4\u6a21\u9650\u5236**\uff1a\u5355\u673a\u8d85\u8fc730K\u8282\u70b9\u6027\u80fd\u4e0b\u964d\r\n- **\u90e8\u7f72**\uff1a\u751f\u4ea7\u73af\u5883\u5efa\u8bae\u5206\u5e03\u5f0f\u90e8\u7f72\r\n\r\n\u8be6\u7ec6\u5206\u6790\u89c1 [LIMITATIONS.md](LIMITATIONS.md)\u3002\r\n\r\n### \u8bbe\u8ba1\u76ee\u6807\uff08\u672a\u9a8c\u8bc1\uff09\r\n\r\n\u4ee5\u4e0b\u662f**\u7406\u8bba\u8bbe\u8ba1\u76ee\u6807**\uff0c\u975e\u9a8c\u8bc1\u6307\u6807\uff1a\r\n\r\n- \ud83c\udfaf \u901a\u8fc7GraphRAG\u6df7\u5408\u68c0\u7d22\u5b9e\u73b0Token\u6548\u7387\r\n- \ud83c\udfaf \u901a\u8fc7\u6559\u5e08-\u5b66\u751f\u534f\u540c\u4f18\u5316\u6210\u672c\r\n- \ud83c\udfaf \u901a\u8fc7\u7ed3\u6784\u5316\u77e5\u8bc6\u63d0\u5347\u8d28\u91cf\r\n- \ud83c\udfaf \u901a\u8fc7\u5411\u91cf+\u56fe\u8c31+\u89c4\u5219\u5b9e\u73b0\u5feb\u901f\u68c0\u7d22\r\n\r\n**\u72b6\u6001**\uff1a\u5b9e\u65bd\u8fdb\u884c\u4e2d\uff0c\u57fa\u51c6\u6d4b\u8bd5\u5f85\u8fdb\u884c\u3002\r\n\r\n---\r\n\r\n## \ud83d\udcda \u6587\u6863\r\n\r\n### \u5fc5\u8bfb\u6587\u6863\r\n\r\n- **[LIMITATIONS.md](LIMITATIONS.md)** \u26a0\ufe0f - \u9650\u5236\u548c\u7ea6\u675f\uff08\u5fc5\u8bfb\uff01\uff09\r\n- **[PUBLISHING.md](PUBLISHING.md)** \ud83d\udce6 - PyPI \u53d1\u5e03\u6307\u5357\uff08\u5f00\u53d1\u8005\u5fc5\u8bfb\uff09\r\n\r\n### \u7406\u8bba\u57fa\u7840\r\n\r\n- [\u7406\u8bba\u6f14\u8fdb\u5386\u53f2](docs/theory/00-\u7406\u8bba\u6f14\u8fdb\u5386\u53f2.md)\r\n- [GraphRAG\u6df7\u5408\u68c0\u7d22\u7406\u8bba](docs/theory/01-GraphRAG\u6df7\u5408\u68c0\u7d22\u7406\u8bba.md)\r\n- [\u63a8\u7406\u65f6\u4e0a\u4e0b\u6587\u5b66\u4e60\u7406\u8bba](docs/theory/02-\u63a8\u7406\u65f6\u4e0a\u4e0b\u6587\u5b66\u4e60\u7406\u8bba.md)\r\n- [\u6846\u67b6\u603b\u89c8](docs/theory/\u6846\u67b6\u603b\u89c8.md)\r\n\r\n### \u6848\u4f8b\u7814\u7a76\r\n\r\n- [\u7389\u73cd\u5065\u8eab\u6848\u4f8b\u7814\u7a76](examples/YUZHEN_FITNESS_CASE_STUDY.md)\uff08\u5373\u5c06\u63a8\u51fa\uff09- \u53c2\u8003\u5b9e\u73b0\r\n\r\n### \u6307\u5357\r\n\r\n- [\u5feb\u901f\u5f00\u59cb](docs/tutorials/quickstart.md)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n- [\u67b6\u6784\u8bbe\u8ba1](docs/architecture/)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n- [API\u6587\u6863](docs/api/)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n- [\u90e8\u7f72\u6307\u5357](docs/tutorials/deployment.md)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n\r\n### \u5f00\u53d1\u8005\u6307\u5357\r\n\r\n- [\u6253\u5305\u548c\u53d1\u5e03\u6d41\u7a0b](PUBLISHING.md) - \u5982\u4f55\u53d1\u5e03\u5230 PyPI\r\n- [\u8d21\u732e\u6307\u5357](CONTRIBUTING.md)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n- [\u5f00\u53d1\u73af\u5883\u8bbe\u7f6e](docs/development/)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n\r\n### \u53c2\u8003\u6587\u732e\r\n\r\n- [\u5b8c\u6574\u53c2\u8003\u6587\u732e](REFERENCES.md)\r\n- [\u5b66\u672f\u5f15\u7528](CITATION.cff)\r\n\r\n---\r\n\r\n## \ud83d\udcd6 \u5b66\u672f\u5f15\u7528\r\n\r\n\u5982\u679c\u60a8\u5728\u7814\u7a76\u6216\u9879\u76ee\u4e2d\u4f7f\u7528DAML-RAG\uff0c\u8bf7\u5f15\u7528\uff1a\r\n\r\n```bibtex\r\n@software{daml_rag_2024,\r\n title={DAML-RAG: Domain-Adaptive Meta-Learning RAG Framework},\r\n author={\u859b\u5c0f\u5ddd (Xue Xiaochuan)},\r\n year={2025},\r\n version={1.0.0},\r\n url={https://github.com/vivy1024/daml-rag-framework}\r\n}\r\n```\r\n\r\n\u8be6\u89c1 [CITATION.cff](CITATION.cff) \u83b7\u53d6\u5b8c\u6574\u5f15\u7528\u5143\u6570\u636e\u3002\r\n\r\n**\u7248\u6743\u6240\u6709 \u00a9 2025 \u859b\u5c0f\u5ddd\u3002\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002**\r\n\r\n---\r\n\r\n## \ud83e\udd1d \u8d21\u732e\r\n\r\n\u6b22\u8fce\u8d21\u732e\uff01\u8bf7\u67e5\u770b\uff1a\r\n- [CONTRIBUTING.md](CONTRIBUTING.md)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)\uff08\u5373\u5c06\u63a8\u51fa\uff09\r\n\r\n---\r\n\r\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\r\n\r\n**\u7248\u6743\u6240\u6709 \u00a9 2025 \u859b\u5c0f\u5ddd\u3002\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002**\r\n\r\n\u6839\u636eApache License 2.0\u8bb8\u53ef\u8bc1\u6388\u6743\u3002\u60a8\u53ef\u4ee5\u5728\u4ee5\u4e0b\u7f51\u5740\u83b7\u53d6\u8bb8\u53ef\u8bc1\u526f\u672c\uff1a\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n\u9664\u975e\u9002\u7528\u6cd5\u5f8b\u8981\u6c42\u6216\u4e66\u9762\u540c\u610f\uff0c\u5426\u5219\u6839\u636e\u8bb8\u53ef\u8bc1\u5206\u53d1\u7684\u8f6f\u4ef6\u6309\"\u539f\u6837\"\u5206\u53d1\uff0c\u4e0d\u9644\u5e26\u4efb\u4f55\u660e\u793a\u6216\u6697\u793a\u7684\u62c5\u4fdd\u6216\u6761\u4ef6\u3002\u8be6\u89c1 [LICENSE](LICENSE) \u6587\u4ef6\u3002\r\n\r\n---\r\n\r\n## \ud83d\ude4f \u81f4\u8c22\r\n\r\n\u57fa\u4e8e\u7389\u73cd\u5065\u8eab v2.0\u9879\u76ee\u7684\u7406\u8bba\u548c\u5b9e\u8df5\u6210\u679c\u6784\u5efa\u3002\r\n\r\n**\u7ad9\u5728\u5de8\u4eba\u7684\u80a9\u8180\u4e0a\uff1a**\r\n- RAG\uff1aLewis et al. (2020)\r\n- GraphRAG\uff1aMicrosoft Research (2025)\r\n- \u4e0a\u4e0b\u6587\u5b66\u4e60\uff1aBrown et al. (2020)\r\n- \u77e5\u8bc6\u56fe\u8c31\uff1aHogan et al. (2021)\r\n- MCP\uff1aAnthropic (2025)\r\n\r\n---\r\n\r\n**\u8ba9AI\u66f4\u61c2\u4e13\u4e1a\u9886\u57df** \ud83d\ude80\r\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Domain-Adaptive Meta-Learning RAG Framework for Vertical Domain AI Applications",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://github.com/vivy1024/daml-rag-framework/issues",
"Changelog": "https://github.com/vivy1024/daml-rag-framework/blob/main/CHANGELOG.md",
"Documentation": "https://github.com/vivy1024/daml-rag-framework/tree/main/docs",
"Homepage": "https://github.com/vivy1024/daml-rag-framework",
"References": "https://github.com/vivy1024/daml-rag-framework/blob/main/REFERENCES.md",
"Repository": "https://github.com/vivy1024/daml-rag-framework",
"Theory Evolution": "https://github.com/vivy1024/daml-rag-framework/blob/main/docs/theory/00-THEORY_EVOLUTION.md"
},
"split_keywords": [
"rag",
" retrieval-augmented-generation",
" graphrag",
" knowledge-graph",
" artificial-intelligence",
" machine-learning",
" in-context-learning",
" multi-agent-systems",
" vertical-domain",
" production-ready",
" vector-database",
" neo4j",
" qdrant",
" mcp",
" model-context-protocol"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4a90f350481186e687d5f54439c6eedae961d0af92353c6d5b3d4895d0d45c2c",
"md5": "f30e297860096f3fe568ac73aa98a178",
"sha256": "3e8c47c2dca0c53bd27f85841adbaaf2fd5f2045f35d9892eb39a138566bfede"
},
"downloads": -1,
"filename": "daml_rag_framework-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f30e297860096f3fe568ac73aa98a178",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 115782,
"upload_time": "2025-11-06T09:25:28",
"upload_time_iso_8601": "2025-11-06T09:25:28.310805Z",
"url": "https://files.pythonhosted.org/packages/4a/90/f350481186e687d5f54439c6eedae961d0af92353c6d5b3d4895d0d45c2c/daml_rag_framework-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d76ba59859a90e2f28e3633cdac58b6dadd1e3041b4aa224239b083aa0e7c974",
"md5": "e9ef3159a96583630933b9e77843e6ec",
"sha256": "04c32ad18a55becc8a1f5b4d7da09ba85603835325346d823e56abbe72ef2192"
},
"downloads": -1,
"filename": "daml_rag_framework-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "e9ef3159a96583630933b9e77843e6ec",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 174722,
"upload_time": "2025-11-06T09:25:47",
"upload_time_iso_8601": "2025-11-06T09:25:47.389418Z",
"url": "https://files.pythonhosted.org/packages/d7/6b/a59859a90e2f28e3633cdac58b6dadd1e3041b4aa224239b083aa0e7c974/daml_rag_framework-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-06 09:25:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vivy1024",
"github_project": "daml-rag-framework",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "asyncio-throttle",
"specs": [
[
">=",
"1.0.2"
]
]
},
{
"name": "aiofiles",
"specs": [
[
">=",
"23.2.1"
]
]
},
{
"name": "aiohttp",
"specs": [
[
">=",
"3.8.5"
]
]
},
{
"name": "pydantic",
"specs": [
[
">=",
"2.4.0"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
">=",
"1.0.0"
]
]
},
{
"name": "fastapi",
"specs": [
[
">=",
"0.104.0"
]
]
},
{
"name": "uvicorn",
"specs": [
[
">=",
"0.24.0"
]
]
},
{
"name": "python-multipart",
"specs": [
[
">=",
"0.0.6"
]
]
},
{
"name": "qdrant-client",
"specs": [
[
">=",
"1.6.0"
]
]
},
{
"name": "faiss-cpu",
"specs": [
[
">=",
"1.7.4"
]
]
},
{
"name": "neo4j",
"specs": [
[
">=",
"5.12.0"
]
]
},
{
"name": "py2neo",
"specs": [
[
">=",
"2021.2.4"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"1.24.3"
]
]
},
{
"name": "scikit-learn",
"specs": [
[
">=",
"1.3.0"
]
]
},
{
"name": "sentence-transformers",
"specs": [
[
">=",
"2.2.2"
]
]
},
{
"name": "transformers",
"specs": [
[
">=",
"4.33.0"
]
]
},
{
"name": "redis",
"specs": [
[
">=",
"4.6.0"
]
]
},
{
"name": "aioredis",
"specs": [
[
">=",
"2.0.1"
]
]
},
{
"name": "pandas",
"specs": [
[
">=",
"2.0.3"
]
]
},
{
"name": "openpyxl",
"specs": [
[
">=",
"3.1.2"
]
]
},
{
"name": "httpx",
"specs": [
[
">=",
"0.25.0"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.31.0"
]
]
},
{
"name": "structlog",
"specs": [
[
">=",
"23.1.0"
]
]
},
{
"name": "prometheus-client",
"specs": [
[
">=",
"0.17.1"
]
]
},
{
"name": "pytest",
"specs": [
[
">=",
"7.4.0"
]
]
},
{
"name": "pytest-asyncio",
"specs": [
[
">=",
"0.21.0"
]
]
},
{
"name": "pytest-cov",
"specs": [
[
">=",
"4.1.0"
]
]
},
{
"name": "black",
"specs": [
[
">=",
"23.7.0"
]
]
},
{
"name": "isort",
"specs": [
[
">=",
"5.12.0"
]
]
},
{
"name": "flake8",
"specs": [
[
">=",
"6.0.0"
]
]
},
{
"name": "mypy",
"specs": [
[
">=",
"1.5.0"
]
]
}
],
"lcname": "daml-rag-framework"
}