本项目是一个基于 Retrieval-Augmented Generation (RAG) 技术的文档助手,专门用于Myntra的Appliqué设计系统文档。它通过 Model Context Protocol (MCP) 对外提供服务,使LLM客户端(如Cursor IDE)能够方便地查询和利用这些文档信息。
主要功能点
- 文档抓取与处理: 自动从Appliqué官网抓取设计系统文档,并进行结构化处理。
- 向量数据库存储: 将处理后的文档内容及其嵌入向量存储在Qdrant向量数据库中。
- 智能查询路由: 使用LLM分析用户查询,将其路由到相关的组件文档集合。
- 上下文检索: 在Qdrant中执行向量相似度搜索,检索最相关的文档片段作为上下文。
- 智能应答生成: 利用LLM(如OpenAI GPT-3.5)结合检索到的上下文,生成自然语言的应答,包含代码示例和API详情。
- MCP接口服务: 通过MCP协议暴露文档查询能力,支持Stdio和SSE传输,方便与兼容MCP的客户端集成。
安装步骤
- 克隆仓库:
git clone https://github.com/rohangore1999/Myntra-Applique-RAG.git cd Myntra-Applique-RAG - 安装 Python 依赖: 确保已安装 Python 3.7+。
(注:'requirements.txt' 文件未在提供的信息中,但根据代码推断需要'selenium', 'qdrant-client', 'langchain', 'langchain-openai', 'bs4', 'requests', 'webdriver-manager', 'python-dotenv', 'Flask'等库,用户需要自行创建或安装。)pip install -r requirements.txt - 安装 Node.js 依赖: 确保已安装 Node.js 和 npm/yarn。
cd mcp npm install # 或 yarn install cd .. # 返回项目根目录 - 安装 Chrome 浏览器及 WebDriver: Selenium 需要控制浏览器进行抓取。'webdriver-manager' 会尝试自动下载 WebDriver,但请确保系统已安装 Chrome 浏览器。
- 启动 Qdrant 向量数据库: 项目使用本地运行的 Qdrant 服务器(默认地址 'http://localhost:6333')。需要单独运行 Qdrant 服务,推荐使用 Docker。
docker run -p "6333:6333" -p "6334:6334" qdrant/qdrant - 配置 OpenAI API 密钥: 在项目根目录下创建 '.env' 文件,添加您的OpenAI API密钥。
OPEN_API_KEY="YOUR_OPENAI_API_KEY" - 运行数据摄取: 抓取并处理文档,构建向量数据库。
python app.py --ingest - 运行 RAG API 后端: 这是 MCP 服务器调用的内部 API。
或使用 Flask 开发服务器:python api.pyflask run --host=0.0.0.0 --port=5001
服务器配置 (供MCP客户端使用)
MCP服务器代码位于 'mcp/stdio/index.js'。当您的MCP客户端需要连接到这个服务器时,通常需要在客户端配置服务器的启动信息。
- Server Name: 'Applique Component RAG' (在MCP服务器代码中定义)
- Command: 'node' (启动 Node.js 进程的命令)
- Args: '["./mcp/stdio/index.js"]' (传递给 'node' 命令的参数,即服务器脚本的相对路径)
- Transport: 'stdio' (使用的传输协议,对应 'StdioServerTransport')
重要提示: 在启动MCP客户端并连接到此服务器之前,请确保 Qdrant 数据库正在运行,并且 RAG API 后端 ('python api.py') 已经启动并在 'http://localhost:5001' 可访问。
基本使用方法 (通过MCP客户端调用)
一旦MCP客户端配置并连接成功,它就可以通过MCP协议调用服务器暴露的工具。本项目暴露了一个名为 'getAppliqueComponentDetails' 的工具。
客户端会向服务器发送一个包含工具调用请求的JSON-RPC消息。例如,一个查询请求可能类似于:
{ "jsonrpc": "2.0", "method": "tool/getAppliqueComponentDetails", "params": { "query": "如何使用modal组件?" }, "id": "some-request-id" }
服务器接收到请求后,会执行 'getAppliqueComponentDetails' 工具的代码,该工具内部会调用本地运行的 Python RAG API ('http://localhost:5001/query') 来获取应答,并将RAG结果封装成MCP响应格式返回给客户端。客户端会收到一个JSON-RPC响应,其中包含RAG生成的文档应答。
例如,响应可能包含如下内容(简化示例):
{ "jsonrpc": "2.0", "result": { "content": [ { "type": "text", "text": "关于 Modal 组件的说明、用法示例等..." } ] }, "id": "some-request-id" }
用户通过客户端的界面(如在IDE中向LLM提问)即可间接调用此工具,获取关于Appliqué组件的文档信息。
信息
分类
AI与计算