LobeChat 怎么接小鱼API:接口代理地址、密钥、模型名一次填对

一、照着填这四项,LobeChat 立刻能连上

LobeChat 接入小鱼API,真正要填的只有四样,抄走就能用:

填完点服务商设置里的「检查」,通过后回到会话页选中模型就能聊天。先认清一件事:那一栏不叫 Base URL,很多版本叫「接口代理地址」或「API 代理地址」。

先选对 API 类型:OpenAI 兼容

服务商类型选 OpenAI 兼容,有的版本写作 OpenAI,也有的把它藏在「自定义服务商」里。选它是为了让 LobeChat 按 OpenAI 的路径规则发请求,也就是在你填的地址后面自动补 /chat/completions。选成 Azure、Ollama 之类,拼接规则会变,检查连通性时直接报 404。不同版本叫法略有差异,按关键词找「OpenAI 兼容」或「自定义」那一项。

接口地址填 https://xyuapi.top/v1

粘贴 https://xyuapi.top/v1,结尾带 /v1,结尾不要斜杠。备用地址是 https://xyuai.cc/v1,两条地址配的 Key 和模型名完全一样,主地址握手慢时换备用再点一次检查。平台另有 Gemini 原生格式的 /v1beta 路径,LobeChat 走 OpenAI 兼容格式,不用碰它。

API Key 填自己的 sk- 令牌

令牌在平台后台的令牌管理页生成,形如 sk- 开头的一长串字符,一个令牌可以给多台设备同时用。复制时用页面上的复制按钮,粘进去之后扫一眼首尾有没有多余空格或换行,这是 401 出现次数比较多的来源。

模型名要填具体 ID,不是「随便挑一个」

LobeChat 不会替你猜模型。写 gemini-2.5-pro 就填 gemini-2.5-pro,别自己加 -latest-pro-thinking 去凑一个看着更厉害的名字。带 -thinking 的模型在平台上是单独一行,比如 deepseek-v3.2-thinkingdeepseek-v3.2 是两个不同的 ID。填错名字,服务端找不到模型,返回的就是 404 或 model not found。

LobeChat 里那一栏到底叫什么

服务商设置页那个填地址的输入框,不同版本叫法不一样:「接口代理地址」「API 代理地址」「API 地址」「自定义接口地址」,英文界面可能显示成 API Proxy URLBase URL。按关键词找带「地址」或「接口」的那一栏,填的都是 https://xyuapi.top/v1

填完先点「检查」,不要去聊天窗口试

那一栏附近一般有「检查」「连通性检测」「测试连接」按钮,它会拿你填的地址和 Key 请求一次接口,成功就说明地址、Key、网络三样都对。直接去聊天窗口试,报错会被前端包装成一句「请求失败」,看不到真实状态码,排查要多绕好几步。

二、两条部署路线:Docker 自部署 vs 云端网页版

LobeChat 有两种用法,配置方式完全是两套东西。自部署是你把服务跑在自己的服务器或 NAS 上;云端网页版是现成站点,打开网页直接用。

路线一:Docker 自部署,环境变量一把配齐

配置全部写在环境变量里,改完重启容器生效。常用的四个:OPENAI_API_KEY 填你的 sk- 令牌;OPENAI_PROXY_URLhttps://xyuapi.top/v1ACCESS_CODE 是访问口令,防止别人找到地址就用掉你的额度;OPENAI_MODEL_LIST 是模型清单,决定前端下拉框里出现哪些模型。请求由服务器上的容器直接发出去,不经过你的浏览器。

docker run 一行跑起来

docker run -d --name lobechat -p 3210:3210 \
  -e OPENAI_API_KEY=sk-你的令牌 \
  -e OPENAI_PROXY_URL=https://xyuapi.top/v1 \
  -e ACCESS_CODE=自己设一个访问口令 \
  -e OPENAI_MODEL_LIST="gemini-2.5-pro,deepseek-v3.2-thinking,claude-sonnet-4-5-thinking" \
  lobehub/lobe-chat

跑完打开 http://服务器IP:3210,输入 ACCESS_CODE 就能进。初次启动要拉镜像,等一会儿正常。

docker-compose.yml 写法,把数据目录也挂出来

services:
  lobe-chat:
    image: lobehub/lobe-chat
    container_name: lobe-chat
    restart: always
    ports:
      - "3210:3210"
    environment:
      - OPENAI_API_KEY=sk-你的令牌
      - OPENAI_PROXY_URL=https://xyuapi.top/v1
      - ACCESS_CODE=自己设一个访问口令
      - OPENAI_MODEL_LIST=gemini-2.5-pro,deepseek-v3.2-thinking,claude-sonnet-4-5-thinking
    volumes:
      - ./data:/app/data

volumes 那两行把会话和配置留在宿主机上,容器重建后东西还在;不挂载等于删容器就清空数据。

路线二:云端网页版,浏览器直连

网页版没有环境变量可改,配置都在前端服务商面板里手填,请求由浏览器直接发到 xyuapi.top。好处是开箱即用,代价是受本地网络环境影响:浏览器会跟随系统代理设置,也可能被跨域策略挡住。同一个网站别人电脑正常、只有你这台连不上,八成就是这两个原因。

两条路线差别对照

对比项Docker 自部署云端网页版
配置入口环境变量,重启生效前端面板,保存即生效
请求发起方服务器上的容器你的浏览器
系统代理影响不受,只看容器出网受影响,请求可能被转发
跨域策略影响不受可能出现跨域报错
适合场景团队共用、长期挂着临时试用、不想装环境

三、坑一:地址末尾到底带不带 /v1

结论放前面:写到 https://xyuapi.top/v1 这一层就停。LobeChat 拿到你填的地址后,会自己往后面拼 /chat/completions,你填的部分加它拼的部分才是完整路径。

写成 /v1/v1:请求变成 /v1/v1/chat/completions

有人嫌一个 /v1 看着不够稳,填了 https://xyuapi.top/v1/v1,最终请求路径变成 https://xyuapi.top/v1/v1/chat/completions。服务端没有这条路由,返回 404 page not found,表现是点「检查」就报错,模型列表都拉不出来。

只写 https://xyuapi.top:拼成 /chat/completions

只填 https://xyuapi.top,拼出来是 https://xyuapi.top/chat/completions,少了 /v1,同样 404。结尾多一个斜杠也归这一类:填成 https://xyuapi.top/v1/,有的版本会拼出 //chat/completions,网关可能回 404 或 400。两种错都是 404,只能回头看你填的地址是多写还是少写。

用 curl 先把地址验一遍

改客户端之前,先确认平台这一侧是通的:

curl -I https://xyuapi.top/v1/models
curl -s https://xyuapi.top/v1/models -H "Authorization: Bearer sk-你的令牌"
curl -s https://xyuapi.top/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的令牌" \
  -d '{"model":"gemini-2.5-pro","messages":[{"role":"user","content":"说句话"}]}'

开头那条只看地址通不通,返回 200 或 401 都说明域名和路径是活的。中间那条带上令牌,能返回模型列表说明令牌有效。末尾那条发一次真实请求,有内容返回说明整条链路没问题。三条都过了再填进 LobeChat,问题就一定在客户端写法上。

四、坑二:模型名写错会怎样

模型名这类错误的表现比地址错更杂,报错来自不同环节,长得完全不一样。

报错原文长什么样:三种形态

你看到的报错含义你要做的动作
404 page not found路径或模型路由没对上回头检查地址和模型 ID
{"error":{"message":"model not found"}}服务端不认识这个模型名去平台列表复制真实 ID
invalid_request_error请求体里的模型字段有问题检查有没有多余字符

纯文本的 404 page not found 多出现在地址写错、或模型名被当成路径一部分的时候。JSON 那条说明地址对、Key 也对,就卡在模型名上。invalid_request_error 通常带更细的说明,多数是模型字段混进了不可见字符,或你填的名字平台列表里压根没有。

{"error":{"message":"model not found","type":"invalid_request_error"}}

看到这段 JSON,动作只有一步:回平台后台复制真实模型 ID,覆盖掉手打的那一份。

模型 ID 必须和平台一致,别自己加后缀

平台列表写 gemini-2.5-pro,你就填 gemini-2.5-pro。有人习惯性补 -latest 凑成 gemini-2.5-pro-latest,觉得名字长一点更保险,实际服务端没这个模型,直接返回 model not found。同样,claude-sonnet-4-5-thinking 不能写成 claude-sonnet-4-5deepseek-v3.2-thinking 也不能省掉 -thinking,这些在平台上都是各自独立的 ID。

自定义模型列表(Model List)怎么加

服务商设置页里有一块模型清单区域。找到「自定义模型」或「模型列表」那一块,点新增,界面上会出现两个输入框:显示名和模型 ID。显示名是给你自己看的标签,写「日常问答」「主力模型」都行;模型 ID 必须一字不差地填平台上的真实 ID。登记完保存,回到会话页顶部的模型选择器,下拉框里就能看到它。

输入框填什么写错的后果
显示名你习惯的称呼,中文也行只是列表里显示得别扭,不影响调用
模型 ID平台列表里的真实 ID报 model not found,调用直接失败

两个框分工很清楚:显示名随便写,模型 ID 不能随便写,把中文名填进模型 ID 那一栏会直接失败。

环境变量里的 OPENAI_MODEL_LIST 怎么写成对

自部署路线用的是环境变量,格式是模型 ID 之间用逗号隔开,也可以写成 模型ID=显示名 的成对形式,比如 gemini-2.5-pro=日常问答,claude-sonnet-4-5-thinking=复杂重构。这样前端下拉框显示中文标签,实际发出去的仍然是模型 ID。这个变量改完必须重启容器才生效,刷新浏览器没用。

五、坑三:API Key 前后带空格或少了前缀

401 invalid api key 的两种来源

报错原文是 401 invalid api key,也有的返回 {"error":{"message":"invalid api key"}}。来源基本两种:一是复制令牌时把首尾的空格、换行一起粘了进去,肉眼看不出来;二是在输入框里手动补了 Bearer 前缀。Key 那一栏只填令牌本身,也就是 sk- 开头那串,Bearer 是客户端拼请求头时自己加的,你补一遍就变成 Bearer Bearer sk-xxx,服务端自然不认。

复制令牌的正确动作

在平台后台的令牌管理页面点复制按钮,不要用鼠标从文本中间划选。粘进 LobeChat 之后,光标点进输入框按一下 End 键,看末尾有没有多余空格或空行。有的浏览器复制会带一个看不见的换行,粘完框里显示成两行,这种就是坏的,清空重来。顺手确认令牌没过期、额度没用完。

六、坑四:系统代理和容器出网

浏览器端请求被转发:Connection timed out

用云端网页版时,请求从浏览器发出去。如果你本机配了系统级 HTTP 代理,或者开着本地代理工具,浏览器的请求可能被转发到那台代理上,而代理并不认识 xyuapi.top,你看到的就是 Connection timed outnet::ERR_CONNECTION_TIMED_OUT,偶尔是 SSL handshake failed。特征是同一个地址在手机或另一台电脑上正常,只有这台机器连不上。

该怎么做:直连或在规则里放行

打开 LobeChat 里网络代理相关的开关,选「不使用代理」或「直连」。如果确实需要走那条通道,就在规则里把 xyuapi.top 加进直连名单,让这个域名的请求不经过转发。手机上如果开了分应用转发,把 LobeChat 这个 App 从列表里排除。

Docker 容器里的出网也要能解析 xyuapi.top

自部署路线的请求从容器里发出去,所以要确认容器能解析域名、能连上 443 端口。宿主机能访问不代表容器能访问。进容器里跑一条:

docker exec -it lobechat sh -c "curl -I https://xyuapi.top/v1/models"

返回 200 或 401 说明容器出网正常。如果报 Could not resolve host,是容器 DNS 的问题,在 docker run 后面加 --dns 223.5.5.5 再启动一次;如果命令一直卡着不返回,检查宿主机有没有对 Docker 网络加限制。同一域名宿主机通、浏览器打不开时,先对比两边解析到的 IP 是不是同一个。

七、按次计费下怎么省:长上下文不用心疼

输入长度不影响价格

小鱼API 的按次计费按请求次数收钱,一次请求固定价,输入长度不影响价格。实际意义是:整篇文档、几千行代码、一整份会议记录一次性贴进对话,价格和只问一句「你好」一样。所以长任务别为了少花钱把材料切碎分批喂,分批反而多花几次的钱,模型还容易丢上下文。

不同用途该挂哪个模型

用途建议模型单价
日常问答、翻译、摘要gemini-2.5-pro0.031 元/次
深度思考、推理、方案评审deepseek-v3.2-thinking0.049 元/次
长文写作、代码生成deepseek-v4-flash-thinking0.05 元/次
复杂重构、跨文件改造claude-sonnet-4-5-thinking0.09 元/次
硬骨头、反复打磨的难题claude-opus-4-5-thinking0.12 元/次

日常聊天挂 gemini-2.5-pro,0.031 元一次;需要认真想一想的题目换 deepseek-v3.2-thinking;要动大手术的重构挂 claude-sonnet-4-5-thinking。这几个在 LobeChat 的模型列表里都登记好,随时切换。

一个月的用量心里有数

每天 50 次日常问答用 gemini-2.5-pro,一个月 1500 次,大约 46.5 元;再加每天 10 次复杂重构用 claude-sonnet-4-5-thinking,一个月 300 次大约 27 元,合起来七十多元一个月,输入写多长都不改这个数。充值 7 元起,支付宝、微信付款,不用海外信用卡。

相关阅读

🚀 想要立即使用?来小鱼API体验全系列AI模型

查看全部产品

支持Gemini / Claude / GPT / Grok / DeepSeek · 国内直连 · 支付宝/微信