Upload 4 files
Browse files- .env.example +21 -0
- Dockerfile +27 -17
- README.md +147 -13
- package.json +2 -1
.env.example
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 服务端口
|
| 2 |
+
PORT=3000
|
| 3 |
+
|
| 4 |
+
# Mammouth账号Cookie(多个账号用逗号分隔)
|
| 5 |
+
COOKIES=your_mammouth_cookies_here
|
| 6 |
+
|
| 7 |
+
# API认证密钥
|
| 8 |
+
AUTH_TOKEN=sk-your-auth-token-here
|
| 9 |
+
|
| 10 |
+
# Imgbb图床API密钥
|
| 11 |
+
IMGBB_API_KEY=78f0c4360135e80c46b24b44e1e20a20
|
| 12 |
+
|
| 13 |
+
# 图片处理配置
|
| 14 |
+
# 最大图片尺寸(像素)
|
| 15 |
+
IMAGE_MAX_SIZE=8000
|
| 16 |
+
|
| 17 |
+
# 图片裁切重叠像素数
|
| 18 |
+
IMAGE_OVERLAP_PIXELS=75
|
| 19 |
+
|
| 20 |
+
# 是否使用Imgbb图床(true/false)
|
| 21 |
+
USE_IMGBB=true
|
Dockerfile
CHANGED
|
@@ -1,17 +1,27 @@
|
|
| 1 |
-
FROM node:
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM node:lts-alpine
|
| 2 |
+
|
| 3 |
+
# 安装Sharp所需的系统依赖
|
| 4 |
+
RUN apk add --no-cache \
|
| 5 |
+
vips-dev \
|
| 6 |
+
build-base \
|
| 7 |
+
python3 \
|
| 8 |
+
make \
|
| 9 |
+
g++
|
| 10 |
+
|
| 11 |
+
# 设置工作目录
|
| 12 |
+
WORKDIR /app
|
| 13 |
+
|
| 14 |
+
# 复制package.json和package-lock.json
|
| 15 |
+
COPY package*.json ./
|
| 16 |
+
|
| 17 |
+
# 安装依赖
|
| 18 |
+
RUN npm install
|
| 19 |
+
|
| 20 |
+
# 复制源代码
|
| 21 |
+
COPY . .
|
| 22 |
+
|
| 23 |
+
# 暴露端口
|
| 24 |
+
EXPOSE 3000
|
| 25 |
+
|
| 26 |
+
# 启动命令
|
| 27 |
+
CMD ["npm", "start"]
|
README.md
CHANGED
|
@@ -1,13 +1,147 @@
|
|
| 1 |
-
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom: blue
|
| 5 |
-
colorTo:
|
| 6 |
-
sdk: docker
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: Mamm Enhanced
|
| 3 |
+
emoji: 🖼️
|
| 4 |
+
colorFrom: blue
|
| 5 |
+
colorTo: gray
|
| 6 |
+
sdk: docker
|
| 7 |
+
pinned: false
|
| 8 |
+
app_port: 3000
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# 🚀 Mammouth API 代理服务 (增强版)
|
| 12 |
+
|
| 13 |
+
[](https://github.com/rfym21/mammouth-proxy) [](https://hub.docker.com/r/rfym21/mammouth-proxy)
|
| 14 |
+
|
| 15 |
+
_一个强大的 API 代理服务,将 OpenAI 格式请求转发到 Mammouth AI 平台,支持智能大图片处理和外部图床存储_
|
| 16 |
+
|
| 17 |
+
## ✨ 新增功能特点
|
| 18 |
+
|
| 19 |
+
### 🖼️ **智能图片处理**
|
| 20 |
+
- **自动裁切**:超过8000x8000像素的大图片自动智能裁切
|
| 21 |
+
- **重叠区域**:裁切时添加50-100像素重叠,保持内容连续性
|
| 22 |
+
- **外部图床**:集成Imgbb图床,图片存储在外部,不占用本地空间
|
| 23 |
+
- **批量处理**:支持裁切后的多个图片片段按序上传和识别
|
| 24 |
+
|
| 25 |
+
### 🔧 **原有功能**
|
| 26 |
+
- **OpenAI 兼容接口**:接收标准 OpenAI 格式的 API 请求
|
| 27 |
+
- **多模型支持**:支持 Claude、Grok、Gemini 和 GPT-4o-mini 等多种模型
|
| 28 |
+
- **流式响应**:支持 SSE 格式的流式响应处理与转发
|
| 29 |
+
- **API 认证**:内置 API 密钥验证机制
|
| 30 |
+
- **账号轮换**:自动在多个账号间轮换,解决使用限制问题
|
| 31 |
+
|
| 32 |
+
## 🤖 支持的模型
|
| 33 |
+
|
| 34 |
+
| OpenAI 格式模型名称 | Mammouth 平台对应模型 | 稳定性 |
|
| 35 |
+
|-------------------|---------------------|-------|
|
| 36 |
+
| `claude-sonnet-4-20250514` | `anthropic-claude-4-2025-05-14` | 高 |
|
| 37 |
+
| `gpt-4o-mini` | `openai-gpt-4o-mini` | 中 |
|
| 38 |
+
| `o4-mini` | `openai-o4-mini` | 中 |
|
| 39 |
+
| `gemini-2.5-pro-preview-05-06` | `google-gemini-2.5-pro` | 高 |
|
| 40 |
+
| `grok-3` | `xai-grok-3-beta` | 低 |
|
| 41 |
+
|
| 42 |
+
## ⚙️ 环境变量配置
|
| 43 |
+
|
| 44 |
+
### 必需配置
|
| 45 |
+
```bash
|
| 46 |
+
COOKIES=你的mammouth账号cookie(多个用逗号分隔)
|
| 47 |
+
AUTH_TOKEN=你的API认证密钥
|
| 48 |
+
```
|
| 49 |
+
|
| 50 |
+
### 可选配置(有默认值)
|
| 51 |
+
```bash
|
| 52 |
+
# 服务端口
|
| 53 |
+
PORT=3000
|
| 54 |
+
|
| 55 |
+
# Imgbb图床API密钥
|
| 56 |
+
IMGBB_API_KEY=78f0c4360135e80c46b24b44e1e20a20
|
| 57 |
+
|
| 58 |
+
# 图片处理配置
|
| 59 |
+
IMAGE_MAX_SIZE=8000 # 最大图片尺寸(像素)
|
| 60 |
+
IMAGE_OVERLAP_PIXELS=75 # 裁切重叠像素数
|
| 61 |
+
USE_IMGBB=true # 是否使用Imgbb图床
|
| 62 |
+
```
|
| 63 |
+
|
| 64 |
+
## 🔍 Cookie 获取方法
|
| 65 |
+
|
| 66 |
+
1. 登录 Mammouth 平台 (https://mammouth.ai)
|
| 67 |
+
2. 打开浏览器开发者工具 (F12) 并切换到"应用"或"存储"选项卡
|
| 68 |
+
3. 在 Cookies 中找到 `auth_session` 的值
|
| 69 |
+
4. 复制该值并设置为环境变量
|
| 70 |
+
|
| 71 |
+
## 📖 使用说明
|
| 72 |
+
|
| 73 |
+
### 大图片处理示例
|
| 74 |
+
|
| 75 |
+
当你上传一张超过8000x8000像素的图片时,系统会:
|
| 76 |
+
|
| 77 |
+
1. **自动检测**图片尺寸
|
| 78 |
+
2. **智能裁切**为多个8000x8000以内的片段
|
| 79 |
+
3. **添加重叠**区域保持内容连续性
|
| 80 |
+
4. **批量上传**到Imgbb图床
|
| 81 |
+
5. **按序传递**给AI模型进行识别
|
| 82 |
+
|
| 83 |
+
### API调用示例
|
| 84 |
+
|
| 85 |
+
```bash
|
| 86 |
+
curl -X POST "https://your-space.hf.space/v1/chat/completions" \
|
| 87 |
+
-H "Authorization: Bearer your-auth-token" \
|
| 88 |
+
-H "Content-Type: application/json" \
|
| 89 |
+
-d '{
|
| 90 |
+
"model": "claude-sonnet-4-20250514",
|
| 91 |
+
"messages": [
|
| 92 |
+
{
|
| 93 |
+
"role": "user",
|
| 94 |
+
"content": [
|
| 95 |
+
{
|
| 96 |
+
"type": "text",
|
| 97 |
+
"text": "请分析这张图片"
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"type": "image_url",
|
| 101 |
+
"image_url": {
|
| 102 |
+
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ..."
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
]
|
| 106 |
+
}
|
| 107 |
+
]
|
| 108 |
+
}'
|
| 109 |
+
```
|
| 110 |
+
|
| 111 |
+
## 🚀 部署到 Hugging Face
|
| 112 |
+
|
| 113 |
+
1. 创建新的 Hugging Face Space,选择 Docker SDK
|
| 114 |
+
2. 上传所有项目文件
|
| 115 |
+
3. 在 Settings → Variables 中设置环境变量
|
| 116 |
+
4. 等待自动构建完成
|
| 117 |
+
|
| 118 |
+
## 💡 技术架构
|
| 119 |
+
|
| 120 |
+
- **Node.js + Express**:轻量级服务器框架
|
| 121 |
+
- **Sharp**:高性能图片处理库
|
| 122 |
+
- **Imgbb API**:外部图床服务
|
| 123 |
+
- **智能裁切算法**:保持内容连续性的图片分割
|
| 124 |
+
- **Docker Alpine**:优化的容器环境
|
| 125 |
+
|
| 126 |
+
## 📝 更新日志
|
| 127 |
+
|
| 128 |
+
### v2.2.0 (Enhanced)
|
| 129 |
+
- ✅ 新增智能大图片裁切功能
|
| 130 |
+
- ✅ 集成Imgbb外部图床
|
| 131 |
+
- ✅ 添加图片重叠区域处理
|
| 132 |
+
- ✅ 优化Docker构建支持Sharp
|
| 133 |
+
- ✅ 增强错误处理和重试机制
|
| 134 |
+
|
| 135 |
+
### v2.1.0 (Original)
|
| 136 |
+
- ✅ OpenAI兼容接口
|
| 137 |
+
- ✅ 多模型支持
|
| 138 |
+
- ✅ 账号轮换机制
|
| 139 |
+
- ✅ 流式响应支持
|
| 140 |
+
|
| 141 |
+
## 💬 交流与支持
|
| 142 |
+
|
| 143 |
+
[](https://t.me/nodejs_project)
|
| 144 |
+
|
| 145 |
+
---
|
| 146 |
+
|
| 147 |
+
**注意**:本项目基于原版 [mammouth-proxy](https://github.com/rfym21/mammouth-proxy) 进行增强,添加了智能图片处理功能。
|
package.json
CHANGED
|
@@ -17,6 +17,7 @@
|
|
| 17 |
"express": "^5.1.0",
|
| 18 |
"form-data": "^4.0.2",
|
| 19 |
"nodemon": "^3.1.10",
|
| 20 |
-
"uuid": "^11.1.0"
|
|
|
|
| 21 |
}
|
| 22 |
}
|
|
|
|
| 17 |
"express": "^5.1.0",
|
| 18 |
"form-data": "^4.0.2",
|
| 19 |
"nodemon": "^3.1.10",
|
| 20 |
+
"uuid": "^11.1.0",
|
| 21 |
+
"sharp": "^0.33.0"
|
| 22 |
}
|
| 23 |
}
|