BWH Compass

在 VPS 上使用大模型:API 调用还是本地推理

调用模型 API 时,主要计算发生在服务商;本地推理则需要自己承担模型权重、内存和算力。普通 VPS 不会因为安装一个客户端就拥有大型模型的计算能力。

BWH Compass 编辑整理更新于 约 5 分钟阅读

1. 区分调用模型 API 与本地运行模型#

调用 API 时,VPS 主要运行你的应用并通过网络请求模型服务;本地推理则需要下载权重并使用本机 CPU/GPU 与内存。一个应用“部署在自己的 VPS”并不代表模型或全部数据也留在本机。

小型 VPS 适合学习 API、轻量自动化和中转自己的应用请求;大型模型本地推理需要按权重、精度、上下文和并发估算内存/显存。不要只看模型参数量或压缩包大小就承诺某套餐能流畅运行。

2. 从官方控制台准备受限密钥#

以 DeepSeek 为例,从官方平台创建自己的 API Key,核对可用模型、余额、计费和速率限制。聊天网站订阅与 API 额度可能是不同产品。密钥只放服务器受限配置或秘密管理系统,不放网页 JavaScript。

模型名称会变化,应从官方当前文档或账户模型列表复制。本文更新时官方快速入门使用 deepseek-flash;实际接入仍要核对账户可用范围,不能沿用旧文章中的退役模型名。

3. 用一次小请求验证连接#

Python 虚拟环境中保存以下脚本。它只发一条简单问题,不携带私人文件,密钥通过隐藏输入读取。

python
import getpass
import json
import urllib.request

key = getpass.getpass('API Key:')
model = input('模型名称(从官方文档复制):').strip()
payload = {
    'model': model,
    'messages': [{'role': 'user', 'content': '用一句话解释 DNS。'}],
    'stream': False,
    'thinking': {'type': 'disabled'},
    'max_tokens': 128,
}
request = urllib.request.Request(
    'https://api.deepseek.com/chat/completions',
    data=json.dumps(payload).encode(),
    headers={'Content-Type': 'application/json',
             'Authorization': 'Bearer ' + key},
    method='POST',
)
with urllib.request.urlopen(request, timeout=90) as response:
    result = json.load(response)
print(result['choices'][0]['message']['content'])

这会产生真实 API 用量。示例关闭思考模式,用较小的输出上限验证基本连接,避免思考过程占满输出额度。收到回答后同时查看控制台用量,确认调用的是预期模型;模型支持的参数应以当前官方接口说明为准。

4. 按状态码处理失败#

401/403 先查密钥和权限,模型不存在查名称与账户范围,429 查额度/频率,超时查网络与请求复杂度。设置有限重试和退避,不能无限循环重发相同请求造成费用增长。

流式响应需要客户端持续读取并处理断线,反向代理也要支持相应超时与缓冲设置。日志记录状态、耗时和请求编号即可,默认不记录完整密钥与私人提示词。

5. 接入应用时限制输入、费用和工具权限#

为单次请求设置输出上限与超时,为用户或任务设置频率和预算。上传知识库前确认有权处理这些资料,了解外部模型服务的数据规则。模型回答用于辅助判断,重要操作仍要由确定的业务校验约束。

如果 Agent 能执行命令或发送消息,使用独立用户和工作目录,限制工具与网络权限,避免让一条网页内容触发高权限操作。应用示例继续看n8nDifyOpenClawHermes Agent

完成后检查

模型选择应依据自己的测试样例;不要把宣传中的最大上下文当作当前套餐与请求必然可用。

官方资料与相关入口