Skip to content

CH 16 · 本地部署与 Token 自由

全文字数3653 字预估耗时约 25 分钟前置CH 06(自定义提供方)难度可照做

本章目标

前面这么多章,你调的一直是 DeepSeek 官方 API——好用,但是按量计费,Agent 会话又特别能吃 token(每步工具结果都要喂回上下文)。而且这不只是 DeepSeek 一家的事:只要走云端 API,不管官方还是第三方,按量付费躲不掉。

这一章给你一条彻底不同的路:本地部署。把开源模型下载到你自己电脑上跑,推理全程不经过任何第三方服务器——没有 token 账单,就是真正的"Token 自由"。

做法在 CH 06 你已经学过:dsh 只认"OpenAI 兼容端点",模型是配置不是绑定。本章就是把这个能力用到一个真实场景——让 dsh 跑在你自己的模型上

本地部署和调用云端,差在哪

先搞清楚"为什么本地部署不用钱"。你用 DeepSeek 官方 API 时,提示词、工具结果、文件内容都要发到它的服务器,由它用自家 GPU 推理,再按 token 收费。不管哪家的云端 API 都这样:算力是人家的,账单就跟着 token 走。

本地部署是反过来的:模型下载到你电脑上,推理跑在你自己的显卡/CPU 上,没有第三方服务器参与。算力是你自己的、电费是你自己出的,自然就没有按 token 的账单——这就是"Token 自由"的本意。

维度云端 API(如 DeepSeek 官方)本地部署(LM Studio 跑开源模型)
计费按 token 计费免费(只花电费)
联网必须联网可完全离线
数据会送到服务商服务器不出本机
能力旗舰模型,最强取决于你的显卡能跑多大模型
上手成本零,注册就有 Key装软件、下载模型(几个 GB)

本地部署的特色一句话:免费、离线、私密,但能力受限于你的硬件——你显卡越强,能跑的模型越大,效果越好。

原理:模型即配置

dsh 之所以能随便换模型,靠的是模型路由插件 llm-pi-ai:它把"模型供应商"当成一段 YAML 配置,任何暴露 OpenAI Chat Completions 协议(也就是 /v1/chat/completions)的端点,都能接进来当提供方。换模型 = 换一段配置,不用改 dsh 本身。

dsh 只认 OpenAI 兼容端点

所以本地部署和接官方 API,做法在 CH 06 都见过,只是端点地址不同

方向Base URL密钥典型模型
DeepSeek 官方(云端)https://api.deepseek.com官方 Keydeepseek-v4-flash 等
LM Studio 本地http://localhost:1234/v1随意(本地忽略)Qwen3 8B 等

接本地模型:LM Studio 上手

第 1 步:装 LM Studio、下载一个模型

本地模型运行器不止一个:你要是熟悉 Ollama,也可以直接用 Ollama(命令行上手,配置方式跟下面一模一样)。这一章统一用 LM Studio 演示——带图形界面,对新手最友好。

LM Studio 支持 Windows / macOS / Linux,去LM Studio 官网下载安装包装上就行。

装好后,先别急着猜该下哪个模型,直接把这件事交给 dsh——它自己会检查你电脑的环境,再给你推荐。在 Web UI 的输入框里发这条:

text
检查我这台电脑的显卡和显存,按 Q4 量化估算能舒服地跑多大参数的本地模型;推荐 2~3 个适合本地 Agent 的模型(必须支持工具调用),给出在 LM Studio 搜索框里能直接搜到的模型名,每个一句话说明理由。只做查询和推荐,不要做其他操作。

dsh 会读出你的显卡、给你列几个具体模型名。拿着名字去 LM Studio 里搜就行。

打开 LM Studio:左下角 设置 → 探索,在搜索框里搜 dsh 推荐的那个模型名。搜索结果里打上绿色标签(表示兼容你的硬件、可以全 GPU 加载)的条目,就是你这台机器能跑的,直接点下载。

LM Studio 探索页:搜 Gemma 4 E2B,标注全 GPU 卸载与视觉/工具/思考功能

一个不变的提醒:本地模型跑 Agent,工具调用能力比跑分重要——模型要能听指令去调工具,否则 Agent 转不动。

第 2 步:打开本地服务器、确认端点活着

模型下载完成后,LM Studio 左下角 设置 → 本地模型 → 本地模型API(Local Server),把 本地API服务器 开关打开。默认监听 http://localhost:1234,OpenAI 兼容端点挂在 /v1 下——页面上会直接显示基础 URL http://localhost:1234/v1,看到"正在运行"就说明服务器起来了。

LM Studio 本地模型 API 服务器:运行中,基础 URL 为 localhost:1234/v1

浏览器打开:

http://localhost:1234/v1/models

能看到 JSON 里列出你下载的模型,就说明端点没问题。这一步顺带能看到每个模型的准确 ID(以这里返回的为准,比如我下载的 Gemma 4 E2B 显示为 gemma-4-e2b-it-qat),后面填配置要用。

localhost:1234/v1/models 返回的模型列表 JSON

资源库里的模型参数

想看看模型跑起来用了哪些参数?左下角 设置 → 本地模型 → 资源库,找到你的模型,点它右侧的设置按钮,会打开"模型默认设置"页:

LM Studio 资源库:我的模型列表,Gemma 4 E2B Instruct QAT 4.34GB

LM Studio 模型默认设置:Automatic Optimize Based on Hardware 等,全部默认

里面分提示词、上下文与性能、生成三块。Automatic Optimize Based on Hardware(按硬件自动优化,标着 RECOMMENDED)默认开着,上下文长度、GPU 卸载这些全是 AUTO——LM Studio 会按你的电脑自动调。本章演示全部用默认值,一个都不用改;以后要调再回来这里。

第 3 步:在 dsh 里加"自定义提供方"

按 CH 06 的方式二走:设置 → 模型 → 添加自定义提供方,填:

要填的填什么
Provider IDlm-studio-local(小写)
API 地址http://localhost:1234/v1
API 协议OpenAI Chat Completions 兼容
密钥随便填(本地不校验,填 lm-studio 占位即可)
模型上一步 /v1/models 里看到的完整 ID

dsh 设置 → 模型 → 添加自定义提供方:Provider ID lm-studio-local、API 地址 http://localhost:1234/v1、协议 openai-completions、模型 gemma-4-e2b-it-qat

效果与期望管理

  • 好处:完全离线、零 API 费用、代码和文档不出本机——隐私敏感的场景,本地模型是唯一选择。
  • 现实:本地小模型是拿来"跑通循环"的,不是拿来干重活的。Agent 特别吃工具调用和长上下文,小模型会比旗舰模型更容易漏工具调用、计划得糙。插件开发时拿它测试很合适,真要干活还是切回云端模型

这里演示部署的 Gemma 4 E2B 是视觉模型(Google 官方:E2B 带视觉编码器,支持图片输入)——但它想在 dsh 里真正收图识图,还得声明一下:dsh 的自定义提供方默认按纯文本处理,不声明就把图片当无效输入拒绝(CH 06 讲过)。做法:在 dsh 的设置窗口点右上角打开配置文件,找到 llm-pi-ai.providers.lm-studio-local.models 下对应模型,补一行 input: [text, image]

yaml
llm-pi-ai:
  providers:
    lm-studio-local:
      apiKeyEnv: LM_STUDIO_API_KEY
      api: openai-completions
      baseURL: http://localhost:1234/v1
      models:
        - id: gemma-4-e2b-it-qat
          input: [text, image]

保存后重开会话,给它发张图就能识图了。

dsh 里选中 gemma-4-e2b-it-qat 新会话,让它做个简单任务正常回话

工具调用也能跑通:演示时发了一句"创建一个 txt 文件告诉我你是谁",模型真的去调了 write 工具——中途报错重试了几次,最后成功写出了 identity.txt。这证明本地模型能真正跑 dsh 的工具循环,不只是聊天;只是没旗舰那么稳,报错会多几次。

本地模型调用 write 工具创建 txt 文件:报错重试后成功

本地还是云端:怎么选

场景选谁
日常干活、要最强效果云端 API(按量,省心)
简单的每日任务,例如之前用 aihot 做的定时热点简报LM Studio 本地模型(离线,免费)

它们不是互斥的:dsh 的提供方可以同时挂好几个,新会话里随手切。成本敏感时把日常会话路由到 flash、把重活留给 pro,就是最简单的省钱姿势;本地模型再给测试和隐私场景兜底。

常见坑

怎么避开
Base URL 写错OpenAI 兼容端点通常以 /v1 结尾,先浏览器开 GET {baseURL}/models 验证
密钥环境变量没设apiKeyEnv 只引用不创建;确认 dsh 启动的环境里真能读到这个变量
模型 ID 对不上本地模型必须用 /v1/models 里返回的完整 ID(厂商/模型名),别凭印象填
图片报错、提示不支持识图自定义提供方的模型默认按纯文本处理——即使模型本身支持识图,也要在提供方配置里给模型加 input: [text, image]
本地模型老是漏工具调用不是配错了,是小模型能力边界——回云端模型或换更大的本地模型

这一章你学到了什么

  • [ ] 说清"模型即配置":dsh 只认 OpenAI 兼容端点,换模型 = 换一段提供方配置
  • [ ] 说清本地部署和云端 API 的本质区别:为什么不用钱(算力是自己的)、离线、数据不出本机
  • [ ] 会用 LM Studio 下载模型、打开本地服务器,确认 localhost:1234/v1/models 活着
  • [ ] 会在 dsh 加 lm-studio-local 自定义提供方并成功跑一个本地会话
  • [ ] 知道视觉模型要标 input: [text, image],知道本地小模型适合测试不适合干重活

Open Source · MIT · Community Driven