分类 AI 下的文章

WSL2 本地 Qwen 模型对接 Windows 桌面应用整体方案报告

报告日期:2026年10月
适用场景:Windows 主机 + WSL2 Ubuntu(Conda 部署 Qwen3.5 9B 量化版),已暴露 OpenAI 兼容 API,要求零付费、无官方额度限制,支持联网搜索、本地文件操作、命令行控制等扩展能力。

一、整体方案概述

核心架构:

  1. 模型侧(WSL2):Qwen3.5 9B 量化版通过 Conda 环境运行,使用 vLLM、llama.cpp server、Ollama 或其他方式暴露 OpenAI 兼容 API(默认监听 0.0.0.0:端口)。
  2. 网络打通:Windows 侧通过 localhost:端口 或 WSL IP 访问 API(必要时配置 Windows 防火墙与端口转发)。
  3. 客户端侧(Windows 桌面应用):选择支持自定义 OpenAI 兼容端点的桌面客户端,连接上述 API。
  4. 能力扩展:统一通过 MCP(Model Context Protocol) 实现工具调用。推荐免费/无额度方案:

    • 网页搜索:DuckDuckGo MCP、自建 SearXNG + MCP
    • 网页抓取:mcp-server-fetch、Playwright 类 MCP
    • 本地文件:@modelcontextprotocol/server-filesystem
    • 命令行:Shell / Windows-MCP / 自定义 shell MCP
    • 浏览器操作:Playwright MCP、Browser MCP、Windows-MCP(UI 自动化)

优势:模型完全本地运行,隐私可控;工具侧优先选择无 Key、无官方额度的开源 MCP,满足“不花钱、不限额”要求。
安全原则:Shell 与文件系统工具务必限制工作目录,并开启“每次确认”模式;不信任的 MCP 不启用。

二、推荐桌面应用对比总览

应用开源情况跨平台支持核心定位自定义 API 支持MCP 支持推荐指数(本场景)
Cherry Studio开源 (AGPL)Windows / macOS / Linux多模型 + Agent + 知识库优秀原生强★★★★★
AnythingLLM开源 (MIT)Windows / macOS / Linux + DockerRAG + Agent 工作区优秀原生强★★★★★
Jan开源 (Apache)Windows / macOS / Linux轻量本地/云端统一聊天优秀支持★★★★☆
Msty闭源(免费版)Windows / macOS / Linux美观多引擎聊天 + Toolbox优秀支持★★★★
Chatbox开源Windows / macOS / Linux / 移动端轻量多端聊天客户端优秀支持★★★☆
PyGPT开源Windows / macOS / Linux全功能助手(工具+Agent+RAG)优秀支持★★★★

三、各应用详细介绍与能力对比

1. Cherry Studio

  • 特性:多模型聚合、内置知识库、Agent 工作流、大量预设助手、中文优化好。不运行模型本身,专注客户端体验。
  • 跨平台:Windows、macOS、Linux 原生桌面应用。
  • 联网访问 / 网页搜索:通过 MCP 或内置搜索插件实现,可接免费 DuckDuckGo / SearXNG。
  • 本地文件操控:通过 filesystem MCP 实现读写(需限制目录)。
  • 网页抓取:fetch 类 MCP 或 Playwright MCP。
  • 命令行操控:支持 Shell MCP / Windows-MCP,可执行 PowerShell/CMD(需谨慎开启)。
  • 浏览器操作:通过 Playwright 或 Windows-MCP 实现点击、输入、截图等。

2. AnythingLLM

  • 特性:以工作区(Workspace)为核心的 RAG 与 Agent 平台,内置免费网页搜索、文档处理、Agent Flows(无代码流程)、定时任务。对本地模型与自定义 API 支持成熟。
  • 跨平台:Windows / macOS / Linux 桌面版 + Docker 自托管。
  • 联网访问 / 网页搜索:内置免费搜索(默认可用,无 Key),也可通过 MCP 扩展。
  • 本地文件操控:内置文件技能 + filesystem MCP,支持读写与知识库导入。
  • 网页抓取:内置抓取技能 + MCP(fetch / scrape)。
  • 命令行操控:通过 MCP 接入 Shell 工具。
  • 浏览器操作:可接 Playwright / Browser MCP 实现较完整浏览器控制。

3. Jan

  • 特性:完全开源、界面简洁类似 ChatGPT,支持本地推理引擎与自定义 API 并存,MCP 已稳定支持。
  • 跨平台:Windows / macOS / Linux。
  • 联网访问 / 网页搜索:通过 MCP(DuckDuckGo、SearXNG、Serper 等)实现,也可接 You.com 等。
  • 本地文件操控:filesystem MCP。
  • 网页抓取:fetch / scrape 类 MCP。
  • 命令行操控:Shell MCP(需自行配置)。
  • 浏览器操作:Browser MCP 或 Playwright MCP。

4. Msty

  • 特性:界面现代美观,支持多引擎(Ollama、llama.cpp 等)管理,Toolbox(MCP 实现)扩展性强,支持 Persona 与知识栈。
  • 跨平台:Windows / macOS / Linux。
  • 联网访问 / 网页搜索:通过 Toolbox 添加搜索 MCP;部分高级实时数据功能需付费版。
  • 本地文件操控:filesystem MCP。
  • 网页抓取:fetch 类 MCP。
  • 命令行操控:Shell MCP。
  • 浏览器操作:可接相关 MCP。

5. Chatbox

  • 特性:轻量、跨端同步好、提示词管理优秀,配置简单。适合纯聊天为主的用户。
  • 跨平台:Windows / macOS / Linux / iOS / Android。
  • 联网访问 / 网页搜索:内置 Web Search 引擎 + MCP(含 Fetch 等)。
  • 本地文件操控:内置文件工具集 + MCP。
  • 网页抓取:内置 Fetch MCP。
  • 命令行操控:通过自定义 MCP 实现(能力相对较弱)。
  • 浏览器操作:有限,主要依赖 MCP 扩展。

6. PyGPT

  • 特性:功能全面的开源桌面助手,内置 Python/OS 执行、终端、Web 搜索插件、MCP 连接器、Agent 工作流、RAG。
  • 跨平台:Windows / macOS / Linux。
  • 联网访问 / 网页搜索:内置 Web Search 插件(DuckDuckGo / Google / Bing)+ MCP。
  • 本地文件操控:内置 Files I/O 插件 + filesystem MCP。
  • 网页抓取:Web Search 插件支持抓取与爬取。
  • 命令行操控:内置 Terminal 工具 + Shell / 自定义命令插件,支持沙箱。
  • 浏览器操作:Canvas 插件 + Playwright 自动化支持。

四、能力对比矩阵(针对本场景)

能力Cherry StudioAnythingLLMJanMstyChatboxPyGPT
免费网页搜索★★★★(MCP)★★★★★(内置+MCP)★★★★★★★★★★★★★★★★★
网页抓取★★★★★★★★★★★★★★★★★★★★★★★★★★
本地文件操控★★★★★★★★★★★★★★★★★★★★★★★★★
命令行操控★★★★★★★★★★★★★★★★★★★★★★
浏览器操作★★★★★★★★★★★★★★★★★★★★★★
整体易用性(中文)★★★★★★★★★★★★★★★★★★★★★★★★★

五、实施建议与落地路径

  1. 短期(1-2 天)

    • 优先测试 AnythingLLM 与 Cherry Studio(两者 MCP 与 Agent 能力最成熟)。
    • 配置免费 MCP:filesystem + DuckDuckGo/SearXNG + fetch。
    • 验证模型工具调用是否正常(Qwen3.5 系列通常支持)。
  2. 中期

    • 根据使用习惯选择主客户端(美观选 Msty,纯开源选 Jan 或 PyGPT,轻量选 Chatbox)。
    • 增加 Windows-MCP 实现更强桌面控制(截图、点击、PowerShell)。
  3. 安全与稳定性

    • API 仅监听本地,必要时加简单鉴权。
    • Shell 工具始终开启人工确认。
    • 定期备份 MCP 配置与知识库。
  4. 备选补充

    • 若更倾向浏览器界面:Open WebUI + 自建 SearXNG(网页搜索体验目前最强)。
    • 若以编码为主:VS Code + Cline 插件。

本方案完全基于现有 WSL2 Qwen API,无需额外付费服务,扩展性强,可根据实际使用频率逐步增加工具。若需要某一应用的详细配置步骤(API 填写、具体 MCP JSON 示例、端口转发命令等),可进一步指定应用名称提供落地手册。

FreeLLMAPI 的用法就 4 步:安装 → 加各家免费 Key → 拿统一 Token → 当 OpenAI 接口调。

一、方式 A:Docker 一键(最省事)

curl -fsSL https://freellmapi.co/install.sh | bash

装完打开 http://localhost:3001

二、方式 B:Docker Compose(推荐常驻)

git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
ENCRYPTION_KEY="$(openssl rand -hex 32)" printf "ENCRYPTION_KEY=%s\nPORT=3001\n" "$ENCRYPTION_KEY" >.env
docker compose up -d

浏览器进 http://localhost:3001 → Keys 页面 加 Google / Groq / Mistral / OpenRouter / 智谱 / Moonshot 等免费 Key → 页面顶部复制 freellmapi-xxxx 统一 Token。

想让同局域网其他设备访问:
HOST_BIND=0.0.0.0 docker compose up -d(只在自家信任网络这么干,别公网暴露)

三、方式 C:本机跑源码(Node 20+)

git clone https://github.com/tashfeenahmed/freellmapi.git
cd freellmapi
npm install
cp .env.example .env
echo "ENCRYPTION_KEY=$(node -e "console.log(require('crypto').randomBytes(32).toString('hex'))")" >> .env
npm run dev

四、怎么调(跟 OpenAI 一模一样)

from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:3001/v1",
    api_key="freellmapi-xxxx",   # 面板里拿的统一 Token
)

resp = client.chat.completions.create(
    model="auto",                # 自动选可用模型;也可写 gemini-2.5-flash / llama-3.3-70b-versatile
    messages=[{"role":"user","content":"用一句话解释乡愁"}],
)
print(resp.choices[0].message.content)
print("实际路由:", resp.headers.get("x-routed-via"))

curl 也行:

curl http://localhost:3001/v1/chat/completions \
  -H "Authorization: Bearer freellmapi-xxxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","messages":[{"role":"user","content":"hi"}]}'

五、接编码工具

  • Claude Code:npx freellmapi setup-claude
  • Codex / Aider / 任意 OpenAI 兼容客户端:

    export OPENAI_BASE_URL=http://localhost:3001/v1
    export OPENAI_API_KEY=freellmapi-xxxx

六、新手别踩的坑

  1. 加完 Key 等 1–2 分钟健康检查,别立马调,否则报“无可用模型”
  2. 它是单用户本机网关,不是多用户 SaaS,别直接挂公网
  3. 免费层会 429,靠 Fallback Chain 自动切换;别拿来做生产 SLA
  4. ENCRYPTION_KEY 别丢,丢了之前存的 provider Key 解不出来
  5. 本地模型也能加:Ollama / vLLM / LM Studio 填 http://host.docker.internal:11434/v1 当自定义 provider

安装概述

  • 系统:Windows 11 25H2
  • 目标:WSL2 + Ubuntu 24.04 装到 D 盘 + 镜像网络 + 不用 uv/不用 conda + 直接系统 pip 装 Parlor 依赖 + 源码编译 llama.cpp CUDA 版 + 跑 Gemma 4 E2B + 浏览器对话

阶段一:Windows 侧(PowerShell 管理员)

1. 装 WSL2 平台 + Ubuntu 24.04(先落 C 盘,后面迁 D)

wsl --install -d Ubuntu-24.04

装完会让你设 Linux 用户名/密码。设完退出。

2. 迁到 D 盘

wsl --shutdown
mkdir D:\WSL2
wsl --export Ubuntu-24.04 D:\WSL2\ubuntu24.tar
wsl --unregister Ubuntu-24.04
wsl --import Ubuntu-24.04 D:\WSL2\Ubuntu-24.04 D:\WSL2\ubuntu24.tar --version 2

(以后物理文件在 D:\WSL2\Ubuntu-24.04\ext4.vhdx)

3. 写镜像网络配置(不重开 PowerShell,用 wsl --shutdown 重启 WSL 即可)

记事本写 C:\Users\你的Windows用户名\.wslconfig:

[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
localhostForwarding=true
memory=12GB
processors=12

然后 PowerShell 执行(这就是“重启 WSL 让配置生效”的命令,不需要关 PowerShell 窗口):

wsl --shutdown

再进 Ubuntu 就已是镜像网络。

阶段二:进 WSL2 Ubuntu(开始菜单点 Ubuntu 24.04,或 wsl -d Ubuntu-24.04)

4. 基础包 + CUDA 用户态头文件

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3.12 python3.12-venv python3-pip git curl cmake build-essential libcurl4-openssl-dev
sudo apt install -y nvidia-cuda-toolkit   # 提供 nvcc + headers,匹配你 3060

验证驱动穿透(不重开终端):

nvidia-smi

5. 编译 llama.cpp CUDA 版(build ≥ 9503)

cd ~
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
sudo ln -sf ~/llama.cpp/build/bin/llama-server /usr/local/bin/llama-server
llama-server --version   # 应显示 build 10xxx

6. 装 Parlor 的 Python 依赖(不用 uv、不用 conda,直接用系统 pip 装进一个 venv)

cd ~
git clone https://github.com/fikrikarim/parlor.git
cd parlor
python3.12 -m venv .venv
source .venv/bin/activate   # ← 这条就是“不重开终端让 venv 生效”的命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .

7. 让 llama-server 路径对当前 shell 生效(不重开终端)

export PATH="/usr/local/bin:$PATH"
which llama-server   # 当前终端立即认得

8. 走 HF 镜像下模型(避免直连超时)

export HF_ENDPOINT=https://hf-mirror.com
export MODEL=e2b

阶段三:启动 + 浏览器

9. 起 Parlor 服务(当前终端接着用)

cd ~/parlor
source .venv/bin/activate
export MODEL=e2b
export HF_ENDPOINT=https://hf-mirror.com
export PATH="/usr/local/bin:$PATH"
python src/parlor/server.py --host 0.0.0.0 --port 8000

首次会自动从 HF 镜像下 gemma-4-E2B-it-qat-q4_0.gguf(~2.6GB)+ mmproj,加载完打印:

Uvicorn running on http://0.0.0.0:8000

10. Windows 浏览器打开

http://localhost:8000

允许麦克风加摄像头 → 说话 → 英文口语老师对话。


11. 以后每次要运行时

打开Powershell输入wsl按回车再输入以下命令回车然后打开浏览器http://localhost:8000

cd ~/parlor && export PATH="/usr/local/bin:$PATH" && export HF_ENDPOINT=https://hf-mirror.com && export MODEL=e2b && .venv/bin/python src/parlor/server.py --host localhost --port 8000

12. 利用cloudflared tunnel实现手机也可以访问

cd ~
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

运行以后打开一个新的wsl窗口执行

cloudflared tunnel --url http://localhost:8000

先决条件:
windows11系统
2060 12g显卡

所需文件及下载地址:
https://pan.baidu.com/s/1dRuSXr8Igd73ez-LxVLuBQ?pwd=4h4V

llama文件:
llama-b9496-bin-win-cuda-12.4-x64.zip 这是llama的压缩包

Qwen模型:
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_NL.gguf 这是推荐的使用的模型
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf 这是备用模型
mmproj-Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-f16.gguf 这是支持处理图像的模型

llama启动文件:
llama.bat 这个文件里面根据我的显卡设定的

下载好所有的文件后
解压缩llama的压缩包到d盘根目录
进入llama-b9496-bin-win-cuda-12.4-x64这个文件夹新建一个models文件夹
进入models文件夹将
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_NL.gguf和
mmproj-Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-f16.gguf拷贝进去

打开llama.bat文件会弹出一个命令行窗口
这时候稍等一会初次运行会初始化
稍等片刻打开浏览器输入127.0.0.1:8080

就可以使用Qwen3.6了

不会设置的可以联系我QQ63164436