跳到主要内容

使用 Spring AI 集成 DeepSeek 实现聊天机器人

· 阅读需 4 分钟

近期,中国 AI 初创公司 DeepSeek 发布的高性能语言模型在全球 AI 社区引起了广泛关注。

特别是 DeepSeek R1,其性能与 OpenAI 相当,凭借亲民的价格和开源战略在市场上掀起了巨大波澜。

本文将采用最简单的方式,介绍如何通过 Spring AI 对接 DeepSeek API,实现一个基础的 AI 聊天机器人。

Spring AI:AI集成的利器

Spring AI 集成

Spring AI 是 Spring 生态系统中用于集成生成式 AI 的项目,为开发者提供了便捷的 AI 模型整合方案。其主要特性包括:

  1. 标准化API: 支持Anthropic、OpenAI、Microsoft、Amazon、Google、Ollama、DeepSeek等主流 AI 服务的统一接口。
  2. 模块化架构: 实现与具体AI服务商解耦的灵活结构
  3. 快速集成: 基于Spring Boot自动配置的极简整合
  4. 扩展能力: 支持自定义模型和高级配置选项

特别适合需要快速部署和扩展 AI 能力的商业应用场景。

DeepSeek:高性能、低成本

deepseek 性能

这家中国新兴 AI 公司凭借 DeepSeek R1 震撼业界,其核心优势包括:

  • 顶尖语言模型: 达到 OpenAI-o1 级别的高性能模型。
  • OpenAI兼容API: 完美适配现有的 OpenAI 生态应用。
  • 成本优势: 相比 OpenAI 更具价格竞争力。

准备工作

  • Java 17+
  • Gradle 8+
  • DeepSeek API密钥 (DeepSeek 官网入口)
  • 在环境变量中设置 API 密钥(避免直接写入application.yml)

功能实现

1. build.gradle配置

创建Spring Boot项目后,在build.gradle中配置依赖:

build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.2'
id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
maven { url 'https://repo.spring.io/snapshot' }
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.ai:spring-ai-openai-spring-boot-starter:1.0.0-M5'
// implementation 'org.springframework.ai:spring-ai-ollama-spring-boot-starter:1.0.0-M5'
}

spring-ai-openai-spring-boot-starter支持所有符合OpenAI API标准的服务

2. application.yml配置

配置DeepSeek连接参数:

如需要与其他语言模型连接,只需要修改base-urlapi-keymodel 的值

spring:
application:
name: spring-ai-deepseek
ai:
openai:
base-url: https://api.deepseek.com
api-key: ${DEEPSEEK_API_KEY}
chat:
options:
# model: deepseek-chat
model: deepseek-reasoner
stream-usage: false

# ollama integration
# ollama:
# base-url: http://localhost:11434
# chat:
# options:
# model: deepseek-r1:7b

3. Controller 编写

接下来,我们编写一个 Spring AI 控制器,通过 API 调用 DeepSeek 服务。

@RestController
@CrossOrigin(origins = "*")
public class ChatController {

private final ChatClient chatClient;

public ChatController(ChatClient.Builder builder) {
chatClient = builder.build();
}

@PostMapping("/chat")
public ChatResponse chat(@RequestParam String prompt) {
return chatClient.prompt().user(prompt).call().chatResponse();
}
}

测试

现在Deepseek API 服务仍然不是很稳定。如出现 API 错误,可以通过以下链接查看服务状态:

查看服务状态: https://status.deepseek.com/

Spring AI, DeepSeek集成测试

聊天界面实现

我是借助Cursor快速搭建了一个UI界面,推荐大家也可以使用自己擅长的AI工具,动手定制符合自己需求的交互界面。

Spring AI, Deppseek Chat UI

总结

本文介绍了如何使用 Spring AI 连接 DeepSeek API,并实现一个基础的 AI 聊天机器人。

作为 OpenAI 的强劲竞争对手,DeepSeek 未来有望在 AI 市场上占据重要地位。