AI & AUTOMATION

DS2API – hướng dẫn biến DeepSeek Web thành API tương thích OpenAI, Claude và Gemini

Tóm tắt nhanh:

  • DS2API là cổng API mã nguồn mở viết bằng Go, biến giao diện DeepSeek Web thành endpoint API tương thích đồng thời với OpenAI, Claude (Anthropic) và Gemini (Google).
  • Hỗ trợ đầy đủ các SDK phổ biến: OpenAI SDK, Anthropic SDK, Google Gemini SDK, Codex CLI, Vercel AI SDK, LangChain, LlamaIndex, OpenWebUI.
  • Triển khai linh hoạt qua nhiều phương thức: Docker, Vercel, Zeabur, binary release hoặc build trực tiếp từ mã nguồn.
  • Có sẵn WebUI quản trị tại /admin, hỗ trợ pool nhiều tài khoản DeepSeek, queue concurrent request, PoW (Proof-of-Work) DeepSeekHashV1 native.
  • Cung cấp các model alias linh hoạt: deepseek-v4-flash, deepseek-v4-pro, các biến thể -nothinking, -search, -vision cùng alias kiểu gpt-4.1, gpt-5, claude-*, gemini-*.

Mấy tuần trước mình đang loay hoay với một dự án nhỏ cần dùng AI để xử lý data. Vấn đề là: ChatGPT Plus và Business vừa rồi quét gắt quá, mà dùng API chính thống thì sao chịu nổi. Trong khi đó, DeepSeek Web lại miễn phí và cũng mạnh tương đối. Mình từng tìm kiếm các giải pháp tương tự rồi mà chưa ưng cái nào.

Và rồi mình tìm thấy DS2API trên GitHub. Đây là một project do tác giả CJackHwang phát triển, viết bằng Go, đóng vai trò như một cây cầu giữa giao diện DeepSeek Web và các API chuẩn. Nói cách khác, sau khi cài DS2API, bạn có thể gọi DeepSeek y hệt cách gọi OpenAI, Claude hoặc Gemini – tất cả thông qua endpoint local của mình.

Sơ đồ kiến trúc DS2API với client OpenAI/Claude/Gemini SDK gọi vào DS2API và forward đến DeepSeek

DS2API giải quyết bài toán gì

DS2API hướng đến ba nhóm vấn đề rất thực tế:

  • Tận dụng tài nguyên DeepSeek Web miễn phí thay vì trả tiền cho API Key chính thức.
  • Đa dạng giao thức tương thích – không cần viết lại code, ứng dụng đang dùng OpenAI SDK chỉ cần đổi base_url là dùng được.
  • Tự host hoàn toàn – dữ liệu prompt và response không đi qua bên thứ ba nào ngoài DeepSeek.

Toàn bộ source code và documentation chính thức nằm tại kho lưu trữ DS2API trên GitHub, mình khuyên các bạn star repo trước khi đọc tiếp.

Những điểm khiến mình ưng nhất

Sau khi vọc thử vài ngày, đây là những thứ mình thấy hay:

  • Pool tài khoản và queue: bạn có thể thêm nhiều account DeepSeek, DS2API tự động xoay tour và xếp hàng request.
  • Tool Calling đầy đủ: hỗ trợ delta.tool_calls của OpenAI, tool_use của Claude, functionCall của Gemini – tức là agent framework như LangChain dùng được ngon.
  • PoW DeepSeekHashV1 native: implement bằng Go nên rất nhanh, không cần Node helper.
  • WebUI quản trị: vào /admin có dashboard quản lý key, account, monitoring.
  • Vercel Node Runtime: stream SSE qua Vercel serverless edge, tận dụng được hạ tầng miễn phí.

Hướng dẫn cài đặt DS2API

Project hỗ trợ tới 4 cách triển khai. Mình sẽ chia sẻ hai cách phổ biến nhất là Docker (cho self-host) và Vercel (cho ai không có VPS).

Cách 1: Triển khai bằng Docker

Đây là cách mình recommend vì sạch sẽ, dễ update. Yêu cầu chỉ cần Docker và Docker Compose:

git clone https://github.com/CJackHwang/ds2api.git
cd ds2api

cp .env.example .env
cp config.example.json config.json

Mở file .env để chỉnh các biến quan trọng nhất:

DS2API_ADMIN_KEY=<đặt mật khẩu admin>
DS2API_HOST_PORT=5001

Tiếp theo chỉnh config.json để thêm tài khoản DeepSeek (qua email/mobile) và cấu hình keys hoặc api_keys để client sử dụng. Nó sẽ dạng như này:

{
  [...],
  "accounts": [
    {
      "_comment": "vnROM",
      "name": "vnROM 1",
      "remark": "vnROM",
      "email": "[email protected]",
      "password": "password@123"
    },
    {
      "_comment": "addROM",
      "name": "addROM",
      "email": "[email protected]",
      "password": "password@123"
    },
    {
      "_comment": "duyasia",
      "name": "duyasia",
      "email": "[email protected]",
      "password": "password@123"
    }
  ],
  [...]
}

Sau đó khởi động:

docker compose up -d
docker compose logs -f

Mặc định service chạy trên port 5001. Nếu muốn đổi, sửa DS2API_HOST_PORT trong .env. File config.json được mount vào container tại /data/config.json qua bind mount, nên mọi thay đổi ở host đều phản ánh sang container – rất tiện khi tinh chỉnh.

Cách 2: Triển khai trên Vercel (miễn phí)

Nếu bạn không có VPS, Vercel là lựa chọn tuyệt vời. Các bước:

  • Fork repo về tài khoản GitHub của mình.
  • Vào Vercel, chọn Import Project trỏ tới repo vừa fork.
  • Trong Environment Variables, thêm hai biến:
    • DS2API_ADMIN_KEY: mật khẩu admin
    • DS2API_CONFIG_JSON: nội dung config.json đã encode Base64

Để tạo Base64 từ config:

base64 < config.json | tr -d '\n'

Lưu ý quan trọng:

Trên Vercel, endpoint /v1/chat/completions sẽ chạy qua Node Runtime (api/chat-stream.js) để xử lý SSE và PoW prepare bằng Go, sau đó stream qua Node. Các endpoint khác vẫn chạy normal Go handler.

Cách 3: Tải binary release

Đây là cách nhanh nhất nếu bạn ngại Docker:

tar -xzf ds2api_<tag>_linux_arm64.tar.gz
cd ds2api_<tag>_linux_arm64
cp config.example.json config.json
./ds2api

GitHub Actions tự động build release cho Linux/macOS/Windows. Mình đã thử bản Linux arm64 chạy mượt mà.

Cách 4: Build từ mã nguồn

Yêu cầu Go 1.26+Node.js 20.19+ (hoặc 22.12+) nếu muốn build cả WebUI:

git clone https://github.com/CJackHwang/ds2api.git
cd ds2api
cp config.example.json config.json
go run ./cmd/ds2api

Để build WebUI:

./scripts/build-webui.sh

Hoặc thủ công:

cd webui
npm ci
npm run build -- --outDir static/admin --emptyOutDir

Hướng dẫn sử dụng thực tế

Sau khi DS2API chạy, bạn có thể gọi nó từ bất kỳ ứng dụng nào hỗ trợ OpenAI/Claude/Gemini API.

Sử dụng với OpenAI SDK

Chỉ cần đổi base_url thành endpoint local:

from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:5001/v1",
    api_key="your-key-from-config"
)

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "Xin chào!"}]
)
print(response.choices[0].message.content)

  "gpt-4o": "deepseek-v4-flash",
  "gpt-5.3-codex": "deepseek-v4-pro",
  "gpt-5.5": "deepseek-v4-flash",
  "o3": "deepseek-v4-pro"

DS2API hỗ trợ alias rất hay: bạn có thể dùng gpt-4o, gpt-5.3-codex, gpt-5.5, o3 – chúng được map sang model DeepSeek tương ứng trong config.json. Suffix -nothinking để tắt chain-of-thought, -search để bật web search, -vision cho input ảnh.

[Ảnh minh họa: WebUI admin DS2API hiển thị danh sách account pool, key management và monitoring]

Sử dụng với Claude Code

Đây là use case mình thấy hay nhất. Set hai biến môi trường:

export ANTHROPIC_BASE_URL=http://127.0.0.1:5001
export ANTHROPIC_API_KEY=<key trong config.json>

Sau đó chạy Claude Code như bình thường. DS2API sẽ map claude-sonnet-4-6 sang deepseek-v4-flash, claude-opus-4-6 sang deepseek-v4-pro. Nó còn convert protocol DSML của DeepSeek thành tool_use chuẩn của Claude một cách tự động.

Sử dụng với Gemini SDK

Endpoint Gemini available tại /v1beta/models/{model}:generateContent/v1beta/models/{model}:streamGenerateContent. Chỉ cần set x-goog-api-key header bằng key trong config.

Truy cập WebUI quản trị

Mở trình duyệt vào http://127.0.0.1:5001/admin, đăng nhập bằng DS2API_ADMIN_KEY. Tại đây bạn có thể:

  • Thêm/xóa tài khoản DeepSeek vào pool.
  • Quản lý API key cho client.
  • Xem real-time monitoring (request count, queue depth, account status).
  • Test endpoint trực tiếp từ UI.

Health check

Hai endpoint tiện cho monitoring:

curl http://127.0.0.1:5001/healthz
curl http://127.0.0.1:5001/readyz

Mình thường set hai endpoint này vào Uptime Kuma để theo dõi.


Mình muốn nói thẳng: DS2API là một project rất sáng tạo, giải quyết đúng pain point của ae nghèo như mình. Đặc biệt là dùng được cho OpenClaw, tool call được luôn nhé ae. Tuy nhiên cũng cần lưu ý vài điểm trước khi sử dụng:

  • Tuân thủ Terms of Service của DeepSeek: việc dùng giao diện Web qua API có thể vi phạm ToS, hãy đọc kỹ trước khi triển khai cho production.
  • Dùng cho mục đích cá nhân/học tập: mình thấy hợp với side project, prototype, không khuyến khích đưa vào sản phẩm thương mại.
  • Theo dõi update thường xuyên: DeepSeek có thể đổi giao thức, project cần cập nhật theo. Hãy bật notification trên repo để không bỏ sót release.

Để bắt đầu khám phá sâu hơn, các bạn ghé trang chủ DS2API trên GitHub và đọc kỹ phần docs/ARCHITECTURE.md cùng API.md. Một số hướng mở rộng mình đang định khám phá tiếp: tích hợp DS2API vào n8n để xây workflow automation chạy trên DeepSeek, dùng nó như backend cho OpenWebUI để có giao diện chat đẹp, hoặc kết hợp với LangChain để build agent xử lý dữ liệu cá nhân. Nếu bạn cũng đang đi cùng hướng, ới mình một tiếng nhé – cafe mình mời, chúng ta cùng bàn cách tận dụng DS2API hiệu quả nhất.

Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận