本地生成式AI产品支持助手

一个高性能、完全免费的本地命令行界面助手,利用检索增强生成(RAG)回答产品问题,并模拟模型上下文协议(MCP)行为访问实时工具。

  • by Abhimaheshwari1
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Abhimaheshwari1/Local-support-System-RAG-

使用说明

#本地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](https://ollama.com)**.

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客户端-服务器架构,以允许远程工具连接。

*添加“聊天历史”记忆以支持后续问题。


**作者:**[您的姓名]

**提交日期:**[当前日期]