位置:首页 > 进阶教程 > WorkBuddy实战:一键接入ZenMux,轻松使用一套Key调用200多种大模型

WorkBuddy实战:一键接入ZenMux,轻松使用一套Key调用200多种大模型

时间:2026-07-22  |  作者:怪兽小助手  |  阅读:0

背景

WorkBuddy的积分机制是按模型调用量来算的。你要是跑得比较勤,这个消耗确实肉疼。于是很多人在琢磨:有没有什么办法,能绕过积分体系,直接用自己手上的API Key来跑任务?

答案是肯定的:用AI网关就能搞定。比如这次要聊的ZenMux,挂上自己的Key,就彻底脱离了WorkBuddy的积分约束。

这篇文章就一步步演示一下,怎么在WorkBuddy里接入ZenMux——一个能让你用一套API Key调200多个模型的AI网关。

ZenMux是个什么东西?

简单说,ZenMux是一个企业级的AI API网关,核心看家本领有这么几条:

  • 统一接口:支持OpenAI、Anthropic、Google Gemini四种协议。你只要熟悉其中一个SDK,就能调所有模型。
  • 200+模型:OpenAI、Claude、Gemini、DeepSeek、Doubao、GLM……基本你能想到的,它都聚合了。
  • 协议无关:你可以用OpenAI的SDK去调Claude,或者用Anthropic的SDK去调Gemini——想怎么混就怎么混。
  • 完全兼容OpenAI格式:现有的代码基本不需要动。

第一步:拿ZenMux API Key

  1. 访问 zenmux.ai/login,支持邮箱、GitHub、Google三种登录方式。
  2. 登录后进到PAYG API页面。
  3. 「创建新的API Key」,复制保存——注意,这个Key只展示这一次。
套餐选型小建议:个人开发可以先走Builder Plan($20/月),生产环境还是推荐Pay As You Go,按量计费更灵活。

第二步:选协议

ZenMux支持四种协议,各自的Base URL不一样:

协议Base URL适合场景
OpenAI Chat Completionshttps://zenmux.ai/api/v1最通用,推荐
OpenAI Responseshttps://zenmux.ai/api/v1OpenAI新API
Anthropic Messageshttps://zenmux.ai/api/anthropic原生Claude调用
Google Geminihttps://zenmux.ai/api/vertex-ai原生Gemini调用

这次以OpenAI协议为例——兼容性最好,也最省事。

第三步:写Python代码接入

安装依赖

pip install openai python-dotenv

配置.env

ZENMUX_API_KEY=sk-ai-v1-你的Key
ZENMUX_BASE_URL=https://zenmux.ai/api/v1
ZENMUX_DEFAULT_MODEL=openai/gpt-4o-mini

封装客户端(zenmux_client.py)

import os
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()

def get_client() -> OpenAI:
    return OpenAI(
        base_url=os.getenv("ZENMUX_BASE_URL", "https://zenmux.ai/api/v1"),
        api_key=os.getenv("ZENMUX_API_KEY"),
    )

def chat(prompt: str, model: str = None) -> str:
    """非流式对话"""
    client = get_client()
    model = model or os.getenv("ZENMUX_DEFAULT_MODEL", "openai/gpt-4o-mini")
    resp = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
    )
    return resp.choices[0].message.content or ""

def stream_chat(prompt: str, model: str = None):
    """流式对话,逐token返回"""
    client = get_client()
    model = model or os.getenv("ZENMUX_DEFAULT_MODEL", "openai/gpt-4o-mini")
    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        stream=True,
    )
    for chunk in response:
        if not chunk.choices:
            continue
        delta = chunk.choices[0].delta.content
        if delta:
            yield delta

调用示例

from zenmux_client import chat, stream_chat

# 非流式
print(chat("你好,介绍一下自己"))
print(chat("讲个笑话", model="anthropic/claude-3.5-sonnet"))

# 流式
for token in stream_chat("用一句话介绍 ZenMux"):
    print(token, end="", flush=True)

踩坑记录

实际操作中遇到几个问题,顺手记下来。

坑1:流式调用报 list index out of range

原因:某些模型在流式末尾会返回一个空的choices帧(用于返回usage统计),直接访问chunk.choices[0]自然就崩了。

解决:遍历chunk时先判断if not chunk.choices: continue,跳过就好。

坑2:模型名称的格式问题

ZenMux的模型名统一用provider/model-name格式,比如:

  • openai/gpt-4o-mini
  • anthropic/claude-sonnet-5
  • google/gemini-3.1-pro-preview
  • bytedance/doubao-seed-2.1-pro
  • z-ai/glm-5.2

完整模型列表可以到 https://zenmux.ai/models 查看。

坑3:.env文件不要提交

API Key这东西是敏感信息,记得在.gitignore里加上:

.env
.env.local

效果验证

接入后实际跑了一下,结果比较干净:

共141个模型可用
非流式对话:正常返回
流式对话:正常返回(已修复空帧bug)

总结

方案消耗适合场景
纯用WorkBuddy积分快速原型、轻量任务
ZenMux + 自有KeyZenMux额度高频调用、成本控制
两者结合灵活日常用WorkBuddy,重度任务切ZenMux

最佳实践:把ZenMux接入当作WorkBuddy积分的补充方案。高频任务走自己的Key,想省钱就省钱,想灵活就灵活。


相关链接

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多