没有money充值了怎么办:两种方式总有一种适合你
本文最后更新于39 天前,其中的信息可能已经过时,如有错误请发送邮件到originzeng@qq.com

省下 API 费用:本地部署大模型,再把免费额度拼成一个网关

现在我的日常生活已经离不开 AI,但 AI 的价格问题摆在那里。为了省点 money,不得不找找别的招数,那就做本地部署。

本地部署的好处是数据全程在本地电脑流通,并且可以离线使用。

不过事先说明:消费级显卡能跑的本地模型,能力上确实比不过云端的大模型。所以这篇文章分两段——先讲怎么把模型跑在自己电脑上,再讲怎么搭一个网关,把各家服务商的免费额度拼起来用。

先看清自己的硬件

第一步,先了解自己电脑的显存和内存。最简单的方法是打开设置看。

查看显存和内存

我这台 Windows 电脑是 8GB 显存 + 16GB 内存,所以我只能用体积在 8GB 以下的模型。

这里有个容易踩的坑:模型体积和运行时占用不是一回事。下载体积 7.6GB 的模型,实际加载后还要加上上下文缓存(KV cache),占用会再高一些。所以选模型时要留出一点余量,

但让AI帮忙的话他可能出错用「设备管理器」或 Win32_VideoController 查显存。它读的 AdapterRAM 字段是 32 位上限,4GB 以上的显卡会被截断成错误数字,因为我之前就被AI骗了(扶额苦笑),所以讲一下用终端看。

Windows:查看显存和内存

如果有 NVIDIA 显卡,用 nvidia-smi 最准(Win + R 输入 powershell 回车后执行):

nvidia-smi --query-gpu=name,memory.total --format=csv

看内存:

Get-CimInstance Win32_ComputerSystem |
  Select-Object @{n='RAM_GB';e={[math]::Round($_.TotalPhysicalMemory/1GB,1)}}

没有 NVIDIA 显卡的话,按 Ctrl + Shift + Esc 打开任务管理器,「性能」标签页里能看到 GPU 和内存的实时占用。

macOS:查看统一内存

Apple 芯片是统一内存架构,显存和内存是同一份,没有独立的 VRAM。所以要看的是整机内存总量:

system_profiler SPHardwareDataType | grep -E "Chip|Memory"

因为显存和内存共用,Mac 上能不能跑某个模型,取决于整机内存还剩多少。这也是为什么 Mac 上「8GB 显存 + 16GB 内存」这种分法不适用——你只有一个内存池,GPU 和 CPU 都从里面取。

用 Ollama 把模型跑起来

打开 Ollama 官网 并下载,再打开 Models 页面,根据自己的需求和电脑配置选择合适的模型。

Ollama 官网
Ollama 模型列表

我选的是 gemma4:12b

在模型库里挑一个符合自己配置的。我这里选择 gemma4:12b。

在 Ollama 官方库里,gemma4:12b 的下载体积是 7.6GB,上下文窗口 256K,而且支持文本 + 图像。对我的 8GB 显存来说刚好卡在能跑的范围里。

模型名称和体积会随官方库更新而变化。下笔时的数据是 7.6GB / 256K 上下文,实际以 Ollama 模型库 当时显示的为准。

拉取模型

Windows(Win + R 打开「运行」,输入 powershell 回车):

ollama pull gemma4:12b

macOS(Ollama 装好后会常驻在菜单栏,直接在终端里执行):

ollama pull gemma4:12b

验证是否拉取成功

下载完成后,先确认模型确实在本地。两个系统这条命令一样:

ollama list

能看到 gemma4:12b 出现在列表里,就说明拉取成功了。

在 Ollama 里直接对话

打开 Ollama,在 chat 界面就可以选择并使用本地部署的模型了。

Ollama 对话界面

现在已经部署好模型。但是应该没有人会一直在 Ollama 里对话吧——我们更需要把模型导出到其他工具里使用。

把本地模型接进自己的工具

Ollama 自带 OpenAI 兼容接口,地址是固定的:

http://localhost:11434/v1

本地调用不需要真实的 API Key,随便填一个字符串就行。注意这里说的是「随便填」,不是「留空」——OpenAI 格式的客户端一般会强制要求这个字段有值,Ollama 只是不校验它。

官方文档里给的示例也是这个套路:api_key='ollama',注释写得很直白,required but ignored。

先用一条命令验证接口通不通

在配置客户端之前,建议先用 curl 直接打一次接口,这样能分清到底是 Ollama 的问题还是客户端配置的问题。

Windows PowerShell:

curl.exe http://localhost:11434/v1/chat/completions `
  -H "Content-Type: application/json" `
  -d '{\"model\":\"gemma4:12b\",\"messages\":[{\"role\":\"user\",\"content\":\"说一句话测试\"}]}'

macOS:

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"gemma4:12b","messages":[{"role":"user","content":"说一句话测试"}]}'

返回的 JSON 里能看到模型回复的内容,就说明本地接口是好的,接下来只需要把地址抄进客户端。

PowerShell 的 curl 其实是 Invoke-WebRequest 的别名,参数和真正的 curl 不兼容,所以上面写的是 curl.exe。另外 PowerShell 里 JSON 字符串的双引号要转义,这也是我踩过的坑。

下面是接入时三个字段该怎么填(以 DSH 为例):

字段值
API 地址 / Base URLhttp://localhost:11434/v1
API Key / 密钥ollama(本地不校验,随便填)
模型名你拉取的模型,如 gemma4:12b

以 DSH 为例

打开设置里的模型(Models)页面,点「添加提供方」,选择或填写 OpenAI 兼容(openai-completions)类型,然后把上面三个值填进去:

  1. Base URL 填 http://localhost:11434/v1;
  2. API Key 随便填,比如 ollama;
  3. 模型名填 gemma4:12b。
DSH 添加提供方
DSH 填写模型信息

保存后选择你配置的模型就可以使用了。

如果客户端提示连不上,先确认 Ollama 正在运行。Windows 上它是托盘区的常驻程序,macOS 上是菜单栏图标;也可以直接执行 ollama list 来判断服务是否还活着。

Codex 和 VS Code 也一样

Codex 和 VS Code 也是同理:安装插件,补充 URL 地址,填上模型名字就行,密钥同样可以随便输入。这三个字段是 OpenAI 格式的通用约定,换工具不影响。

但它还是有点蠢

由于消费级显卡能运行的本地模型比较小,所以它还是蠢蠢的。

本地模型的实际表现

这不是配置问题,是模型规模的问题。参数量小,推理能力、代码能力、多步任务的稳定性都会打折扣。花钱买的是能力,不是配置技巧,这一点得认。

换思路:自建一个 LLM 网关

所以,现在想到的办法是自建一个 LLM 网关,用同一个接口,调用多个 AI 服务商的模型。

因为他们每天都有免费额度,把他们综合起来,就能满足我们每天的额度需要,还能用上更强的模型。

但要注意,这就不是本地部署了。请求会发到各家服务商的服务器,数据的隐私边界也跟着变了。

下载 new-api

new-api 是一个开源软件,把很多家 AI 服务商聚合成一个统一接口。

  • 官方网站: https://github.com/QuantumNous/new-api
  • 使用文档: https://docs.newapi.ai/

下载完成后启动网关

先在 PowerShell 里进入程序所在目录,再设置会话密钥,然后启动。

Windows:

Set-Location 'D:\newapi-local'

# 会话密钥(随便一串字符就行)
$env:SESSION_SECRET = 'my-secret-key-change-me-1234567890'

# 启动
.\new-api.exe

macOS:

cd ~/newapi-local

# 会话密钥(随便一串字符就行)
export SESSION_SECRET='my-secret-key-change-me-1234567890'

# 启动
./new-api

PowerShell 里的 $env:SESSION_SECRET 只在当前窗口有效,关掉窗口就没了。所以每次重启电脑后,都要重新执行这三行。

成功的标志: 窗口里出现类似这样的日志,并且不再往下滚动。

[SYS] ... New API ...
[INFO] ... listening on :3000 ...

然后浏览器打开 http://localhost:3000,注册好就可以开始使用了。

首次启动时 Windows 防火墙可能弹出提示,选择允许即可,否则本机以外的设备访问不到这个端口。

注册 AI 服务商,拿到密钥

现在去注册 AI 服务商,拿到他们提供的 API 密钥 / 令牌。

这一步因为每个 AI 服务商都不一样,所以不再细述注册方法,但大多数可以用 GitHub 直接登录。

自己去找合适的服务商。写这篇文章时,国内推荐 ModelScope 魔搭,国外推荐 Cloudflare Workers AI。

创建渠道

拿到 API 后,点击「渠道」,再点击「创建渠道」。

一般选择 OpenAI,因为它是通用的格式;如果能搜到,也可以使用别家提供商。

创建渠道

填入以下信息,获取模型成功后选择好所需要的模型:

填写渠道信息

Cloudflare的一个坑:我在使用时,Cloudflare 虽然可以搜到,但是一直不能使用,最后换了 OpenAI 格式才能用。它会显示「无法从上游获取模型」,需要自己手动输入前缀 @cf/。

后面我才发现,这是 Cloudflare Workers AI 的模型命名规则:它的模型 ID 是 @cf/作者/模型名 的格式,比如 @cf/openai/gpt-oss-120b。所以填模型名时不能漏掉这个前缀。

模型名称填写

创建网关自己的 API 密钥

都配置好后,点击「API 密钥」,点击「创建 API 密钥」,就可以通过此 API 密钥导入其他 Agent 里了。

创建 API 密钥

任何支持 OpenAI 格式的 Agent,填这三个值就可以了:

字段值
API 地址 / Base URLhttp://localhost:3000/v1
API Key / 密钥你的 sk- 令牌
模型名渠道里配置的名字(如 @cf/openai/gpt-oss-120b)

注意 new-api 是本地运行的程序,所以在使用这个密钥时,要先按前文的命令把网关启动起来,否则客户端会直接连接失败。

顺便说一下云端部署

也可以通过同样的办法配置到你的云服务器中,这样不用电脑一直启动也能使用,还可以分享给你的朋友使用。但由于我云服务器配置不够,所以不多解释,原理是一样的——把程序跑在服务器上,然后把 Base URL 里的 localhost 换成服务器的 IP 就行。

错误码对照

这一节是我在配置过程中实际撞到的报错。

报错真实含义怎么处理
401 Invalid token你用的不是网关令牌,或者令牌没建检查是否用了 sk- 开头的令牌,不是上游密钥
401 Authentication error上游密钥权限不足重新创建密钥,权限要选对
402 Insufficient balance模型名漏了前缀(如 @cf/)检查模型名是否完整
403 Forbidden服务商拒绝了请求确认浏览器能打开该服务商官网;不行就换服务商
403 not available in your region明确的地区限制换服务商
404 not supportedAPI 地址写错检查地址拼写、结尾斜杠
405 GET not supported这个接口不支持。可以无视手动填模型名,不要用「获取模型列表」
413 / rate_limit_exceeded每分钟 token 超限对话太长了,换渠道或开新对话
429被限流等一会儿,或换服务商
400 bad_response_status_code上游拒绝了请求该模型是「推理模型」,返回的推理内容与工具调用冲突,换一个非推理模型试试;也可能是上游的 OpenAI 兼容接口对工具调用支持不完整,那就换服务商

错误码的含义来自上游服务商的实现,不同平台可能对同一个状态码有不同解释。以上是结合我自己遇到的场景整理的,遇到对不上的情况,仍要以服务商文档和日志为准。

写在最后

一路折腾下来,我的感受是:本地部署和网关解决的是两个不同的问题。

本地部署换来的是数据不出门和离线可用,代价是能力上限;网关换来的是更强的模型和免费额度,代价是数据要过别人的服务器,而且免费额度随时可能变。

平台界面、模型名称、免费额度都可能变化,大家在实际操作时仍要以当时页面为准。也欢迎分享你在用的服务商和本地模型。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇