带有本地大型语言模型的MCP(或:集成本地大型语言模型的MCP)
此项目展示了如何在搭载了增强型模型上下文协议(MCP)功能的骁龙Elite X NPU上本地运行Phi-3.5-mini-instruct大型语言模型(LLM)。
概述
MCP的实现展示了三种关键的交互模式:
- 工具执行MCP客户端从MCP服务器调用工具
- 基于人工智能的工具选择MCP客户端使用本地大型语言模型(LLM)来智能选择要调用的MCP服务器工具
- 抽样MCP服务器请求MCP客户端执行提示
先决条件
- 安装 Python 3.10
- 下载并安装QNN SDK\
可在……获取 高通软件中心
- 下载Phi-3.5-Mini-Instruct上下文二进制文件\
获取 .bin 来自(某处的)文件 高通AI中心 并将它们提取到您希望的文件夹中(例如。, C:\LLM\phi_3_5_mini_instruct)
设置
- 创建一个Python虚拟环境
- 验证 genie_bundle 文件\
确保 genie_config.json, htp_backend_ext_config.json,以及 tokenizer.json 处于/在……之中 genie_bundle 文件夹
- 配置模型路径\
开放 genie_config.json 并修改 ctx-bins (第50行)如有必要,需包含前提条件中下载的Phi-3模型二进制文件
- 复制QNN SDK文件\
找到您的QNN SDK安装文件夹,并从以下目录中复制文件(SDK版本可能有所不同):
/qairt/2.34.0.250424/lib/hexagon-v73/unsigned
/qairt/2.34.0.250424/lib/aarch64-windows-msvc
/qairt/2.34.0.250424/bin/aarch64-windows-msvc将所有复制的文件粘贴到你的 genie_bundle 文件夹
- 测试设置
从项目根目录执行:
./genie_bundle/genie-t2t-run.exe -c genie_bundle/genie_config.json -p "\nYou are an assistant. Provide helpful and brief responses.\nWhat is an NPU? \n\n\n"备选方案;替代品运行调用(某功能/某脚本)的Python脚本 genie-t2t-run.exe 内部地:
python call_llm.py- 验证NPU使用情况\
大型语言模型(LLM)应作出响应,且神经处理单元(NPU)应显示计算活动 alt text
计算器示例
概述
这个计算器示例展示了模型上下文协议(MCP)的实际应用。计算器客户端连接到计算器服务器,并执行四种基本算术运算:
- 加法加两个数
- 减法两个数相减
- 乘法两个数相乘
- 除法(或“除”)将两个数相除
该示例展示了两种工具调用模式:
- 直接工具调用客户端直接调用带有预定义参数的特定计算器工具
- 基于大型语言模型(LLM)的工具选择客户端利用本地大型语言模型(LLM)智能解析自然语言提示,并自动选择使用哪种计算器工具
运行计算器示例
步骤1:启动计算器服务器
打开终端并从项目根目录运行服务器脚本:
python server/calc_server.py服务器将进行初始化并等待客户端连接。
步骤2:启动计算器客户端
打开一个新的终端,并从项目根目录运行客户端脚本:
python client/calc_client.py客户将:
- 连接到正在运行的服务器
- 检索并显示可用资源、工具和资源模板
- 从服务器读取问候资源
- 执行直接算术运算
- 使用大型语言模型(LLM)解析自然语言提示,并自动执行相应的计算器工具
你应该能看到输出,显示所有操作及其结果。
