RAG铺设场地
RAGPlayground是一个试验检索增强生成(RAG)管道的项目。它集成了PostgreSQL+pgvector用于语义搜索,Hugging Face模型用于嵌入和生成,以及一个允许GitHub Copilot Agent Mode与知识库交互的MCP服务器。
该项目演示了两个工作流程:
- 经典RAG:拥抱脸LLM用于根据检索到的上下文生成响应。
- 代理模式:GitHub Copilot使用MCP(模型上下文协议)查询知识库。
______________________________________________________________________
特性
- 端到端RAG管道(数据接收→ 嵌入→ 数据库→ 检索→ LLM响应)
- PostgreSQL与pgvector用于向量相似性搜索
- 嵌入的句子转换器
- 拥抱面部推理API用于LLM聊天完成
- 用于Copilot Agent集成的MCP服务器
- 自动创建数据库和表(如果不存在)
- 用于彩色提示查询的交互式CLI循环
______________________________________________________________________
RAG管道流量
______________________________________________________________________
项目结构
RAGPlayground/
├── README.md
├── LICENSE
├── main.py
├── requirements.txt
└── src/
├── db/
│ └── rag.py # Database setup, table creation, embeddings insertion
├── extract/
│ └── processing.py # Dataset download, preprocessing, embeddings generation
├── llm/
│ └── llm.py # Hugging Face client, context retrieval, LLM querying
└── mcp/
└── server.py # MCP server for GitHub Copilot Agent______________________________________________________________________
安装
- 克隆存储库
git clone https://github.com/ahmednezar/RAGPlayground.git cd RAGPlayground
- 安装依赖项
pip install -r requirements.txt
- 安装PostgreSQL并启用pgvector扩展
内部 psql: CREATE EXTENSION IF NOT EXISTS vector;
- 在中配置环境变量
.env文件:
HF_TOKEN=your_huggingface_token_here______________________________________________________________________
数据集
该项目使用Kaggle的AG新闻分类数据集。它是使用自动下载的 kagglehub 当你运行管道时,然后预处理成嵌入。
______________________________________________________________________
如何使用
拥抱脸部模型跑步(经典RAG)
python main.py --llm mistralai/Mistral-7B-Instruct-v0.3 --embedding BAAI/bge-base-en-v1.5
例子:
[RagPlayground] Enter your query: Tell me about soccer news
[RagPlayground] Response: 在MCP(副驾驶代理模式)下运行
python main.py --mcp --embedding BAAI/bge-base-en-v1.5
- 在以下位置启动MCP服务器
localhost:5001. - 副驾驶代理将使用
retrieve_documents在回答之前获取上下文的工具。 - 代理人遵循以下说明
.github/instructions/.
______________________________________________________________________
建筑
- 数据层:下载AG News数据集,生成嵌入。
- 存储层:使用pgvector存储在PostgreSQL中的嵌入。
- 检索层:使用余弦距离进行相似性搜索。
- 产生层:拥抱脸LLM或带MCP的副作用剂。
______________________________________________________________________
截图
经典RAG
抹布+MCP
______________________________________________________________________
