文章目录
概述
LangChain4j 是 LangChain 在 Java 生态下的实现,它是一个开源库,帮助你更方便地在 Spring Boot 应用中集成大语言模型(如 OpenAI 的 GPT-4)来构建智能应用,比如智能问答、聊天机器人、RAG(检索增强生成)系统、Agent、多轮对话等。
一、DeepSeek API Key 获取
注册并登录 DeepSeek 官网: https://api-docs.deepseek.com/zh-cn/
API Key
Base URL
(https://api.deepseek.com/v1
)
二、Spring Boot 集成 LangChain4j 示例
1、引入依赖
在 pom.xml
中添加 langchain4j
和 openai4j
依赖:
xml
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>0.29.0</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.29.0</version>
</dependency>
</dependencies>
2、配置文件 application.yml
yaml
langchain4j:
openai:
api-key: sk-58344173c5984cf787996d13160e38ec # 写自己的
model-name: deepseek-chat # 使用的模型名称
base-url: https://api.deepseek.com/v1 # DeepSeek API 的 endpoint
3、配置类 LangChain4jConfig.java
java
@Configuration
public class LangChain4jConfig {
@Value("${langchain4j.openai.api-key}")
private String apiKey;
@Value("${langchain4j.openai.model-name}")
private String modelName;
@Value("${langchain4j.openai.base-url}")
private String baseUrl;
@Bean
public OpenAiChatModel deepSeekModel() {
return OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName(modelName)
.baseUrl(baseUrl)
.build();
}
}
⚠️ 注意:虽然这里用的是
OpenAiChatModel
,但 DeepSeek 支持 OpenAI 协议,可以无缝替换。
4、控制器 DeepSeekChatController.java
java
@RestController
@RequestMapping("/api/deepseek")
public class DeepSeekChatController {
private final OpenAiChatModel model;
@Autowired // 明确标注依赖注入
public DeepSeekChatController(OpenAiChatModel model) {
this.model = model;
}
@GetMapping
public String chat(@RequestParam(value = "message", defaultValue = "你好") String message) {
// 底层就是依赖okHttpClient进行网络请求
return model.generate(message);
}
}
测试结果:
游览器:
postman:
三、拓展建议
- 将模型调用封装成通用服务,支持多模型切换
- 加入缓存、上下文对话支持
- 与 Embedding 向量库联动,实现"知识增强问答(RAG)"
- 构建对话历史上下文链