muse2api:把 muse.ai 网页版包装成 OpenAI 兼容 API 的异步网关
发现一个刚创建几天的开源项目,思路挺有意思,分享一下。 教程整理不易,大家多多支持我,邀请码:D3XYWA 领取 10 亿 token ,部署此项目可以薅干赠送的 token
muse2api 是一个异步网关,把 muse.ai 网页版的聊天、文生图、文生视频功能,暴露成标准的 OpenAI 接口(/v1/chat/completions、/v1/images/generations 等)。
这意味着现有的 OpenAI 生态客户端——ChatGPT-Next-Web 、LobeChat 、Cherry Studio——只需要改个 base_url 就能直接用,OpenAI 的 Python SDK 也是一行代码的事:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:18610/v1", api_key="<API_KEY>")
架构亮点
1. 可插拔驱动
所有与上游 muse.ai 交互的方式被抽象在 MuseDriver 接口后面,目前有三种:
mock:离线假数据,无需账号,方便联调和前端开发
browser:Chromium + CDP ,一个账号一个 BrowserContext ,真实操作网页版
http:直接协议驱动,预留位置(目前返回 501 )
2. 账号池
调度策略:lru / round_robin / affinity
单账号并发限制
失败自动冷却、过期 session 自动下线
请求还没开始吐流时失败,自动换账号重试
3. 全异步
FastAPI + asyncio ,CDP 客户端走 websockets ,没有任何请求会阻塞线程。流式请求会先拿到第一个 chunk 再返回 200 ,所以"无可用账号"这类错误会以正常 HTTP 状态码返回,而不是断在半截流里。
分层也很干净:协议层 / 服务层 / 账号池 / 驱动层职责单一,TODO.md 里把后续工作按"验证测试 → 驱动 → 协议 → 运维"排好了,CONTRIBUTING 也有,一看就是想长期做的。
快速上手
bash
git clone https://github.com/www222fff/muse2api.git
cd muse2api
cp .env.example .env
docker compose up -d --build
默认监听 127.0.0.1:18610 。用真实账号的话,把 .env 里的 MUSE2API_DRIVER 设为 browser ,从已登录 muse.ai 的浏览器导出 cookie (至少需要 hatch_sess 、hatch_gw 、hatch_vml 、hatch_native_auth_device ),再走 Admin API 导入账号。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.