CJackHwang /ds2api

DeepSeek-Compatible Middleware Interface: A technical exploration project in Go, focusing on high-concurrency protocol adaptation. It serves as a reference implementation for converting diverse web protocols into standardized formats.

★ 4,720⑂ 1,633👁 18▤ 61
GoCreated 2026-01-21linux.do/u/cjackhwang
4,720
stars
+0+-1+-16
1,633
forks
18
watchers
–
prs
–
issues
61
releases
–
discussions

README

DS2API




!Stars
!Forks






语言 / Language: 中文 | English

将 DeepSeek Web 对话能力转换为 OpenAI、Claude 与 Gemini 兼容 API。核心后端以 Go 实现,Vercel 流式桥接额外使用少量 Node Runtime,前端为 React WebUI 管理台(源码在 webui/,部署时自动构建到 static/admin)。

文档入口:文档导航 / 架构说明 / 接口文档

【感谢Linux.do社区及GitHub社区各位开发者对项目的支持与贡献】

 Star History


 
   
   
   
 


 重要免责声明

 本仓库仅供学习、研究、个人实验和内部验证使用,不提供任何形式的商业授权、适用性保证或结果保证。

 作者及仓库维护者不对因使用、修改、分发、部署或依赖本项目而产生的任何直接或间接损失、账号封禁、数据丢失、法律风险或第三方索赔负责。

 请勿将本项目用于违反服务条款、协议、法律法规或平台规则的场景。商业使用前请自行确认 LICENSE、相关协议以及你是否获得了作者的书面许可。

 目录

- 架构概览(摘要)
- 核心能力
- 平台兼容矩阵
- 模型支持
  - OpenAI 接口
  - Claude 接口
  - Gemini 接口
- 快速开始
  - 方式一:下载 Release 构建包
  - 方式二:Docker 运行
  - 方式三:Vercel 部署
  - 方式四:本地源码运行
- 配置说明
- 鉴权模式
- 并发模型
- Tool Call 适配
- 本地开发抓包工具
- 文档索引
- 测试
- Release 自动构建(GitHub Actions)
- 免责声明

 架构概览(摘要)

mermaid
flowchart LR
    Client["🖥️ 客户端 / SDK\n(OpenAI / Claude / Gemini)"]
    Upstream["☁️ DeepSeek API"]

    subgraph DS2API["DS2API 4.x(模块化 HTTP surface + PromptCompat 内核)"]
        Router["chi Router + 中间件\n(RequestID / RealIP / Logger / Recoverer / CORS)"]

        subgraph HTTP["HTTP API surface"]
            OA["OpenAI\nchat / responses / files / embeddings"]
            CA["Claude\n/anthropic/ + /v1/messages"]
            GA["Gemini\n/v1beta/models/ + /v1/models/"]
            Admin["Admin API\n资源子包"]
            WebUI["WebUI\n/admin(静态托管)"]
            Vercel["Vercel Node Stream\n/v1/chat/completions"]
        end

        subgraph Runtime["运行时核心能力"]
            Compat["PromptCompat\n(API - 网页纯文本上下文)"]
            Completion["Completion Runtime\n(Session / PoW / Completion)"]
            Turn["AssistantTurn\n(输出语义归一)"]
            Auth["Auth Resolver\n(API key / bearer / x-goog-api-key)"]
            Pool["Account Pool + Queue\n(并发槽位 + 等待队列)"]
            DSClient["DeepSeek Client\n(Session / Auth / Completion / Files)"]
            Pow["PoW 实现\n(纯 Go)"]
            Tool["Tool Sieve\n(Go/Node 语义对齐)"]
            History["Current Input File\n(DS2API_HISTORY.txt)"]
        end
    end

    Client -- Router
    Router -- OA & CA & GA
    Router -- Admin
    Router -- WebUI
    Router -- Vercel

    OA -- Compat
    CA & GA -- Compat
    Compat -- Completion
    Completion -.完整上下文.- History
    Completion -- Turn
    Vercel -.Go prepare.- Completion
    Vercel -.Node SSE.- Tool
    Completion -- Auth
    Completion -.账号轮询.- Pool
    Completion -.工具调用解析.- Tool
    Completion -.PoW 计算.- Pow
    Auth -- DSClient
    DSClient -- Upstream
    Upstream -- DSClient
    Turn -- Client
    Vercel -- Client


详细架构拆分与目录职责见 docs/ARCHITECTURE.md。

- 后端:Go(cmd/ds2api/、api/、internal/),不依赖 Python 运行时
- 前端:React 管理台(webui/),运行时托管静态构建产物
- 部署:本地运行、Docker、Vercel Serverless、Linux systemd

 核心能力

| 能力 | 说明 |
| --- | --- |
| OpenAI 兼容 | GET /v1/models、GET /v1/models/{id}、POST /v1/chat/completions、POST /v1/responses、GET /v1/responses/{response_id}、POST /v1/embeddings、POST /v1/files、GET /v1/files/{file_id} |
| Claude 兼容 | GET /anthropic/v1/models、POST /anthropic/v1/messages、POST /anthropic/v1/messa

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON