deepreasoning
用双模型协同实现「深度推理+精准表达」的 AI 对话 API
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用双模型协同实现「深度推理+精准表达」的 AI 对话 API
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有过这种经历:问 AI 一个需要深度推理的问题,它要么直接给答案跳过思考过程,要么思考过程冗长但最后答案还是不够精准?更令人头疼的是,当你需要它同时完成代码生成、创意写作等任务时,单一模型往往顾此失彼。这正是大多数 AI 助手面临的「推理-创作」两难困境。
DeepReasoning 带来了一个巧妙的解法:不是让一个模型同时做好两件事,而是让两个模型各司其职——DeepSeek R1 负责「深度思考」,Anthropic Claude 负责「精准表达」。项目上线仅数月便在 GitHub 收获超过 5300 颗星、440 次 forks,引发了开发者社区对「推理链聚合」这一新范式的广泛讨论。
DeepSeek R1 的核心能力在于其独特的链式思考(Chain-of-Thought, CoT)推理轨迹。与传统模型直接输出答案不同,R1 会像人类一样进行「元认知」——自我纠错、审视边缘情况、用自然语言进行类似蒙特卡洛树搜索(MCTS)的推理探索。一位开发者在 Issues 中描述:"R1 的思考过程本身就是一种可观测的推理日志,我能清楚看到它为什么否决了某个方案。"
然而,R1 并非全能。它在代码生成质量、创意写作流畅度和多轮对话的自然感上,仍落后于 Claude 3.5 Sonnet。这并不奇怪——R1 的强项是"想清楚",而 Claude 的强项是"说漂亮"。DeepReasoning 的设计哲学正是基于这一观察:让 R1 先深度推理,再将推理结果和原始问题一并交给 Claude,让后者在"已知答案轮廓"的基础上,生成更精准、更富表现力的最终回复。

图1:DeepReasoning 项目 Logo,蓝色海豚代表 R1 的推理能力,青蛙象征 Claude 的创造力
这种双模型协同带来了几个显著优势:推理过程完整保留(用户可看到 R1 的思考链),最终回复质量由 Claude 保证,响应以流式(streaming)方式输出——R1 的推理和 Claude 的回答在同一次 API 调用中依次呈现,几乎零额外延迟。
DeepReasoning 的后端完全由 Rust 编写,使用 Axum 作为 Web 框架,Tokio 提供异步运行时。Axum 是目前 Rust 生态中最活跃的 Web 框架之一,以零成本抽象和高并发处理能力著称。在 main.rs 中,项目初始化了 tracing 日志系统、CORS 中间件和请求追踪层,生产级的错误处理和日志记录一应俱全。
请求处理的核心逻辑在 handlers.rs 中:客户端通过 HTTP Header 传入 DeepSeek API Key(X-DeepSeek-API-Token)和 Anthropic API Key(X-Anthropic-API-Token),Handler 首先提取这两个凭证,然后串联调用两个外部 API——先发请求给 DeepSeek R1 获取推理轨迹,再将推理内容注入 Claude 的上下文中,最终流式返回合并结果。代码中使用了 tokio_stream 和 async-stream 实现 Server-Sent Events(SSE)流式输出,保证用户体验。
前端则采用 Next.js 15 + React 19 + TypeScript 的现代化组合。UI 组件库基于 Radix UI,样式使用 TailwindCSS,markdown 渲染借助 react-markdown 和 react-syntax-highlighter,整体风格现代简洁。项目使用 Bun 作为包管理器(前端 lockfile 为 bun.lockb),开发时可通过 bun dev --turbopack 获得极速热更新体验。
对于想自建服务的开发者,DeepReasoning 提供了多阶段 Dockerfile 和 docker-compose.yml,配置相当友好:
# docker-compose.yml 核心配置
services:
api:
build: .
container_name: deepreasoning_api
restart: unless-stopped
ports:
- "127.0.0.1:1337:1337"
volumes:
- ./config.toml:/usr/local/bin/config.toml
Dockerfile 使用 rust:latest 作为构建阶段,debian:bookworm-slim 作为运行时镜像,最终二进制约 20-30MB,加上运行时依赖,整体镜像体积控制在 100MB 以内。部署流程简化为:git clone → docker compose up,约 10 分钟可完成编译和启动。
但有一点需要特别注意:API 密钥需要用户自持。项目采用 BYOK(Bring Your Own Keys)架构,所有请求头中直接传递 API 密钥,服务器本身不存储任何密钥数据。这意味着你需要同时拥有 DeepSeek API Key 和 Anthropic API Key 才能正常使用服务。
尽管双模型协同听起来很美好,DeepReasoning 也面临一些现实挑战:
1. 响应延迟增加:R1 的推理过程本身需要时间,Claude 的生成过程叠加其上,整体延迟比单一模型调用高出 30%-50%。对于实时性要求高的场景(如在线客服),这可能是个问题。
2. API 成本翻倍:每次对话需要同时支付 DeepSeek R1 和 Claude 3.5 Sonnet 两份 API 费用。以实际用量估算,单次复杂对话的成本约为单一 Claude 调用的 1.8-2.2 倍。
3. 隐私与安全:虽然项目强调"无数据存储",但 API 密钥以 HTTP Header 明文传输(X-DeepSeek-API-Token),在生产环境中建议配合 HTTPS 使用,避免密钥在传输过程中被截获。项目 Issues 中也有用户提出应在服务端实现密钥的加密存储和管理。
4. R1 推理质量依赖:如果 DeepSeek R1 本身出现推理错误或幻觉,Claude 会在错误推理的基础上生成"正确但错误"的回答,质量可能反而不如单一模型。项目目前没有内置推理质量校验机制。
DeepReasoning 的价值不仅在于工具本身,更在于它代表了一种新兴的 AI 应用架构思路——推理链聚合(Reasoning Aggregation)。从 2025 年初 DeepSeek R1 发布至今,业界一直在探索如何将 R1 的推理优势与其他模型的能力结合,DeepReasoning 给出了一个开源、可部署、可定制的参考实现。
根据 GitHub 趋势数据,项目在发布首周便获得 2000+ stars,目前仍在稳定增长。作者 Mufeed VH(Asterisk 团队)活跃维护,53 个 open issues 中大部分已有响应,展现了良好的社区互动。
# 1. 克隆仓库
git clone https://github.com/getasterisk/deepreasoning.git
cd deepreasoning
# 2. 使用 Docker 启动
docker compose up --build
# 3. 调用 API
curl -X POST http://127.0.0.1:1337/ \
-H "X-DeepSeek-API-Token: YOUR_DEEPSEEK_KEY" \
-H "X-Anthropic-API-Token: YOUR_ANTHROPIC_KEY" \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"解释量子纠缠"}]}'
对于有 Rust 经验的开发者,源码编译也极为简单:cargo build --release 即可,无需额外的依赖安装脚本。这在同类 Rust AI 项目中属于部署友好度较高的水平。