daml-rag-framework


Namedaml-rag-framework JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryDomain-Adaptive Meta-Learning RAG Framework for Vertical Domain AI Applications
upload_time2025-11-06 09:25:47
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache-2.0
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
VCS
bugtrack_url
requirements asyncio-throttle aiofiles aiohttp pydantic python-dotenv fastapi uvicorn python-multipart qdrant-client faiss-cpu neo4j py2neo numpy scikit-learn sentence-transformers transformers redis aioredis pandas openpyxl httpx requests structlog prometheus-client pytest pytest-asyncio pytest-cov black isort flake8 mypy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DAML-RAG 框架

**领域自适应元学习RAG** - 面向垂直领域AI应用的生产就绪框架

[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](LICENSE)
[![Version](https://img.shields.io/badge/Version-1.0.0-orange.svg)](CHANGELOG.md)
[![Package Status](https://img.shields.io/badge/Package-Ready_to_Publish-brightgreen.svg)](BUILD_AND_PUBLISH.md)
[![Build](https://img.shields.io/badge/Build-Passing-success.svg)](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[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://python.org)\r\n[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](LICENSE)\r\n[![Version](https://img.shields.io/badge/Version-1.0.0-orange.svg)](CHANGELOG.md)\r\n[![Package Status](https://img.shields.io/badge/Package-Ready_to_Publish-brightgreen.svg)](BUILD_AND_PUBLISH.md)\r\n[![Build](https://img.shields.io/badge/Build-Passing-success.svg)](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"
}
        
Elapsed time: 1.94406s