本文介绍如何在 Spring Boot 中使用 LangChain4j 接入 DeepSeek,实现一个最简单的 AI 对话接口。

本人使用的打法是比较主流的,是先定义一个接口而后用动态代理的方法自动生成接口的实现类,在conifg中使用工厂构建,虽然自由度较低但是我们的写法更加的快速

准备条件

1. DeepSeek API Key

你需要有:


DeepSeek API Key

获取地址:

DeepSeek


2. Spring Boot 项目

推荐:

  • Spring Boot 3.x
  • JDK 17+

三、引入依赖


<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
    <version>0.35.0</version>
</dependency>

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
    <version>0.35.0</version>
</dependency>

四、配置 DeepSeek

DeepSeek 兼容 OpenAI 接口,所以我们用 OpenAI Client。


langchain4j:
  open-ai:
    chat-model:
      api-key: sk-xxxxx
      model-name: deepseek-chat
      base-url: https://api.deepseek.com/v1

五、定义 AI 接口(核心)


public interface ChatAgent {

    String chat(String message);

}


六、创建 AiService(重点)


@Configuration
public class AiConfig {

    @Bean
    public ChatAgent chatAgent(ChatModel chatModel) {

        return AiServices.builder(ChatAgent.class)
                .chatModel(chatModel)
                .build();
    }
}

 帮你生成 ChatAgent 的实现类(动态代理)


七、创建 Controller


@RestController
@RequestMapping("/api/chat")
public class ChatController {

    private final ChatAgent chatAgent;

    public ChatController(ChatAgent chatAgent) {
        this.chatAgent = chatAgent;
    }

    @PostMapping
    public String chat(@RequestBody ChatRequest request) {
        return chatAgent.chat(request.getMessage());
    }
}

八、请求 DTO


public class ChatRequest {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

九、调用测试

请求:


POST /api/chat
Content-Type: application/json

{
  "message": "你好,你是谁?"
}

返回:


我是基于DeepSeek的AI助手

十、整体流程


用户请求
    ↓
Controller
    ↓
ChatAgent接口
    ↓
AiServices动态代理
    ↓
DeepSeek API
    ↓
返回结果
Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐