本地LLM模型执行工具

该项目展示了在Snapdragon Elite X NPU上本地运行Phi-3.5-mini-instruct LLM模型,并通过模型上下文协议(MCP)增强其功能,支持工具执行、AI驱动的工具选择和采样等交互模式。

  • by Gerr1ck
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Gerr1ck/MCP-with-local-LLM

使用说明

带有本地大型语言模型的MCP(或:集成本地大型语言模型的MCP)

此项目展示了如何在搭载了增强型模型上下文协议(MCP)功能的骁龙Elite X NPU上本地运行Phi-3.5-mini-instruct大型语言模型(LLM)。

概述

MCP的实现展示了三种关键的交互模式:

  • 工具执行MCP客户端从MCP服务器调用工具
  • 基于人工智能的工具选择MCP客户端使用本地大型语言模型(LLM)来智能选择要调用的MCP服务器工具
  • 抽样MCP服务器请求MCP客户端执行提示

先决条件

  1. 安装 Python 3.10

  2. 下载并安装QNN SDK
    可在……获取 高通软件中心

  3. 下载Phi-3.5-Mini-Instruct上下文二进制文件
    获取 .bin 来自(某处的)文件 高通AI中心 并将它们提取到您希望的文件夹中(例如。, C:\LLM\phi_3_5_mini_instruct)

设置

  1. 创建一个Python虚拟环境

  2. 验证 genie_bundle 文件
    确保 genie_config.json, htp_backend_ext_config.json,以及 tokenizer.json 处于/在……之中 genie_bundle 文件夹

  3. 配置模型路径
    开放 genie_config.json 并修改 ctx-bins (第50行)如有必要,需包含前提条件中下载的Phi-3模型二进制文件

  4. 复制QNN SDK文件
    找到您的QNN SDK安装文件夹,并从以下目录中复制文件(SDK版本可能有所不同):

    <QNN-SDK ROOT>/qairt/2.34.0.250424/lib/hexagon-v73/unsigned
    <QNN-SDK ROOT>/qairt/2.34.0.250424/lib/aarch64-windows-msvc
    <QNN-SDK ROOT>/qairt/2.34.0.250424/bin/aarch64-windows-msvc
    

    将所有复制的文件粘贴到你的 genie_bundle 文件夹

  5. 测试设置 从项目根目录执行:

    ./genie_bundle/genie-t2t-run.exe -c genie_bundle/genie_config.json -p "<|system|>\nYou are an assistant. Provide helpful and brief responses.\n<|user|>What is an NPU? \n<|end|>\n<|assistant|>\n"
    

    备选方案;替代品运行调用(某功能/某脚本)的Python脚本 genie-t2t-run.exe 内部地:

    python call_llm.py
    
  6. 验证NPU使用情况
    大型语言模型(LLM)应作出响应,且神经处理单元(NPU)应显示计算活动

计算器示例

概述

这个计算器示例展示了模型上下文协议(MCP)的实际应用。计算器客户端连接到计算器服务器,并执行四种基本算术运算:

  • 加法加两个数
  • 减法两个数相减
  • 乘法两个数相乘
  • **除法(或“除”)**将两个数相除

该示例展示了两种工具调用模式:

  1. 直接工具调用客户端直接调用带有预定义参数的特定计算器工具
  2. 基于大型语言模型(LLM)的工具选择客户端利用本地大型语言模型(LLM)智能解析自然语言提示,并自动选择使用哪种计算器工具

运行计算器示例

步骤1:启动计算器服务器

打开终端并从项目根目录运行服务器脚本:

python server/calc_server.py

服务器将进行初始化并等待客户端连接。

步骤2:启动计算器客户端

打开一个新的终端,并从项目根目录运行客户端脚本:

python client/calc_client.py

客户将:

  1. 连接到正在运行的服务器
  2. 检索并显示可用资源、工具和资源模板
  3. 从服务器读取问候资源
  4. 执行直接算术运算
  5. 使用大型语言模型(LLM)解析自然语言提示,并自动执行相应的计算器工具

你应该能看到输出,显示所有操作及其结果。