#本地GenAI产品支持助理(RAG+MCP)
高性能、\*\*100%免费\*\*的本地命令行界面(CLI)助手。它使用\*\*检索增强生成(RAG)\*\*来回答产品问题,并模拟\*\*模型上下文协议(MCP)\*\*行为来访问实时工具。
______________________________________________________________________
##概述
该项目通过构建一个代理来满足任务要求,该代理:
1.\*\*RAG:\*\*从 data/ 用于回答特定政策/产品问题的文件夹。
2.\*\*MCP工具:\*\*集成自定义Python工具(get\_current\_time)以回答实时查询。
3.\*\*优化:\*\*在本地使用\*\*Ollama(Llama 3.2)\*\*和\*\*ChromaDB\*\*,实现零成本和数据隐私。
4.\*\*界面:\*\*一个强大的CLI,清楚地指示何时使用工具,何时阅读文档。
______________________________________________________________________
##先决条件和设置
1.安装Ollama(人工智能引擎)
这个项目完全在你的机器上运行。您不需要OpenAI API密钥。
1.下载并安装\*\*\Olama\\*\*.
2.打开终端/命令提示符,运行以下两个命令下载模型:
\\\`bash
Ollama Pull Callama 3.2
olama pull nomic嵌入文本
\\\`
2.项目设置
1.确保安装了Python(3.10或3.11)。
2.安装所需的依赖项:
\\\`bash
pip安装-r要求.txt
\\\`
3.数据设置
确保文件夹名为 data/ 存在于根目录中,并包含您的markdown文档(例如。, product\_faqs.md, support\_policy.md).
______________________________________________________________________
##如何跑步
1.打开终端。
2.运行CLI脚本:
\\\`bash
python cli.py
\\\`
3.等待 === SYSTEM READY === 消息。
4.在提示处键入您的问题 You:.
______________________________________________________________________
##设计细节
1.RAG架构(检索增强生成)
\*\*\*矢量数据库:\*\*\*\*ChromaDB\*\*(本地)。它将文档存储为数学向量。
\*\*\*嵌入:\*\*\*\*名义嵌入文本\*\*。一个轻量级、高性能的模型,针对检索任务进行了优化。
\*\*\*分块:\*\*用途 RecursiveCharacterTextSplitter (大小:1000,重叠:200),以确保在段落分隔中保留上下文。
\*\*\*检索:\*\*系统根据用户的查询提取前3个最相关的块。
2.MCP工具集成(模型上下文协议)
虽然标准MCP需要客户端-主机架构,但此实现模拟了MCP所必需的核心\*\*路由器逻辑\*\*:
\*\*\*工具定义:\*\*特定功能 get\_current\_time 使用类型提示和文档字符串定义。
\*\*\*路由逻辑:\*\*代理分析用户意图(分类步骤),以决定是否需要:
\*\*\*搜索_DOCS:\*\*(RAG工具)
\*\*\*GET_TIME:\*\*(时间工具)
\*\*\*聊天:\*\*(纯LLM)
\*\*\*反馈:\*\*CLI明确打印 \[Tool Used: Checking Time] 或 \[Tool Used: Reading Manual] 以展示其内在逻辑。
______________________________________________________________________
##要测试的示例查询
使用这些查询来验证可交付成果:
|测试用例|查询|预期行为|
| :--- | :--- | :--- |
|\*\*Pure RAG\*\*|“退货政策是什么?”|从中检索信息 data/support\_policy.md.显示 \[Tool Used: Reading Manual]. |
|\*\*纯工具\*\*|“德里当前时间,1美元的印度卢比价格是多少?”|调用python函数。显示 \[Tool Used: Checking Time]. |
|\*\*路由\*\*|“你好”|无需使用任何工具即可自然回答。 |
______________________________________________________________________
##限制和未来范围
\*\*\*环境变量:\*\*否 .env 文件或API键是必需的,因为模型在本地运行。
\*\*\*Windows编码:\*\*文档加载器已配置为 encoding='utf-8' 防止Windows charmap 错误。
\*\*\*硬件:\*\*速度取决于您的本地CPU/GPU。
\*\*\*未来范围:\*\*
\*将CLI迁移到Web UI(React或Streamlit)。
\*实现完整的MCP客户端-服务器架构,以允许远程工具连接。
\*添加“聊天历史”记忆以支持后续问题。
______________________________________________________________________
\*\*作者:\*\*\[您的姓名\]
\*\*提交日期:\*\*\[当前日期\]
