BerryPi.cc
BerryPi.cc - 文档中心https://token.android-doc.com/api/token/v1/chat/completions) + Anthropic Messages API (/messages)
兼容 OpenAI Chat Completions API 格式,适用于 OpenClaw、Hermes、OpenCode 等工具。
POST https://token.android-doc.com/api/token/v1/chat/completions
Authorization: Bearer {api_key}Content-Type: application/json
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 否 | 模型 ID,默认 BerryPi-text-01 |
messages | array | 是 | 消息列表,包含 role (system/user/assistant) 和 content |
stream | boolean | 否 | 是否流式输出,默认 true |
max_tokens | number | 否 | 最大输出 tokens,默认 8192 |
temperature | number | 否 | 采样温度,0~2,默认 1.0 |
top_p | number | 否 | 核采样,0~1 |
tools | array | 否 | Function Calling / Tool Use 定义 |
curl -X POST https://token.android-doc.com/api/token/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"model": "BerryPi-text-01",
"messages": [
{"role": "system", "content": "你是AI助手"},
{"role": "user", "content": "你好"}
],
"stream": false,
"max_tokens": 1024
}'
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1700000000,
"model": "BerryPi-text-01",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!有什么可以帮你的吗?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 42,
"completion_tokens": 34,
"total_tokens": 76
}
}
data: {json},最后一行 data: [DONE]data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"你好"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
兼容 Anthropic Messages API 格式,适用于 Claude Code 等原生 Anthropic 工具。无需本地代理,可直接使用。
POST https://token.android-doc.com/api/token/v1/messages
x-api-key: {api_key}anthropic-version: 2023-06-01Content-Type: application/json
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 否 | 模型 ID,默认 BerryPi-text-01 |
messages | array | 是 | 消息列表,支持 user / assistant role |
system | string | 否 | System Prompt(顶层字段,不在 messages 中) |
stream | boolean | 否 | 是否流式,默认 true |
max_tokens | number | 否 | 最大输出 tokens,默认 8192 |
temperature | number | 否 | 采样温度 |
top_p | number | 否 | 核采样 |
tools | array | 否 | Tool Use 定义(Claude 格式) |
curl -X POST https://token.android-doc.com/api/token/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: {api_key}" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "BerryPi-text-01",
"system": "你是AI助手",
"messages": [
{"role": "user", "content": "你好"}
],
"stream": false,
"max_tokens": 1024
}'
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "你好!有什么可以帮你的吗?"
}
],
"model": "BerryPi-text-01",
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 42,
"output_tokens": 34
}
}
event: 和 data: 行。event: message_start
data: {"type":"message_start","message":{"id":"msg_xxx","type":"message","role":"assistant","content":[],"model":"BerryPi-text-01"}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"你好"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"!"}}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":34}}
event: message_stop
data: {"type":"message_stop"}
https://token.android-doc.com/api/token/v1BerryPi-text-01openclaw configCustom Provider (Any OpenAI/Anthropic compatible endpoint)https://token.android-doc.com/api/token/v1BerryPi-text-01Verification successful 即成功~/.openclaw/openclaw.json,并设为默认模型"contextWindow": 200000openclaw config set agents.defaults.compaction.reserveTokensFloor 200000openclaw gateway restart
| 提供商 ID | berrypi |
| 显示名称 | berrypi |
| 基础 URL | https://token.android-doc.com/api/token/v1 |
| API 密钥 | 你的 API Key |
| 模型名称 | BerryPi-text-01 |
Windows
macOS / Linux
这里替换成你的真实API-Key 换成你真正的 Key
"apiKey": "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
Windows:直接保存记事本关闭即可。
macOS / Linux:nano 中按 Ctrl+O 回车保存,Ctrl+X 退出,然后执行:
opencode config reloadopencodeopencode config reloadopencode → /models 看到模型即成功claude-proxy-berrypi 是 BerryPi 专有的本地代理,零格式转换,直接透传 Claude Messages API 请求到 berrypi tokenapi。支持原生 SSE 流式。
npm install -g claude-proxy-berrypi@latest
echo 'export TOKENAPI_KEY="替换你自己的BerryPi的apikey"' >> ~/.bashrcecho 'export TOKENAPI_MODEL="模型名称"' >> ~/.bashrcecho 'export ANTHROPIC_BASE_URL="http://localhost:8181"' >> ~/.bashrcecho 'export ANTHROPIC_AUTH_TOKEN="111"' >> ~/.bashrcsource ~/.bashrc
✅ claude-proxy-berrypi running on http://localhost:8181 → target: https://token.android-doc.com:443/api/token/v1/messages
claude "say hi"Hey there, friend!111,无需更改/v1/messagesclaude-proxy-berrypi 是 BerryPi 专有的本地代理,零格式转换,直接透传 Claude Messages API 请求到 berrypi tokenapi。支持原生 SSE 流式。
npm install -g claude-proxy-berrypi@latest
Windows 下推荐使用 PowerShell 永久写入用户环境变量,关闭终端后依然生效。
[Environment]::SetEnvironmentVariable("TOKENAPI_KEY", "替换你自己的BerryPi的apikey", "User")[Environment]::SetEnvironmentVariable("TOKENAPI_MODEL", "模型名称", "User")[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "http://localhost:8181", "User")[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "111", "User")$env:TOKENAPI_KEY = [Environment]::GetEnvironmentVariable("TOKENAPI_KEY", "User")$env:ANTHROPIC_BASE_URL = [Environment]::GetEnvironmentVariable("ANTHROPIC_BASE_URL", "User")$env:ANTHROPIC_AUTH_TOKEN = [Environment]::GetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "User")
✅ claude-proxy-berrypi running on http://localhost:8181 → target: https://token.android-doc.com:443/api/token/v1/messages
claude "say hi"Hey there, friend!111,无需更改[Environment]::SetEnvironmentVariable(..., "User") 写入后永久生效,重启电脑也不丢失setx TOKENAPI_KEY "替换你自己的BerryPi的apikey" 代替/v1/messagesnpm install -g @kilocode/clikilocode --version
编辑或新建 config.json,路径如下:
~/.config/kilo/config.json用户目录\.config\kilo\config.json
将以下内容完整复制到配置文件中,替换 MIMO_API_KEY 为你的 BerryPi API Key:
{
"$schema": "https://kilo.ai/config.json",
"disabled_providers": [],
"provider": {
"mimo": {
"name": "BerryPi",
"npm": "@ai-sdk/openai-compatible",
"models": {
"mimo-v2.5-pro": {
"name": "mimo-v2.5-pro",
"options": {
"thinking": {
"type": "enabled"
}
}
}
},
"options": {
"apiKey": "MIMO_API_KEY",
"baseURL": "https://token.android-doc.com/api/token/v1"
}
}
},
"permission": {
"bash": "allow"
}
}
sk-xxxxxxxxxxxxxxxxxxxxxxxx
kilocode/models 切换模型,即可在 Kilo Code CLI 中使用 BerryPi 的 MiMo 模型。
Custom Provider| Provider ID | 自定义,例如 berrypi |
| Display name | 自定义,例如 BerryPi |
| Base URL | https://token.android-doc.com/api/token/v1 |
| API Key | 你的 BerryPi API Key |
| Models | 按需添加,如 mimo-v2.5-pro |
npm install -g @kilocode/cli-windows-x64 即可解决/v1 结尾npm install -g @openai/codex@0.80.0codex --version
编辑配置文件 .codex/config.toml(不存在则新建),将以下内容写入:
[model_providers.berrypi] name = "BerryPi API" base_url = "https://token.android-doc.com/api/token/v1" env_key = "BERRYPI_API_KEY" wire_api = "chat" requires_openai_auth = false request_max_retries = 4 stream_max_retries = 10 stream_idle_timeout_ms = 300000 [profiles.berrypi] model = "BerryPi-text-01" model_provider = "berrypi"
出于安全考虑,通过环境变量设置 API Key(将 <YOUR_API_KEY> 替换为你的 BerryPi API Key):
export BERRYPI_API_KEY="***"
为了永久生效,追加到 shell 配置文件:
# zsh 用户 echo 'export BERRYPI_API_KEY="***"' >> ~/.zshrc source ~/.zshrc # bash 用户 echo 'export BERRYPI_API_KEY="***"' >> ~/.bashrc source ~/.bashrc
codex --profile berrypi在特定项目中使用:
cd /path/to/your/project codex --profile berrypi
npm install -g @openai/codex@0.80.0npm config get prefixBERRYPI_API_KEY 环境变量已正确设置且 Key 有效base_url 以 /v1 结尾.codex/config.toml,且 [profiles.berrypi] 拼写正确https://github.com/farion1231/cc-switch
brew tap farion1231/ccswitch brew install --cask cc-switchWindows
.msi 安装包或便携版 .zip。.deb 包或 .AppImage。wget https://github.com/farion1231/cc-switch/releases/latest/download/cc-switch-web-linux-x64.tar.gz tar -xzf cc-switch-web-linux-x64.tar.gz cd cc-switch-web/ ./cc-switch-web默认端口
17666,通过浏览器访问 http://localhost:17666。
| 名称 | 自定义,例如 BerryPi |
| Base URL | https://token.android-doc.com/api/token/v1 |
| API Key | 你的 BerryPi API Key |
| 主模型 | 按需选择,如 BerryPi-text-01、mimo-v2.5-pro 等 |
| Haiku 模型 | 轻量模型,如 MiniMax-M3 |
| Sonnet 模型 | 均衡模型,如 BerryPi-text-01 |
| Opus 模型 | 最强模型,如 Opus-4.7 |
# Claude Code claude # Codex CLI codex # Gemini CLI gemini
/v1 结尾17666 未被占用,或手动指定端口 ./cc-switch-web -p 8080ANTHROPIC_API_KEY 这个字段填写 API Key(而非 OPENAI_AUTH_TOKEN 或其他),否则 Anthropic 协议路径不会生效。
https://token.android-doc.com/api/token/v1BerryPi-text-01hermes setup 或 hermes modelCustom endpoint (OpenAI-compatible)https://token.android-doc.com/api/token/v1BerryPi-text-01nano ~/.hermes/.envCUSTOM_OPENAI_API_KEY=你的API密钥nano ~/.hermes/config.yaml
provider:
default: custom_openai
models:
custom_openai:
base_url: https://token.android-doc.com/api/token/v1
model: BerryPi-text-01
api_key: ${CUSTOM_OPENAI_API_KEY}
temperature: 0.7
max_tokens: 4096
timeout: 60
custom_openai: base_url: http://127.0.0.1:11434/v1 model: llama3.2:8b api_key: ""
hermes chat "你好,测试一下"hermes model infohttps://token.android-doc.com/api/token/v1POST /images/generations(兼容 OpenAI Images API 格式)
根据文本描述生成图片,支持图生图。底层调用 MiniMax 图片生成模型。
Authorization: Bearer {api_key}Content-Type: application/json
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 否 | 模型 ID,默认 BerryPi-image-01 |
prompt | string | 是 | 图片描述文本,建议英文 |
n | number | 否 | 生成数量,默认 1 |
size | string | 否 | 图片尺寸,支持 1024x1024 / 1024x1792 / 1792x1024 |
response_format | string | 否 | 返回格式,默认 url |
subject_reference | array | 否 | 参考图(图生图),每项为 {"type":"image_url","image_url":"..."} |
| OpenAI size | 实际宽高比 |
|---|---|
1024x1024 | 1:1(正方形) |
1024x1792 | 9:16(竖屏) |
1792x1024 | 16:9(横屏) |
curl -X POST https://token.android-doc.com/api/token/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"model": "BerryPi-image-01",
"prompt": "A cute puppy running happily on a sunny grassland, cartoon style",
"n": 1,
"size": "1024x1024"
}'
curl -X POST https://token.android-doc.com/api/token/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {api_key}" \
-d '{
"model": "BerryPi-image-01",
"prompt": "Make this cat wear a wizard hat",
"subject_reference": [
{"type": "image_url", "image_url": "https://example.com/my-cat.jpg"}
],
"size": "1024x1024"
}'
{
"created": 1700000000,
"data": [
{
"url": "https://xxx.oss-cn-xxx.aliyuncs.com/xxx.jpeg?...",
"b64_json": null,
"revised_prompt": "A cute puppy running happily..."
}
],
"model": "BerryPi-image-01"
}
url 为 OSS 签名 URL,有效期约 24 小时,请及时下载。
import requests
url = "https://token.android-doc.com/api/token/v1/images/generations"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"model": "BerryPi-image-01",
"prompt": "A beautiful sunset over the ocean",
"n": 1,
"size": "1792x1024"
}
response = requests.post(url, json=data, headers=headers)
result = response.json()
image_url = result["data"][0]["url"]
print(f"生成成功: {image_url}")