概览
猫猫动力提供兼容 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)
curl https://maomao.chat/v1/chat/completions \ -H "Authorization: Bearer sk-你的密钥" \ -H "Content-Type: application/json" \ -d '{"model": "claude-sonnet-5", "messages": [{"role": "user", "content": "你好,猫猫"}]}'
import OpenAI from "openai"; const client = new OpenAI({ apiKey: "sk-你的密钥", baseURL: "https://maomao.chat/v1", }); const resp = await client.chat.completions.create({ model: "claude-sonnet-5", messages: [{ role: "user", content: "你好,猫猫" }], }); console.log(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 | 聊天与多轮对话,支持流式 |
| Responses | POST /v1/responses | OpenAI Responses 格式 |
| Claude 原生 | POST /v1/messages | Anthropic Messages 格式 |
| 模型列表 | GET /v1/models | 当前密钥可调用的模型 |
| 图像 | POST /v1/images/generations | 图像生成,按次计费 |
模型与价格
- 模型名:以「模型价格」页为准,原样复制,注意大小写和连字符。
- 查询可用模型:调用
GET /v1/models可以列出当前密钥能用的模型;如果密钥限定了模型,只会返回被允许的那些。 - 计费方式:文本模型按 Token 计费,输入、输出、缓存读、缓存写分开计价,单位为每百万 Token;图像等模型按次计费。
- 折扣:价目表同时列出官网价作为参考,实际扣费以本站售价为准。
错误处理
| 状态码 | 可能原因 | 处理方法 |
|---|---|---|
| 400 | 请求参数有误 | 检查请求格式、模型名和参数 |
| 401 | 认证失败 | 检查密钥是否完整、是否已被禁用或删除 |
| 403 | 权限或模型受限 | 检查密钥的可用模型和账户状态 |
| 429 | 请求太频繁或并发太多 | 降低并发,稍后重试 |
| 5xx | 服务暂时异常 | 稍后重试,并记下发生时间 |
报错不一定代表请求没有执行或没有扣费,尤其是已经输出了部分内容的流式请求。自动重试前,建议先在控制台核对用量,避免重复计费。
最佳实践
- 一个用途一把密钥:按软件、项目或成员分开创建,出问题时只停用一把。
- 先小后大:先用中档模型跑通,效果不够再换更强的档位,成本更可控。
- 控制输入长度:上下文越长,输入 Token 越多;长对话可以定期总结后再继续。
- 带退避的重试:遇到 429 或 5xx 时,等待几秒后再试,并逐次拉长间隔。
- 监控余额:长任务开始前确认余额充足,余额用完后请求会失败。