开发文档

原来的代码,
改两行就能用。

兼容 OpenAI 与 Anthropic 接口格式。从拿到密钥到第一条成功请求,五分钟。

OpenAI 兼容Anthropic Messages流式输出查看模型价格 →

概览

猫猫动力提供兼容 OpenAI 格式的模型接口,同时支持 Anthropic Messages 格式。用一把 sk- 开头的密钥,就能调用价目表里的全部模型;换模型只需要改 model 参数。

项目内容
OpenAI 兼容地址(Base URL)https://maomao.chat/v1
Anthropic 兼容地址https://maomao.chat
鉴权方式请求头 Authorization: Bearer sk-你的密钥
模型名「模型价格」页中的模型 ID,原样填写
计费按实际用量从账户余额扣费,单价见「模型价格」页
提示

只想在 Claude Code、Codex 等工具里使用,不需要写代码,直接看「使用文档」里的启动器一键配置即可。

快速开始

1. 获取密钥

登录网页控制台,在「API 密钥」卡片点「+ 创建密钥」,填写名称后点「创建」,再点「复制密钥」。建议为每个软件或项目单独创建一把密钥,方便单独停用和对账。

2. 发送第一条请求

把下面代码中的密钥换成你自己的,运行即可。模型名可以换成价目表里的任意文本模型。

from openai import OpenAI

client = OpenAI(
    api_key="sk-你的密钥",
    base_url="https://maomao.chat/v1",
)
resp = client.chat.completions.create(
    model="claude-sonnet-5",  # 换个名字,就换个模型
    messages=[{"role": "user", "content": "你好,猫猫"}],
)
print(resp.choices[0].message.content)

3. 查看用量

每次调用都会记入控制台的「用量统计」和启动器「更多」页的「最近调用」,可以核对模型、Token 数和扣费。

鉴权与密钥

所有请求都需要在请求头中携带密钥:

Authorization: Bearer sk-你的密钥

使用 Anthropic SDK 时,SDK 会通过 x-api-key 请求头传递密钥,按 SDK 的默认方式填写即可。

  • 限定模型:在控制台创建或编辑密钥时,可以勾选允许调用的模型;不勾选则可调用全部模型。
  • 停用与删除:密钥列表中的「禁用」可临时停用,「删除」会永久失效。
  • 安全:不要把密钥写进网页前端、移动端安装包或公开仓库。生产环境请把密钥放在服务端环境变量里,由你的后端发起请求。

对话接口

最常用的接口,格式与 OpenAI Chat Completions 一致。

项目内容
方法与路径POST /v1/chat/completions
必填参数model、messages
常用参数stream、max_tokens、tools、response_format
curl https://maomao.chat/v1/chat/completions \
  -H "Authorization: Bearer sk-你的密钥" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [
      {"role": "system", "content": "你是一名简洁的助手。"},
      {"role": "user", "content": "用三句话介绍一下 Token。"}
    ]
  }'

返回结果中,回答在 choices[0].message.content,用量在 usage 字段(prompt_tokens、completion_tokens)。

注意

不同模型支持的参数并不完全相同。例如部分新模型不再接受温度等采样参数,部分模型不支持图片输入或工具调用。遇到参数报错时,去掉可选参数再试。

流式输出

设置 "stream": true 后,接口会以 SSE(Server-Sent Events)方式逐段返回,适合聊天界面边生成边显示。

stream = client.chat.completions.create(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": "写一首关于猫的短诗"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content if chunk.choices else None
    if delta:
        print(delta, end="", flush=True)
提示

长回答建议开启流式输出。网络较慢或输出很长时,非流式请求更容易因等待时间过长而被中途断开。

Anthropic 格式

Claude 系模型也可以用 Anthropic 官方 SDK 调用。把 base_url 设为 https://maomao.chat(SDK 会自动补上 /v1/messages),密钥换成猫猫的密钥即可。

from anthropic import Anthropic

client = Anthropic(api_key="sk-你的密钥", base_url="https://maomao.chat")
message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好,猫猫"}],
)
print(message.content[0].text)

手动配置 Claude Code 等工具时,同样把 Anthropic 接口地址(例如环境变量 ANTHROPIC_BASE_URL)设为 https://maomao.chat。更省事的做法是用启动器一键配置。

接口一览

以下为常见的兼容路径。某个模型能否调用某个接口,取决于模型本身的能力,以价目表标注和实际返回为准。

用途方法与路径说明
对话POST /v1/chat/completions聊天与多轮对话,支持流式
ResponsesPOST /v1/responsesOpenAI Responses 格式
Claude 原生POST /v1/messagesAnthropic Messages 格式
模型列表GET /v1/models当前密钥可调用的模型
图像POST /v1/images/generations图像生成,按次计费

模型与价格

  • 模型名:以「模型价格」页为准,原样复制,注意大小写和连字符。
  • 查询可用模型:调用 GET /v1/models 可以列出当前密钥能用的模型;如果密钥限定了模型,只会返回被允许的那些。
  • 计费方式:文本模型按 Token 计费,输入、输出、缓存读、缓存写分开计价,单位为每百万 Token;图像等模型按次计费。
  • 折扣:价目表同时列出官网价作为参考,实际扣费以本站售价为准。

错误处理

状态码可能原因处理方法
400请求参数有误检查请求格式、模型名和参数
401认证失败检查密钥是否完整、是否已被禁用或删除
403权限或模型受限检查密钥的可用模型和账户状态
429请求太频繁或并发太多降低并发,稍后重试
5xx服务暂时异常稍后重试,并记下发生时间
注意

报错不一定代表请求没有执行或没有扣费,尤其是已经输出了部分内容的流式请求。自动重试前,建议先在控制台核对用量,避免重复计费。

最佳实践

  • 一个用途一把密钥:按软件、项目或成员分开创建,出问题时只停用一把。
  • 先小后大:先用中档模型跑通,效果不够再换更强的档位,成本更可控。
  • 控制输入长度:上下文越长,输入 Token 越多;长对话可以定期总结后再继续。
  • 带退避的重试:遇到 429 或 5xx 时,等待几秒后再试,并逐次拉长间隔。
  • 监控余额:长任务开始前确认余额充足,余额用完后请求会失败。