浏览器本地LLM推理服务

一个基于Playwright和@mlc-ai/web-llm的MCP服务器,用于在浏览器中进行本地LLM推理,支持文本生成、聊天、模型管理等功能。

  • by ragingwind
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 ragingwind/web-llm-mcp-server

使用说明

Web LLM MCP服务器

一个MCP服务器,使用Playwright加载包含@mlc ai/web llm的HTML页面并与之交互,以进行本地llm推理。

特性

  • 基于浏览器的LLM:使用在Chromium浏览器实例中运行的@mlc ai/web llm
  • 剧作家整合:自动化浏览器交互,实现无缝LLM操作
  • 多种工具:生成文本、聊天、检查状态、更改模型和截图
  • 模型管理:支持各种具有动态切换的Web LLM模型

可用工具

playwright_llm_generate

通过浏览器界面使用Web LLM生成文本。

参数:

  • prompt (string):生成文本的提示
  • systemPrompt (字符串,可选):系统提示设置上下文
  • maxTokens (数字,可选):要生成的最大令牌数
  • temperature (数字,可选):发电温度(0-1)
  • model (字符串,可选):要使用的模型(如果不同,将重新初始化)

playwright_llm_chat

启动交互式聊天会话并返回响应。

参数:

  • message (string):聊天中要发送的消息
  • clearHistory (布尔值,可选):发送前清除聊天记录

playwright_llm_status

获取Web LLM Playwright界面的当前状态。

playwright_llm_set_model

更改当前的Web LLM模型。

参数:

  • model (string):要切换到的型号ID

playwright_llm_screenshot

截取Web LLM界面的屏幕截图。

参数:

  • path (字符串,可选):保存屏幕截图的路径

支持的型号

  • Llama-3.2-1B-Instruct-q4f32_1-MLC (默认)
  • Llama-3.2-3B-Instruct-q4f32_1-MLC
  • Phi-3.5-mini-instruct-q4f16_1-MLC
  • gemma-2-2b-it-q4f32_1-MLC
  • Mistral-7B-Instruct-v0.3-q4f16_1-MLC
  • Qwen2.5-1.5B-Instruct-q4f32_1-MLC

安装

  1. 安装依赖项:
pnpm install
  1. 安装Playwright浏览器:
npx playwright install chromium

用法

启动MCP服务器:

node index.js

或者运行测试:

node test.js

技术细节

服务器的工作原理如下:

  1. 使用Playwright启动无头Chromium浏览器
  2. 正在加载 index.html 包含Web LLM接口的文件
  3. 正在等待Web LLM模型初始化
  4. 通过以下方式展示浏览器功能 window.webllmInterface 对象
  5. 提供调用这些浏览器功能的MCP工具

HTML界面提供了一个完整的Web LLM实现,包括:

  • 模型初始化和加载进度
  • 测试聊天界面
  • 用于编程访问的JavaScript API
  • 错误处理和状态报告

备注

  • 第一次运行会变慢,因为它会下载和初始化LLM模型
  • 默认情况下,浏览器以无头模式运行
  • 可以拍摄屏幕截图来调试界面
  • 模型切换需要重新初始化,这需要时间
  • 该界面在HTML文件#项目中完全独立

项目