雅典娜MCP RAG服务器
基于Pinecone的RAG服务器,适用于Claude Desktop,具有大规模PDF摄取、评估管道和AI教学工具
______________________________________________________________________
快速设置
1.克隆和安装依赖项
git clone https://github.com/HarshRohilla04/Athena-MCP-RAG-server.git
cd Athena-MCP-RAG-server
uv syncuv pip install -r requirements.txt
# OR
uv sync # uses pyproject.toml2.松果设置
-在以下位置创建帐户 https://www.pinecone.io/
-转到API密钥→ 复制你的api密钥
-创建索引:
Name: rag-storage # name your rag storage
Modality: Text
Vector type: Dense
Dimension: 1024
Metric: cosine 3.创建.env
PINECONE_API_KEY = "your api key"4.Main.py更改
# ----------------------------------------------------------------------
# Global Configuration
# ----------------------------------------------------------------------
pc = Pinecone(api_key=os.getenv("PINECONE_API_KEY"))
index = pc.Index("name of the index")5.安装到克劳德桌面
uv run fastmcp install claude-desktop main.py6.配置克劳德桌面
{
"SERVER_NAME": {
"command": "C:/Users/YOUR_USERNAME/Athena-MCP-RAG-server/.venv/Scripts/python.exe",
"args": ["C:/Users/YOUR_USERNAME/Athena-MCP-RAG-server/main.py"],
"env": {
"PINECONE_API_KEY": "your api key"
},
"transport": "stdio",
"cwd": "C:/Users/YOUR_USERNAME/Athena-MCP-RAG-server",
"timeout": 600
}
}7.发射
- 保存JSON文件
- 完全关闭克劳德桌面
- 打开任务管理器→ 结束所有Claude进程
- 重新启动克劳德桌面
配置
Athena将环境变量用于所有api密钥、文件路径、凭据和模型配置。这使得该项目可以跨机器和操作系统移植。
创建 .env 文件使用 .env.example 作为参考。
所需的环境变量
# SAMPLE .ENV
PINECONE_API_KEY=your_key_here
PINECONE_INDEX_NAME=athena-rag
PINECONE_NAMESPACE=ml-theory-algorithms-text
OPENAI_API_KEY=your_api_key_here
# Documents
BOOK_PDF=/absolute/path/to/your/book.pdf
BOOK_NAME=Understanding Machine Learning: Theory and Algorithms
# Evaluation
TESTSET_CSV_PATH=/absolute/path/to/testset.csv
# Models
EMBEDDING_MODEL_NAME=BAAI/bge-large-en-v1.5
LLM_MODEL_NAME=gpt-4o-mini项目结构
Athena-MCP-RAG-server/
├─ main.py # MCP server for Claude Desktop
├─ pinecone_ingestion.py # Offline PDF ingestion
├─ testset_generator.py # Synthetic QA generation (RAGAS)
├─ evaluate_rag.py # RAG evaluation pipeline
├─ .env.example # Environment variable template
├─ requirements.txt
├─ testset_small(10Q).csv
├─ testset_large(100Q).csv
└─ README.md松果摄入
此脚本使用生产质量的语义摄取管道将教科书规模的PDF摄取到Pinecone中。
主要特点:
- 使用pdfplumber进行页面感知PDF解析
- 文本清理以删除常见的PDF伪影
- 语义分块(512个标记,100个重叠)
- 上下文丰富的块(书名+页码)
- 使用BAAI/bge-large-en-v1.5的高质量嵌入
- 批量扰乱松果
所需配置:
- BOOK_PDF –教科书PDF路径
- BOOK_NAME –文件标题
- 松果索引名
- 松果命名空间
- PINECONE_API_钥匙
跑步摄入:
python pinecone_ingestion.py注意:由于上下文窗口和传输限制,大型PDF最好通过pinecone_inputon.py离线摄入,而较小的文档可以通过Claude Desktop MCP界面安全上传。
RAG评估
Athena包括一个完整的RAG评估管道,该管道使用 RAGAS 框架。 这允许用户定量评估检索和生成质量,而不是依赖主观判断。
评估指标
评估管道报告以下指标:
- 上下文精度 –检索到的块有多相关。
- 上下文回忆 –检索器覆盖所需信息的程度。
- 忠诚 –答案是否基于检索到的上下文。
- 答案相关性 –答案对问题的回答有多好。
评估逻辑在以下方面实现:
evaluate_rag.py评估过程:
- 从CSV测试集中加载问题
- 从Pinecone检索上下文
- 使用LLM生成答案
- 计算RAGAS指标
一旦文档被摄入Pinecone,用户就可以直接运行评估。
测试集生成
此脚本使用RAGAS测试集生成器从源PDF生成合成问答对。
生成过程:
- 加载源PDF
- 将文本分割成语义块
- 使用LLM生成高质量的QA对
- 将数据集导出为CSV文件
所需配置:
- TESTSET_CSV_PATH
- 松果索引名
- 松果命名空间
- EMBEDDING_MODEL_NAME
- LLM_MODEL_NAME
运行测试集生成:
python testset_generator.py输出:
testset.csv注意:MiniLM嵌入仅在测试集生成期间使用。 使用BGE大嵌入进行检索和评估
评估测试集
为了使评估可重复且易于运行,该存储库包括两个 预生成的测试集来源于教科书《理解机器学习》。
可用测试集
testset_small(10Q).csv10个问题的轻量级测试集,用于快速进行健全性检查testset_large(100Q).csv用于稳健评估的100题综合测试集
每个测试集包含:
- 高质量的综合问题
- 地面实况参考答案
- 旨在测试定义、理论概念和多跳推理
这些CSV文件允许用户立即评估Athena的RAG性能 而无需重新生成测试数据。
参考教材
这个项目是围绕这本书建立的:
理解机器学习:从理论到算法 Shai Shalev Shwartz和Shai Ben David 下载书籍
本书用于:
- 文档摄取
- 测试集生成
- 定量RAG评估
