loomy2api正式发布!
TL;DR:科大讯飞的桌面 AI 助理 Loomy 每天送不少额度(积分制),但客户端挺臃肿、也不想被绑在它的界面里。我把它的额度封装成了一个自托管 API 网关,OpenAI / Anthropic 双协议兼容,多账号池,带网页控制面板,纯 Python 标准库零依赖,已经开源。
它能干什么
| 能力 | 说明 |
|---|---|
| OpenAI 兼容 | /v1/chat/completions(流式 + 非流式)、/v1/models、/v1/embeddings、/v1/images/generations |
| Anthropic 兼容 | /v1/messages,thinking 块、tool_use / tool_result 都做了翻译,Claude Code 可以直接接 |
| 多账号池 | 一条命令加账号,按积分余额 / 轮询 / LRU 三种策略路由,登录态失效自动换号重试 |
| 网页控制面板 | 每个账号的余额、登录态剩余天数、已用积分、冷却状态一目了然;加号 / 删号 / 禁用 / 强制续期 / 换设备标识都是点一下 |
| 全自动续期 | 登录态 14 天有效,到期前自动用账密重登,挂后台就不用管 |
| 零依赖 | Python 3.9+,不需要 pip 装任何东西 |
| 不用装客户端 | 纯服务端登录(RSA + HMAC 签名那套都在网关里实现了),Loomy 客户端装不装、卸不卸都不影响 |
5 分钟上手
git clone https://github.com/Patrick130306/loomy2api.git
cd loomy2api
cp accounts.example.json accounts.json
python -m loomy2api add main --phone 你的手机号 --password '账号中心设的密码'
python -m loomy2api accounts # 看额度和登录态剩余天数
python -m loomy2api serve # http://127.0.0.1:17890
然后打开 http://127.0.0.1:17890/panel 就是控制面板。
密码要在讯飞账号中心(网页或手机端)设一次 —— Loomy 客户端里没有设密码的入口,
这是我在客户端源码里翻遍了确认过的。没有密码也能用短信验证码登录。
接客户端
| 客户端 | 填法 |
|---|---|
| Cherry Studio / LobeChat / NextChat / Open WebUI | 选「OpenAI 兼容」,Base URL 填 http://127.0.0.1:17890/v1,Key 随便填 |
| 沉浸式翻译 | 自定义 OpenAI 接口,同一个 Base URL |
| Claude Code | ANTHROPIC_BASE_URL=http://127.0.0.1:17890 |
| OpenAI SDK | base_url="http://127.0.0.1:17890/v1" |
模型清单直接从上游拉(11 个),名字原样使用,网关不做映射。倍率越低越省:spark-x 是 x0.1、GLM-5.3-Flash / qwen3.8-flash 是 x0.8、deepseek-v4-flash-0731 是 x3.0、最高的 qwen-3.8-max 是 x12.0。
有个实测出来的细节值得一提:上游自己对不认识的模型名会静默回落到默认模型(我传 gpt-4o-mini,它 200 返回,但回包里 model 是 deepseek-v4-flash-0731)。所以别指望写个 gpt-4o 就能自动映射 —— 要用哪个模型就写哪个 id,怀疑没生效时看回包的 model 字段。
关于「设备标识隔离」
多账号时,每个账号在首次登录会随机生成一套自己的设备标识(devid / 校园设备号)并绑定,
之后每次续期都复用,不会所有号都对外宣布自己是同一台设备。
但说实话,这也是我写在文档里的原话:这不是防封保证。协议里涉及设备的字段就四个,
而且上游真正看重的通常还是出口 IP。想看细节可以翻仓库里的 docs/PROTOCOL.md —— 整条协议的
逆向记录(端点、签名串、错误指纹、积分账本)都在里面。这个项目是按「账号隔离」做的,没打算吹成防封。
部署
README 里有完整部署教程(中英双语):Linux systemd 服务、Windows 任务计划 / NSSM 注册服务、
Docker 和 docker-compose,连「对外开放前必须先设 API Key」这类坑都写了。
# Docker 一句话
mkdir -p data && cp accounts.example.json data/accounts.json
docker compose up -d --build
质量情况
- 109 个测试,全部离线:本地假上游 + 假账号服务,跑测试不碰真实账号、不消耗一个积分
- CI 全绿:Ubuntu / Windows × Python 3.9 / 3.11 / 3.13 六个组合
- 真实账号实跑过:OpenAI 流式/非流式、Anthropic 流式/非流式、生图 / embeddings 透传
顺便说个有意思的事:CI 帮我抓出了一个真 bug —— 刷额度的函数只捕获了自定义异常,
socket / DNS 层异常没接住,结果断网的用户敲 loomy2api accounts 会直接崩。
本机有网永远复现不出来,是 CI 环境连不上上游才把它逼出来的,已经修了并加了回归测试。
免责声明
- 仅供研究和自用,请使用你自己的账号,别滥用、别转售、别做成公开服务压垮上游
- 项目与科大讯飞官方无关,签名常量是官方客户端每个安装包里都会带的客户端常量,只用于和账号服务通信
- MIT 协议,代码随便看
觉得有用的话,给个 Star 就是最大的支持 ⭐
https://github.com/Patrick130306/loomy2api
loomy2api — turn the Loomy (iFlytek desktop AI assistant) quota into a
self-hosted OpenAI- and Anthropic-compatible API gateway: multi-account pool
with balance/round-robin/LRU routing and automatic session renewal, a web control
panel (per-account quota, add/remove/renew, device identity), zero dependencies
(pure Python 3.9+ stdlib), 109 hermetic tests, CI green on Ubuntu/Windows ×
Python 3.9/3.11/3.13. No desktop client required. MIT licensed:
https://github.com/Patrick130306/loomy2api
特别感谢 @user80 提供想法

