# Minimaxi-2api **Repository Path**: Chinese-tingfeng/Minimaxi-2api ## Basic Information - **Project Name**: Minimaxi-2api - **Description**: 基于无头浏览器 (Playwright) 代理海螺 AI,通过破解动态签名与浏览器指纹实现反检测,支持多账号轮询与 Docker 一键部署 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-10 - **Last Updated**: 2025-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🐌 Minimaxi-Local-API - 你的海螺AI本地“黑科技”代理 ![状态:光荣牺牲 ☠️](https://img.shields.io/badge/status-光荣牺牲-red.svg) !许可证:随便用 🤷 [1](https://img.shields.io/badge/license-MIT-blue.svg) --- ## 📢 这是个啥玩意儿? 简单说,这玩意儿本来想干一件很酷的事:把 **海螺AI (Minimaxi)** 网页版的聊天,伪装成一个标准的 **OpenAI API**。 **为啥要这么干?** 🤔 因为这样你就可以把你从海螺AI官网搞来的免费账号,接入到各种花里胡哨的第三方聊天软件里(比如 LobeChat, NextChat, Ama, One-API 等等),假装你拥有了一个自己的、不要钱的、还挺强的AI模型! 听起来是不是很牛逼?😎 --- ## 💥 警告:项目已阵亡!💥 是的,你没看错。这个项目,在我们与海螺AI官方后端工程师(我们猜的)进行了几个回合的史诗级攻防战后,**光荣牺牲了**。 **直接下载部署?100%跑不起来!** 🚫 但别急着走!这个仓库现在变成了一个“战争博物馆”,记录了我们是如何从初级黑客,一步步被逼成动用“核武器”(然后把自己炸死)的全过程。对于想学习API逆向、Docker部署和“如何优雅地失败”的朋友们来说,这里遍地都是宝藏(和尸体)。 --- ## ✨ 项目的设计目标(我们的梦想) 我们当初的梦想是: * **🤖 变身大师**:让海螺AI乖乖听话,吐出OpenAI格式的数据。 * **⚡️ 快如闪电**:用上了`FastAPI`,号称“异步小子”,想让它快得飞起。 * **👨‍👩‍👧‍👦 多号养蛊**:你可以把七大姑八大姨的海螺账号`token`全塞进来,它能自动轮流用,主打一个雨露均沾。 * **🔑 破解暗号**:我们熬夜破解了海螺AI用来验证身份的神秘暗号 `yy` 签名。当时我们觉得自己就是《碟中谍》里的阿汤哥。 * **📦 一键开盒**:提供了`Dockerfile`,梦想着大家都能像开箱方便面一样,一键部署。 --- ## 💔 项目的失败:一场血泪斑斑的“猫鼠游戏” 来,搬个小板凳,听我讲讲我们是怎么被海螺AI的工程师按在地上摩擦的: ### 第一回合:【门票检查】`401 Unauthorized` 🎟️ * **战况**:我们第一次敲门,被保安直接拦下:“滚,不认识你!” * **敌方招数**:检查你有没有带门票 (`token`)。 * **我方对策**:我们溜进后台,从浏览器里偷了一张门票。 * **结果**:✅ **胜利!** 我们进去了! ### 第二回合:【黑话暗号】`400 Bad Request` 🤫 * **战况**:刚进门,一个神秘人拦住我们:“天王盖地虎?” 我们答不上来。 * **敌方招数**:检查一个叫 `yy` 的动态暗号,这暗号每秒都在变。 * **我方对策**:我们绑架了他们的一个信使(前端JS),严刑拷打后,学会了他们的黑话生成规则。 * **结果**:✅ **惨胜!** 我们以为已经赢得了整个战争。 ### 第三回合:【全身扫描】`400 Bad Request` (又来了!) 🕵️‍♂️ * **战况**:我们说着流利的黑话,结果被一台X光机从头扫到脚,警报大作! * **敌方招数**:不仅要对上暗号,你还得穿得跟他们一模一样!从你电脑的CPU核心数,到你屏幕的分辨率,都得对上!这就是所谓的“浏览器指纹”。 * **我方对策**:我们搞来了一套一模一样的制服(硬编码所有浏览器指纹),再次尝试混入。 * **结果**:❌ **惨败!** 我们发现制服的口袋里,似乎还少了一张今天早上刚发的、带着墨水味的动态通行证(可能是`cookie`里的某个值)。我们伪造不出来。 ### 最终回合:【召唤高达】`Executable doesn't exist` 🤖💥 * **战况**:被逼上绝路,我们决定不装了,摊牌了!我们直接开了一台高达(`Playwright`无头浏览器),想直接冲进基地。 * **敌方招数**:这次不是海螺AI了,是我们的部署平台 **Hugging Face**。它说:“你想把高达停在我家车库?可以。但你开高达的驾驶员(`user`用户),没权限进我存放高达零件(浏览器文件)的那个房间(`/root`目录)。” * **我方对策**:我们尝试了各种方法,想让驾驶员拿到钥匙,或者把高达停在别的地方。 * **结果**:❌ **彻底失败!** 驾驶员和高达被永远地隔开了。我们的应用在启动时,因为找不到高达的引擎而直接爆炸。 --- ## 🛠️ 如何“复活”这个项目?(如果你头铁的话) 想当那个把高达开出来的人吗?可以,但别在 Hugging Face 的小车库里折腾了。你需要一个自己的、足够大的基地。 ### 基地要求: * 一台你说了算的 Linux 服务器(VPS、云主机、或者你自己的电脑装个Linux)。 * 装好 `Docker` 和 `Docker Compose`。 ### 复活步骤: 1. **克隆“高达”设计图**: ```bash git clone https://github.com/lz-A6/Minimaxi-2api.git cd Minimaxi-2api ``` 2. **偷一张新的“门票” (`token`)**: * 用 Chrome 浏览器登录海螺AI官网。 * 按 `F12` 打开开发者工具,选“网络(Network)”。 * 随便发句话,在请求列表里找到 `msg` 请求。 * 在“请求标头(Request Headers)”里,找到 `token`,把它后面那一大长串 `eyJ...` 开头的玩意儿完整复制下来。 3. **配置你的“基地”**: 在项目文件夹里,新建一个叫 `.env` 的文件,把下面的内容抄进去,并修改: ```dotenv # .env - 你的秘密基地配置文件 # 你想让服务在哪个端口接客?随便写,别冲突就行 LISTEN_PORT=8085 # 你的API访问密码,设得复杂点! API_MASTER_KEY="a_very_secret_password_123" # 你的海螺AI门票,把刚刚偷来的那串粘贴到这里 MINIMAXI_TOKENS="eyJ...(这里是你复制的那一长串)" ``` 4. **启动“高达”组装线**: 确保你的 `Dockerfile` 是 `v9.0` 版本(全程用`root`权限那个),然后 `docker-compose.yml` 看起来像这样: ```yaml version: '3.8' services: minimaxi-local: build: . ports: - "${LISTEN_PORT:-8085}:8085" env_file: - .env restart: unless-stopped # 给高达的驾驶舱分配足够大的内存,不然会卡 shm_size: '2gb' ``` 然后在终端里,运行: ```bash docker-compose up --build ``` 这个过程会很慢,因为它真的在下载一台“高达”(Chromium浏览器)。耐心点! 5. **测试一下**: 启动成功后,打开另一个终端,输入: ```bash curl -X GET "http://localhost:8085/v1/models" -H "Authorization: Bearer a_very_secret_password_123" ``` 如果它吐出了一串 JSON,恭喜你,你成功复活了这台高达!现在你可以把 `http://<你的服务器IP>:${LISTEN_PORT}` 配置到你的聊天软件里去浪了。 ## 🙏 最后的遗言 这个项目证明了一个真理:道高一尺,魔高一丈。 感谢你参观我们的“战争博物馆”。如果你真的成功复活了它,请务必在 Issues 里告诉我一声,你就是我们的英雄!🫡 ---