快速开始:第一个对话
大约 2 分钟
第二章:5 分钟跑通第一个对话(纯 Java / Spring Boot)
2.1 纯 Java:一个 main 方法就能跑
适合你先确认 Key 可用、网络可达、模型响应正常。
2.1.1 Maven 依赖(以 OpenAI 为例)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bom</artifactId>
<version>1.12.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>
</dependencies>2.1.2 代码(可直接运行)
package com.example.langchain4j.quickstart;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
public class QuickstartMain {
public static void main(String[] args) {
String apiKey = System.getenv("OPENAI_API_KEY");
if (apiKey == null || apiKey.isBlank()) {
throw new IllegalStateException("请先设置环境变量 OPENAI_API_KEY");
}
ChatLanguageModel model = OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName("gpt-4o-mini")
.temperature(0.2)
.build();
String answer = model.chat("用 3 句话解释什么是 RAG,并举一个企业例子。");
System.out.println(answer);
}
}2.2 Spring Boot:把模型变成可注入的 Bean
当你准备做“真正的业务功能”,推荐直接进入 Spring Boot,原因很简单:
- 配置化(Key/模型/超时/重试)不用写死在代码里
- Bean 注入 + 分层结构更容易维护
- 能自然接入 WebFlux SSE、Actuator、Micrometer
2.2.1 Maven 依赖(OpenAI Spring Boot starter)
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
<version>1.12.2-beta22</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>2.2.2 application.yml
langchain4j:
open-ai:
chat-model:
api-key: ${OPENAI_API_KEY:}
model-name: gpt-4o-mini
temperature: 0.22.2.3 Controller(最小可用)
package com.example.langchain4j.api;
import dev.langchain4j.model.chat.ChatLanguageModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ChatController {
private final ChatLanguageModel model;
public ChatController(ChatLanguageModel model) {
this.model = model;
}
@GetMapping("/chat")
public String chat(@RequestParam String q) {
return model.chat(q);
}
}2.3 本章小结
到这里你已经具备了“最短路径跑通模型调用”的能力。下一章开始我们做第一件真正重要的事:把模型参数、超时、重试、日志这些生产必需品放到正确的位置上去。
