> ## Documentation Index
> Fetch the complete documentation index at: https://blog.pig4cloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 国产大模型新突破：DeepSeek R1 挑战 OpenAI O1，附 Spring AI 集成教程

> 本文介绍如何使用 Spring AI 集成 DeepSeek Reasoner 模型，实现带有思维链的 AI 对话功能，并深入对比 DeepSeek R1 与 OpenAI O1、GPT-4 的差异

首先恭喜深度求索推出了全新的推理模型 R1，这是一个国内大模型厂商重要的里程碑。让我们一起来看看这个模型的特点和如何在 Spring AI 中使用它。

## DeepSeek R1 的突破性进展

DeepSeek R1 是一个专注于推理能力的大模型，其最大的特点是采用了"思维链"（Chain of Thought）技术。与传统的 GPT-4 和 DeepSeek V3 相比，R1 在以下方面有显著优势：

1. **推理过程可视化**：不同于通用模型的"黑盒"输出，R1 会展示完整的思维推理过程，让用户能够理解模型是如何得出结论的。

2. **强化学习突破**：通过大规模强化学习技术，R1 在仅有少量标注数据的情况下，就达到了与 OpenAI O1 相当的推理能力。这一点尤其难得，因为 O1 被认为是目前最强的推理模型。

3. **性能对标**：在数学、代码和自然语言推理等任务上，R1 已经能够对标 OpenAI O1 正式版。这意味着在复杂推理任务上，R1 可以作为 O1 的有力开源替代。

### R1 vs V3：写作能力对比

如下图所示，相比通用型的 DeepSeek V3，R1 在结构化写作和逻辑推理方面表现出明显优势：

<img src="https://minio.pigx.vip/oss/202501/1737382896.png" alt="1737382896" />

### 开源与生态优势

与 OpenAI O1 和 GPT-4 的封闭特性不同，DeepSeek R1 选择了开源路线：

1. **完整开源**：提供了 660B 参数的完整模型，包括 DeepSeek-R1-Zero 和 DeepSeek-R1
2. **蒸馏小模型**：通过模型蒸馏技术，开源了 6 个小模型，其中 32B 和 70B 版本在多项能力上已经对标 O1-mini
3. **MIT License**：采用最宽松的开源协议，允许商用和二次开发，甚至支持通过蒸馏技术训练新模型

## Spring AI 集成实践

下面我们通过一个简单的示例来展示如何使用 Spring AI 集成 DeepSeek Reasoner 模型。

### 添加依赖

首先在 pom.xml 中添加 Spring AI 依赖：

```xml theme={null}
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    <version>0.8.0-SNAPSHOT</version>
</dependency>
```

### 配置文件

在 application 中配置 DeepSeek API 相关信息：

```yaml theme={null}
spring.ai.openai.chat.options.model=deepseek-reasoner
spring.ai.openai.base-url=https://api.deepseek.com
spring.ai.openai.api-key=sk-xxx
```

### 处理 Temperature 参数问题

需要注意的是，作为专注推理的模型，DeepSeek Reasoner 不支持 temperature 参数（这与 O1 类似，都是为了保证推理结果的稳定性）。但 Spring AI 默认会添加此参数，这会导致如下错误：

```
Caused by: dev.ai4j.openai4j.OpenAiHttpException: {"error":{"message":"deepseek-reasoner does not support the parameter `temperature`","type":"invalid_request_error","param":null,"code":"invalid_request_error"}}
```

为了解决这个问题，我们需要添加一个请求拦截器来移除 temperature 参数，实现"越狱效果"：

```java theme={null}
@Configuration
public class AIConfig {
    
    @Bean
    public RestClientCustomizer restClientCustomizer() {
        return restClientBuilder -> restClientBuilder.requestInterceptor((request, body, execution) -> {
            // 使用 jackson 解析请求体，去掉 temperature 参数
            JSONObject entries = JSONUtil.parseObj(new String(body));
            entries.remove("temperature");
            return execution.execute(request, entries.toString().getBytes(StandardCharsets.UTF_8));
        }).build();
    }
}
```

### 创建控制器

创建一个简单的 REST 控制器来处理 AI 对话请求：

```java theme={null}
@RestController
@RequestMapping("/api/ai")
public class AIController {

    @Autowired
    private OpenAiChatClient chatClient;

    @PostMapping("/chat")
    public Map<String, String> chat(@RequestBody String prompt) {
        Prompt aiPrompt = new Prompt(prompt);
        ChatResponse response = chatClient.call(aiPrompt);
        
        Map<String, String> result = new HashMap<>();
        result.put("answer", response.getResult().getOutput().getContent());
        // 获取思维链内容
        result.put("reasoning", response.getResult().getOutput().getProperties().get("reasoning_content"));
        
        return result;
    }
}
```

## DeepSeek Reasoner API 特点

1. **输入参数**
   * max\_tokens：最终回答的最大长度（不含思维链输出），默认为 4K，最大为 8K
   * 思维链输出最多可达 32K tokens
   * 不支持 temperature 参数（默认固定为 0.7）

2. **输出字段**
   * reasoning\_content：思维链内容
   * content：最终回答内容

3. **上下文长度**
   * API 最大支持 64K 上下文
   * 输出的 reasoning\_content 长度不计入 64K 上下文长度中

4. **定价说明**
   * 输入 tokens：1元/百万tokens（缓存命中）或 4元/百万tokens（缓存未命中）
   * 输出 tokens：16元/百万tokens

## 使用场景对比

在不同场景下，R1、GPT-4 和 V3 各有优势：

1. **复杂推理任务**
   * R1/O1：通过思维链提供详细推理过程，适合数学证明、逻辑推理
   * GPT-4：通用性强但推理过程不透明
   * V3：更适合创意写作和开放性对话

2. **教育场景**
   * R1/O1：能展示完整解题思路，适合教学辅导
   * GPT-4：擅长通用知识讲解
   * V3：适合生动有趣的知识普及

3. **编程开发**
   * R1/O1：在算法设计和复杂逻辑实现上更有优势
   * GPT-4：代码生成能力强
   * V3：适合简单的代码补全和修改

## 定价优势

相比 Open AI O1，DeepSeek R1 的定价更具竞争力：

* 输入 tokens：1元/百万tokens（缓存命中）或 4元/百万tokens（缓存未命中）
* 输出 tokens：16元/百万tokens

## 总结

DeepSeek R1 的发布标志着中国大模型在推理能力上已经达到世界领先水平。通过 Spring AI 的集成，我们可以方便地使用这一强大的推理模型。虽然在参数兼容性上需要一些技术处理，但这丝毫不影响它在复杂推理场景下的出色表现。

对于需要强大推理能力的应用场景，R1 是一个比 GPT-4 更专业、比 O1 更开放、比 V3 更专注的选择。它的开源特性更是为整个 AI 生态的发展提供了宝贵的资源。

## 参考资料

* [DeepSeek R1 发布公告](https://mp.weixin.qq.com/s/atKyfC5l-BaStje8-F3FGQ)
* [DeepSeek API 文档](https://api-docs.deepseek.com/zh-cn/guides/reasoning_model)
* [Spring AI 示例代码](https://github.com/rd-1-2022/ai-openai-helloworld/tree/main/src/main/java/org/springframework/ai/openai/samples/helloworld)
