Skip to content

DeepSeek r1 and Claude 3.5 Sonnet achieve the best combination, fully unleashing the power of the strongest models. Supports OpenAI streaming output and can run on your favorite ChatBox!

Notifications You must be signed in to change notification settings

ErlichLiu/DeepClaude

Repository files navigation

DeepClaude 🐬🧠 - OpenAI Compatible

Inspiration from getasterisk/deepclaude

GitHub license Compatible with

特别说明:对于不太会部署,只是希望使用上最强 DeepClaude 组合的朋友,可以直接访问 Erlich 个人网站自助购买按量付费的 API:https://erlich.fun/deepclaude-pricing 也可以直接联系 Erlich(微信:geekthings)国内可以直接访问


更新日志:
2025-02-08.2: 支持非流式请求,支持 OpenAI 兼容的 models 接口返回。(⚠️ 当前暂未实现正确的 tokens 消耗统计,稍后更新)

2025-02-08.1: 添加 Github Actions,支持 fork 自动同步、支持自动构建 Docker 最新镜像、支持 docker-compose 部署

2025-02-07.2: 修复 Claude temperature 参数可能会超过范围导致的请求失败的 bug

2025-02-07.1: 支持 Claude temputerature 等参数;添加更详细的 .env.example 说明

2025-02-06.1:修复非原生推理模型无法获得到推理内容的 bug

2025-02-05.1: 支持通过环境变量配置是否是原生支持推理字段的模型,满血版本通常支持

2025-02-04.2: 支持跨域配置,可在 .env 中配置

2025-02-04.1: 支持 Openrouter 以及 OneAPI 等中转服务商作为 Claude 部分的供应商

2025-02-03.3: 支持 OpenRouter 作为 Claude 的供应商,详见 .env.example 说明

2025-02-03.2: 由于 deepseek r1 在某种程度上已经开启了一个规范,所以我们也遵循推理标注的这种规范,更好适配支持的更好的 Cherry Studio 等软件。

2025-02-03.1: Siliconflow 的 DeepSeek R1 返回结构变更,支持新的返回结构

Table of Contents

Introduction

最近 DeepSeek 推出了 DeepSeek R1 模型,在推理能力上已经达到了第一梯队。但是 DeepSeek R1 在一些日常任务的输出上可能仍然无法匹敌 Claude 3.5 Sonnet。Aider 团队最近有一篇研究,表示通过采用 DeepSeek R1 + Claude 3.5 Sonnet 可以实现最好的效果

deepseek r1 and sonnet benchmark

R1 as architect with Sonnet as editor has set a new SOTA of 64.0% on the aider polyglot benchmark. They achieve this at 14X less cost compared to the previous o1 SOTA result.

并且 Aider 还 开源了 Demo,你可以直接在他们的项目上进行在线体验。

本项目受到该项目的启发,通过 fastAPI 完全重写,并支持 OpenAI 兼容格式,支持 DeepSeek 官方 API 以及第三方托管的 API。

用户可以自行运行在自己的服务器,并对外提供开放 API 接口,接入 OneAPI 等实现统一分发(token 消耗部分仍需开发)。也可以接入你的日常 ChatBox 软件以及 接入 Cursor 等软件实现更好的编程效果(Claude 的流式输出+ Tool use 仍需开发)。

Implementation

⚠️Notice: 目前只支持流式输出模式(因为这是效率最高的模式,不会浪费时间);接下来会实现第一段 DeepSeek 推理阶段流式,Claude 输出非流式的模式(处于节省时间的考虑)。

image-20250201212456050

How to run

项目支持本地运行和服务器运行,本地运行可与 Ollama 搭配,实现用本地的 DeepSeek R1 与 Claude 组合输出

1. 获得运行所需的 API

  1. 获取 DeepSeek API,因为最近 DeepSeek 还在遭受攻击,所以经常无法使用,推荐使用 Siliconflow 的效果更好(也可以本地 Ollama 的): https://cloud.siliconflow.cn/i/RXikvHE2 (点击此链接可以获得到 2000 万免费 tokens)
  2. 获取 Claude 的 API KEY (目前还没有做中转模式,以及对 Google 和 AWS 托管的版本的兼容支持,欢迎 PR):https://console.anthropic.com

2. 开始运行(本地运行)

Step 1. 克隆本项目到适合的文件夹并进入项目

git clone [email protected]:ErlichLiu/DeepClaude.git
cd DeepClaude

Step 2. 通过 uv 安装依赖(如果你还没有安装 uv,请看下方注解)

# 通过 uv 在本地创建虚拟环境,并安装依赖
uv sync
# macOS 激活虚拟环境
source .venv/bin/activate
# Windows 激活虚拟环境
.venv\Scripts\activate

Step 3. 配置环境变量

# 复制 .env 环境变量到本地
cp .env.example .env

Step 4. 按照环境变量当中的注释依次填写配置信息(在此步骤可以配置 Ollama)

Step 5. 本地运行程序

# 本地运行
uvicorn app.main:app

Step 6. 配置程序到你的 Chatbox(推荐 NextChatChatBoxLobeChat

# 通常 baseUrl 为:http://127.0.0.1:8000/v1

注:本项目采用 uv 作为包管理器,这是一个更快速更现代的管理方式,用于替代 pip,你可以在此了解更多

Deployment

项目支持 Docker 服务器部署,可自行调用接入常用的 Chatbox,也可以作为渠道一直,将其视为一个特殊的 DeepClaude模型接入到 OneAPI 等产品使用。

Railway 一键部署(推荐)

一键部署到 Railway
1. 首先 fork 一份代码。
  1. 点击打开 Railway 主页:https://railway.com?referralCode=RNTGCA

  2. 点击 Deploy a new project image-20250209164454358

  3. 点击 Deploy from GitHub repo image-20250209164638713

  4. 点击 Login with GitHub image-20250209164843566

  5. 选择升级,选择只需 5 美金的 Hobby Plan 即可 image-20250209165034070 image-20250209165108355

  6. 点击 Create a New Project create-a-new-project

  7. 继续选择 Deploy from GitHub repo image-20250209164638713

  8. 输入框内搜索DeepClaude,选中后点击。 deploy-from-github-repo

  9. 选择Variable,并点击New Variable 按钮,按照环境变量内的键值对进行填写 variable

  10. 填写完成后重新点击 Deploy 按钮,等待数秒后即可完成部署 deploy

  11. 部署完成后,点击 Settings 按钮,然后向下查看到 Networking 区域,然后选择 Generate Domain,并输入 8000 作为端口号 networking generate-domain port

  12. 接下来就可以在你喜欢的 Chatbox 内配置使用或作为 API 使用了 using

Zeabur 一键部署(一定概率下会遇到 Domain 生成问题,需要重新创建 project 部署)

一键部署到 Zeabur

Deployed on Zeabur

  1. 首先 fork 一份代码。
  2. 进入 Zeabur,登录。
  3. 选择 Create New Project,选择地区为新加坡或日本区域。
  4. 选择项目来源为 Github,搜索框搜索 DeepClaude 后确认,然后点击右下角的 Config。
  5. 在 Environment Variables 区域点击 Add Environment Variables,逐个填写 .env.example 当中的配置,等号左右对应的就是 Environment Variables 里的 Key 和 Value。(注意:ALLOW_API_KEY 是你自己规定的外部访问你的服务时需要填写的 API KEY,可以随意填写,不要有空格)
  6. 全部编辑完成后点击 Next,然后点击 Deploy,静待片刻即可完成部署。
  7. 完成部署后点击当前面板上部的 Networking,点击 Public 区域的 Generate Domain(也可以配置自己的域名),然后输入一个你想要的域名即可(这个完整的 xxx.zeabur.app 将是你接下来在任何开源对话框、Cursor、Roo Code 等产品内填写的 baseUrl)
  8. 接下来就可以去上述所说的任何的项目里去配置使用你的 API 了,也可以配置到 One API,作为一个 OpenAI 渠道使用。(晚点会补充这部分的配置方法)

使用 docker-compose 部署(Docker 镜像将随着 main 分支自动更新到最新)

推荐可以使用 docker-compose.yml 文件进行部署,更加方便快捷。

  1. 确保已安装 Docker Compose。

  2. 复制 docker-compose.yml 文件到项目根目录。

  3. 修改 docker-compose.yml 文件中的环境变量配置,将 your_allow_api_keyyour_allow_originsyour_deepseek_api_keyyour_claude_api_key 替换为你的实际配置。

  4. 在项目根目录下运行 Docker Compose 命令启动服务:

    docker-compose up -d

服务启动后,DeepClaude API 将在 http://宿主机IP:8000/v1/chat/completions 上进行访问。

Docker 部署(自行 Build)

  1. 构建 Docker 镜像

    在项目根目录下,使用 Dockerfile 构建镜像。请确保已经安装 Docker 环境。

    docker build -t deepclaude:latest .
  2. 运行 Docker 容器

    运行构建好的 Docker 镜像,将容器的 8000 端口映射到宿主机的 8000 端口。同时,通过 -e 参数设置必要的环境变量,包括 API 密钥、允许的域名等。请根据 .env.example 文件中的说明配置环境变量。

    docker run -d \
        -p 8000:8000 \
        -e ALLOW_API_KEY=your_allow_api_key \
        -e ALLOW_ORIGINS="*" \
        -e DEEPSEEK_API_KEY=your_deepseek_api_key \
        -e DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions \
        -e DEEPSEEK_MODEL=deepseek-reasoner \
        -e IS_ORIGIN_REASONING=true \
        -e CLAUDE_API_KEY=your_claude_api_key \
        -e CLAUDE_MODEL=claude-3-5-sonnet-20241022 \
        -e CLAUDE_PROVIDER=anthropic \
        -e CLAUDE_API_URL=https://api.anthropic.com/v1/messages \
        -e LOG_LEVEL=INFO \
        --restart always \
        deepclaude:latest

    请替换上述命令中的 your_allow_api_keyyour_allow_originsyour_deepseek_api_keyyour_claude_api_key 为你实际的 API 密钥和配置。ALLOW_ORIGINS 请设置为允许访问的域名,如 "http://localhost:3000,https://chat.example.com""*" 表示允许所有来源。

Automatic fork sync

项目已经支持 Github Actions 自动更新 fork 项目的代码,保持你的 fork 版本与当前 main 分支保持一致。如需开启,请 frok 后在 Settings 中开启 Actions 权限即可。

Technology Stack

Star History

Star History Chart

Buy me a coffee

微信赞赏码

About Me

About

DeepSeek r1 and Claude 3.5 Sonnet achieve the best combination, fully unleashing the power of the strongest models. Supports OpenAI streaming output and can run on your favorite ChatBox!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages