File size: 8,584 Bytes
33f27ba | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 | ---
title: DS2api
emoji: "🧠"
colorFrom: blue
colorTo: indigo
sdk: docker
app_port: 7860
pinned: false
---
# 🧠 DeepSeek2API
[](LICENSE)


让 DeepSeek 用起来像 OpenAI。高速流式输出、多轮对话、R1 深度思考、多账号轮换、工具调用——全都给你包好了。
**兼容 OpenAI Chat Completions** 和 **Anthropic Messages API** 两种格式,内部自动转换,所以 Claude 的 SDK 也能直接连。
## 📖 目录
- [🧠 DeepSeek2API](#-deepseek2api)
- [📖 目录](#-目录)
- [⚠️ 免责声明](#️-免责声明)
- [📁 项目结构](#-项目结构)
- [🔑 接入准备](#-接入准备)
- [多账号](#多账号)
- [config.json 配置](#configjson-配置)
- [🚀 部署方式](#-部署方式)
- [Docker 部署](#docker-部署)
- [Docker Compose 部署](#docker-compose-部署)
- [Vercel 部署](#vercel-部署)
- [原生部署](#原生部署)
- [📋 接口列表](#-接口列表)
- [模型列表](#模型列表)
- [对话补全](#对话补全)
- [Anthropic Messages API](#anthropic-messages-api)
- [📊 仪表盘 Dashboard](#-仪表盘-dashboard)
- [💭 思考模式](#-思考模式)
- [🔍 搜索增强](#-搜索增强)
- [⚡ 注意事项](#-注意事项)
- [Nginx 反代优化](#nginx-反代优化)
- [Token 统计](#token-统计)
- [工具调用 (tool\_calls)](#工具调用-tool_calls)
- [⭐ Star History](#-star-history)
- [🙏 鸣谢](#-鸣谢)
## ⚠️ 免责声明
**逆向 API 是不稳定的。** 说人话:随时可能炸。建议去 DeepSeek 官方 https://platform.deepseek.com/ 付费使用,稳,而且支持官方。
本组织和个人不接受任何资金捐助和交易,此项目是纯粹研究交流学习性质!
**仅限自用,禁止对外提供服务或商用,避免对官方造成服务压力,否则风险自担!**
## 📁 项目结构
```
app_visualization.py # 🚀 **推荐入口** — 原 API + 统计仪表盘二合一,启动这个就行
app.py # 向后兼容入口,实际逻辑在 app/ 包中
web/ # 仪表盘前端(Material Design 3)
├── index.html
├── app.js
└── styles.css
data.db # 统计数据库(自动生成)
app/ # 核心逻辑包
├── main.py # FastAPI 应用创建、CORS、启动
├── config.py # config.json 读写
├── constants.py # DeepSeek URL、请求头、路径常量
├── models.py # Tokenizer 加载
├── session.py # curl_cffi Session 管理
├── account.py # 账号队列、登录、鉴权
├── pow.py # WASM PoW 计算(DeepSeekHashV1)
├── chat.py # 消息合并、工具调用检测
├── converter.py # OpenAI ↔ Anthropic 格式互转
└── routes.py # 所有 API 路由
config.json # 你的配置(密钥 + 账号)
```
## 🔑 接入准备
需要一个或多个 DeepSeek 账号
### 多账号
同一个账号同一时间只能跑**一路**输出。配置多个账号,请求会自动轮换。
### config.json 配置
```json
{
"keys": ["key1", "key2"],
"accounts": [
{ "email": "user@example.com", "password": "your-password", "token": "" },
{ "mobile": "13800138000", "password": "your-password", "token": "" }
]
}
```
- `keys` - 你的 API 鉴权密钥,请求时放在 `Authorization: Bearer xxx` 里
- `accounts` - DeepSeek 账号列表,支持邮箱或手机登录
## 🚀 部署方式
### Docker 部署
```shell
docker run -d \
-p 5001:5001 \
-v "$(pwd)/config.json:/app/config.json" \
-v "$(pwd)/data.db:/app/data.db" \
--name deepseek2api \
ghcr.io/HELPMEEADICE/deepseek2api-neo:latest
```
查看日志:`docker logs -f deepseek2api`
### Docker Compose 部署
```shell
git clone https://github.com/HELPMEEADICE/deepseek2api-neo.git
cd deepseek2api
# 修改 config.json
docker-compose up -d
```
### Vercel 部署
> [!NOTE]
> Vercel 免费版请求超时 10 秒,接口响应时间可能更长,可能会 504。
[](https://vercel.com/import/project?template=https://github.com/HELPMEEADICE/deepseek2api-neo)
部署完后回 GitHub 仓库配 config.json,**一定要私库!**
### 原生部署
```shell
git clone https://github.com/HELPMEEADICE/deepseek2api-neo.git
cd deepseek2api
pip install -r requirements.txt
# 修改 config.json
python app_visualization.py
```
后台挂起:
```shell
nohup uvicorn app_visualization:app --host 0.0.0.0 --port 5001 > uvicorn.log 2>&1 &
```
## 📋 接口列表
同时支持 OpenAI 兼容的 `/v1/chat/completions` 和 Anthropic 兼容的 `/v1/messages`,用你喜欢的 SDK 就行。
### 模型列表
**GET /v1/models**
```json
{
"data": [
{ "id": "deepseek-v4-flash", "object": "model" },
{ "id": "deepseek-v4-flash-search", "object": "model" },
{ "id": "deepseek-chat", "object": "model" },
{ "id": "deepseek-chat-search", "object": "model" },
{ "id": "deepseek-reasoner", "object": "model" },
{ "id": "deepseek-reasoner-search", "object": "model" },
{ "id": "deepseek-v4-pro", "object": "model" },
{ "id": "deepseek-v4-pro-search", "object": "model" }
]
}
```
每个模型都有带 `-search` 后缀的版本,自动开启联网搜索。
### 对话补全
**POST /v1/chat/completions**
完全兼容 [OpenAI Chat Completions API](https://platform.openai.com/docs/guides/text-generation/chat-completions-api)。
```json
{
"model": "deepseek-v4-flash",
"messages": [{ "role": "user", "content": "你是谁?" }],
"stream": false,
"thinking": {"type": "enabled"},
"tools": [...]
}
```
### Anthropic Messages API
**POST /v1/messages**
兼容 Claude SDK,认证方式二选一:
```
Authorization: Bearer your-key
x-api-key: your-key
```
```json
{
"model": "deepseek-v4-flash",
"system": "You are a helpful assistant.",
"messages": [{ "role": "user", "content": "你是谁?" }],
"stream": false,
"thinking": {"type": "enabled"}
}
```
## 📊 仪表盘 Dashboard
打开浏览器访问 `http://你服务器IP:5001/dashboard`,就能看到:
- 📈 每日请求数、Token 消耗
- 🎯 按模型分(Flash / Pro)的输入输出统计
- 👤 每个账号的用量明细
- 🔄 自动刷新,支持今日 / 近7天 / 近30天切换
技术栈:Material Design 3 + Chart.js,暗色模式自适应。
这就是为什么我们**推荐你启动 `app_visualization.py` 而不是 `app.py`**——API 能力完全一样,多了一个漂亮的仪表盘,不亏。
## 💭 思考模式
模型默认开启思考,支持两种关闭方式:
```json
// OpenAI 格式
{ "model": "deepseek-v4-flash", "thinking_enabled": false }
// Anthropic 格式
{ "model": "deepseek-v4-flash", "thinking": false }
```
- `deepseek-reasoner` **强制开启思考**,不能关
- `deepseek-v4-flash` / `deepseek-v4-pro` 默认开,可关
## 🔍 搜索增强
模型名后面加 `-search` 后缀即可开启联网搜索:
```json
{ "model": "deepseek-v4-flash-search" }
```
也可以在请求体里传 `search_enabled: true` 达到同样的效果。
## ⚡ 注意事项
### Nginx 反代优化
```nginx
proxy_buffering off;
chunked_transfer_encoding on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 120;
```
### Token 统计
符合 OpenAI 规范,思考模式下返回 `reasoning_tokens`:
```json
"usage": {
"completion_tokens": 37,
"prompt_tokens": 1,
"total_tokens": 38,
"completion_tokens_details": { "reasoning_tokens": 20 }
}
```
### 工具调用 (tool_calls)
支持 OpenAI 标准的 `tools` 参数,返回 `finish_reason: "tool_calls"`。
支持多轮工具对话:assistant 返回 `tool_calls` → 客户端执行工具 → 把结果作为 `tool` 角色发回来 → 模型继续回答。
## ⭐ Star History
[](https://star-history.com/#HELPMEEADICE/deepseek2api-neo&Date)
## 🙏 鸣谢
部分代码参考了 [LLM-Red-Team/deepseek-free-api](https://github.com/LLM-Red-Team/deepseek-free-api),在此表示感谢。
|