| 步骤 | 耗时 | 你要做什么 |
|---|---|---|
| 1 | 40 秒 | 注册账号 |
| 2 | 30 秒 | 充值(最低 7 元) |
| 3 | 20 秒 | 生成 API Key |
| 4 | 90 秒 | 装客户端、填三个字段 |
| 5 | 30 秒 | 发第一条消息验证 |
| 6 | 60 秒 | 用代码跑通第一条请求 |
加起来不到五分钟。中间卡住的地方基本只有两个:地址填错、Key 复制的时候多带了空格。这两件事占了新手提问的绝大多数,下文对应的小节看完基本就能避开。
不需要任何网络工具,小鱼API 是国内直连节点,不用挂代理,也不用配转发规则。这一点对新手很关键,很多人第一次调 AI 接口失败不是因为代码写错,而是代理把请求绕了一圈,本地看着像网络故障,实际是配置冲突。
打开 https://xyuai.cc,点注册,手机号或邮箱都支持。填完验证码进去就是控制台。整个过程不用填任何技术信息,也不用提交什么应用说明。
进充值页,选支付宝或微信,最低 7 元起。按次计费的关系,7 元能跑的次数比很多人想的要多:用 deepseek-v3.2-thinking(0.049 元/次)大概能跑 140 次,用 gemini-2.5-pro(0.031 元/次)能跑 200 多次。第一次用先充最低额度,跑顺了再补,没必要一上来就充几百。
控制台里找「令牌」或者「API Key」入口,点新建,命名随便写,比如 我的第一个Key。生成后是一串 sk- 开头的字符串。
这串东西只显示一次,立刻复制存到记事本里。丢了只能重新建一个,没有找回功能。
https://xyuapi.top/v1sk- 开头的那串填配置的时候最容易错的就是这两处:有人把 xyuai.cc(官网)当成接口地址填进去,有人把 /v1 漏掉。官网是给你看文档和充值的,接口地址才是程序真正要连的地方,两个域名不一样,这点要记住。
如果客户端让你分别填 Host 和路径,那就把 https://xyuapi.top 填进 Host,/v1 填进路径栏。有些老客户端不支持带路径的地址,用这种拆开填的写法能兼容过去。
下载安装 Chatbox,进设置找到「模型提供方」,选自定义(OpenAI 兼容),然后填三个字段:
| 字段 | 填什么 |
|---|---|
| API 域名 / API Host | https://xyuapi.top/v1 |
| API 密钥 | 你的 sk- 开头的 Key |
| 模型名称 | deepseek-v3.2-thinking |
保存后把模型切到刚填的这个,就能开始对话了。模型名要手动敲准,写错了会报 404。
Cherry Studio 的入口在「设置 → 模型服务」,点添加,服务类型选 OpenAI 兼容:
| 字段 | 填什么 |
|---|---|
| API 地址 | https://xyuapi.top/v1 |
| API 密钥 | 你的 sk- 开头的 Key |
| 模型 ID | deepseek-v3.2-thinking |
填完点「检查」,能列出模型列表就说明通了。Cherry Studio 支持一次加多个模型,建议顺手把常用的几个都加上:grok-4.5、claude-sonnet-4-5-thinking、kimi-k2.6。
不管什么客户端,本质都是填「接口地址 + 密钥 + 模型名」这三样:
https://xyuapi.top/v1字段叫法五花八门,值永远是那三个。遇到填不对的时候别怀疑自己,先看客户端是不是把「接口地址」和「官网地址」拆成了两个输入框,填错位置是最常见的原因。
在对话框里输入「你好,用一句话介绍你自己」,回车。正常情况两到五秒内就会看到文字一个字一个字往外蹦。
第一句话建议用最简单的问候,不要上来就让它写代码或者分析文档。先确认链路通了,再去验证能力。
链路通了之后,切换模型对比一下风格差异很有意思:
deepseek-v3.2-thinking:便宜量大,中文写作和逻辑推理都稳,适合日常用gemini-2.5-pro:0.031 元一次,性价比最高,看图和长文档也好用grok-4.5:语气松弛,回答直接claude-sonnet-4-5-thinking:写代码和长文改稿质量很扎实同一个 Key 全线通用,切模型只是换个名字,不用重新配置。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url="https://xyuapi.top/v1",
)
resp = client.chat.completions.create(
model="deepseek-v3.2-thinking",
messages=[{"role": "user", "content": "你好,介绍一下你自己"}],
)
print(resp.choices[0].message.content)
跑之前把 Key 放进环境变量:
$env:OPENAI_API_KEY="sk-你的Key" # Windows PowerShell,当前窗口有效
export OPENAI_API_KEY="sk-你的Key" # macOS / Linux
import 'dotenv/config';
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://xyuapi.top/v1',
});
const resp = await client.chat.completions.create({
model: 'deepseek-v4-flash-thinking',
messages: [{ role: 'user', content: '你好,介绍一下你自己' }],
});
console.log(resp.choices[0].message.content);
两个版本的 SDK 用法几乎一模一样,base_url 换成 baseURL,snake_case 换成 camelCase,别的没区别。装包也就是一条命令:Python 是 pip install openai,Node.js 是 npm i openai。
跑通这十行之后,你就有了一个可以任意改造的起点:包成命令行工具、接到自己的后端接口、塞进批处理脚本都行。想深入的话,流式输出、多轮对话上下文、错误重试这三块是接下来最该补的,后面单独开文章讲。
Claude Code 本身走 Anthropic 协议,用 cc-switch 这类工具把供应商切到小鱼API 的接入地址就行,切完之后 Claude Code 里调用的实际上是小鱼API 背后的模型,国内网络直连,不用折腾网络环境。
Error code: 401 - Incorrect API key provided
四成的原因是 Key 前后带了空格或者换行。复制的时候多选了一个字符,肉眼根本看不出来,重新复制一次纯的。
剩下的原因:Key 已经被删了、余额用完了、环境变量没生效(新开的终端窗口才会读到新变量)。
判断方法很简单:把 Key 直接写进代码里再跑一次。能通说明是环境变量的问题,不能通说明 Key 本身有问题。定位完记得把硬编码那行删掉。
Error code: 404 - model not found
模型名写错了。claude-sonnet-4-5-thinking 写成 claude-sonnet-4.5-thinking、deepseek-v3.2-thinking 少写了 -thinking,都会 404。模型名区分大小写和连字符,直接从价格表里复制。
还有一种 404 是地址填错:把 /v1 漏了,请求打到了官网首页上,返回的也是 404。这两种情况的报错文案长得差不多,所以排查顺序是先核对地址里的 /v1,再核对模型名,能省一半时间。
先看是不是挂了代理。小鱼API 是国内直连,机器上开着梯子反而会让请求绕一圈甚至失败。临时清掉:
$env:HTTP_PROXY=""; $env:HTTPS_PROXY=""
unset HTTP_PROXY HTTPS_PROXY ALL_PROXY
如果没挂代理还是超时,换个模型试试。思考型模型(名字里带 -thinking)首字延迟本来就高,客户端超时设得太短会直接判定失败,把超时调到 120 秒以上。
刚充值完就调用的,等十几秒再试,账户余额同步有一点延迟。如果一直不行,去后台看一眼 Key 的额度是不是被单独设过上限——有些平台会给单个 Key 单独限额度,和账户余额是两回事。
排查顺序按这个来:先确认余额,再确认 Key 有没有被禁用,再看单 Key 额度,最后看模型名和地址。从少到多逐项排除,比反复重装客户端快得多。
小鱼API 采用按次计费:一次对话请求算一次钱,输入 1 个字和输入 20 万字同一个价,输出的长短也不影响单价。这一点和按 token 计费的平台完全不同。按 token 计费时,你贴一篇两万字的合同进去,一次调用可能就花掉几块钱;按次计费时,同样这次调用就是固定的几分钱。
对普通用户来说,最直观的好处是费用可预期。你不用担心某个操作会突然把额度吃掉一大截,也不用为了让提示词短一点而反复删减内容。
| 模型 | 单价(元/次) | 类型 |
|---|---|---|
| gemini-2.5-pro | 0.031 | 对话 |
| gemini-3-pro-preview | 0.05 | 对话 |
| gemini-3.1-pro-preview | 0.09 | 对话 |
| NanoBanana-Pro | 0.27 | 生图 |
| claude-sonnet-4-5-thinking | 0.09 | 思考 |
| claude-opus-4-5-thinking | 0.12 | 思考 |
| claude-sonnet-4-6-thinking | 0.2 | 思考 |
| claude-opus-4-6-thinking | 0.25 | 思考 |
| claude-sonnet-4-7-thinking | 0.2 | 思考 |
| claude-opus-4-7-thinking | 0.25 | 思考 |
| grok-4.1 | 0.05 | 对话 |
| grok-4.5 | 0.09 | 对话 |
| grok-4.6 | 0.09 | 对话 |
| deepseek-v3.2-thinking | 0.049 | 思考 |
| deepseek-r1-thinking | 0.049 | 思考 |
| deepseek-v4-flash-thinking | 0.05 | 思考 |
| deepseek-v4-pro-thinking | 0.09 | 思考 |
| gpt-5.5 | 0.2 | 对话 |
| gpt-5.5-pro-thinking | 0.2 | 思考 |
| gpt-5.3-pro | 0.3 | 对话 |
| gpt-image-2-pro | 0.25 | 生图 |
| kimi-k2.5 | 0.09 | 对话 |
| kimi-k2.6 | 0.09 | 对话 |
最低 7 元起充,用多少扣多少,没有月费也没有席位限制。
日调用量稳定在几百次以上,单次扣费的累计就比无限卡贵了。无限卡套餐适合三类人:自己做批量脚本、每天固定跑几百次任务的;给团队或小产品做后台支撑的;拿生图模型做素材的(生图单次 0.25 到 0.27 元,用得多很容易超)。用量还不确定的阶段先按次付费,跑两个星期看后台统计,再决定换不换。
如果你主要是拿客户端聊天,接下来值得花时间的是提示词写法:给角色、给约束、给示例、要求分步骤输出。同样的模型,提示词写得好和写得随便,输出质量差得很远。另外把常用提示词存成客户端里的预设,比每次手打省事。
想自己做工具,从 Python 或 JavaScript 的调用教程入手,先掌握流式输出、多轮对话上下文、错误重试这三件事,这三样覆盖了九成以上的日常需求。再往上就是函数调用和结构化输出,那是让模型真正操作你系统的入口。
在 VSCode 里装 Cline、RooCode 或 KiloCode,或者用 cc-switch 把 Claude Code 切过来,让模型直接读你的项目文件、改代码、跑测试。这条路线见效最快,尤其是维护老项目的时候。
三条路线不冲突,建议按这个顺序走:先把客户端用顺手,再用代码把重复的事自动化,最后接进编辑器提升日常开发效率。