Java 程序员第 40 阶段02:从零搭建 Java 大模型完整项目,开发环境搭建与工程初始化
Java程序员第40阶段02:从零搭建Java大模型完整项目,开发环境搭建与工程初始化
作者:洛水石|适用:Java大模型面试
作者:洛水石|适用:Java大模型面试
前言
本文是Java大模型完整项目系列文章的第2篇,将详细介绍如何搭建开发环境并初始化工程。项目采用Maven多模块结构,结合Docker Compose实现本地开发环境的一键启动。
▲图1
一、开发环境准备
1.1环境要求
工具 | 版本要求 | 说明 |
JDK | 17+ | 推荐Eclipse Temurin |
Maven | 3.9+ | 或使用Gradle 8.x |
Docker | 24.x | Desktop for Windows/Mac |
IDE | IntelliJ IDEA | 旗舰版最佳 |
1.2开发工具安装
**JDK安装**
推荐使用 Eclipse Temurin(原AdoptOpenJDK),从官网下载并配置环境变量:
▲图2
二、Maven多模块工程结构
2.1项目目录规划
项目采用标准的Maven多模块结构,便于代码管理和依赖控制:
▲图3
三、Docker Compose本地开发环境
3.1基础设施架构
本地开发环境包含以下服务:
服务 | 版本 | 端口 | 说明 |
MySQL | 8.0 | 3306 | 关系型数据存储 |
Redis | 7 | 6379 | 缓存和会话存储 |
Elasticsearch | 8.x | 9200 | 全文检索 |
Qdrant | latest | 6333 | 向量数据库 |
3.2 docker-compose.yml配置
▲图4
四、LangChain4j大模型SDK集成
4.1 Maven依赖配置
在llm-core模块的pom.xml中添加LangChain4j依赖:
```xml
<dependencies>
<!-- LangChain4j 核心 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!-- OpenAI适配器 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!-- 向量存储 - Qdrant -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-qdrant</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!-- Spring Boot集成 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-spring-boot-starter</artifactId>
<version>${langchain4j.version}</version>
</dependency>
</dependencies>
```
4.2配置文件
application.yml中添加大模型配置:
```yaml
langchain4j:
open-ai:
api-key: ${OPENAI_API_KEY}
model-name: gpt-4
temperature: 0.7
base-url: https://api.openai.com/v1
qdrant:
url: http://localhost:6333
collection-name: llm-knowledge
```
4.3核心代码示例
**ChatModel配置类**
```java
@Configuration
public class LLMConfig {
@Bean
public ChatLanguageModel chatLanguageModel() {
return OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4")
.temperature(0.7)
.maxTokens(2000)
.build();
}
@Bean
public ChatMemory chatMemory() {
return new ChatMemoryBuffer(1000);
}
}
```
**Embedding模型配置**
```java
@Bean
public EmbeddingModel embeddingModel() {
return OpenAiEmbeddingModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("text-embedding-ada-002")
.build();
}
```
五、Spring Boot 3.x初始化配置
5.1主类定义
```java
@SpringBootApplication
@EnableConfigurationProperties
public class LLMApplication {
public static void main(String[] args) {
SpringApplication.run(LLMApplication.class, args);
}
}
```
5.2常用注解说明
| 注解 | 用途 |
|------|------|
| @SpringBootApplication | 标记主类 |
| @Configuration | 配置类 |
| @Bean | 声明Bean |
| @Value | 注入配置值 |
| @Autowired | 依赖注入 |
5.3跨域配置
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*");
}
}
```
六、项目启动验证
6.1启动顺序
1. 启动Docker Compose服务
2. 启动IDEA中的Spring Boot应用
3. 访问 http://localhost:8080/swagger-ui.html
6.2健康检查
```bash
docker exec -it <mysql_container> mysql -uroot -p
docker exec -it <redis_container> redis-cli ping
curl http://localhost:9200
```
6.3常见问题
**端口冲突**:确保本地3306、6379、9200、6333端口未被占用
**内存不足**:Docker Desktop建议分配至少4GB内存
**API Key配置**:确保OPENAI_API_KEY环境变量已正确设置
七、总结
本文完成了开发环境的搭建和工程的初始化:
- 配置了JDK 17+、Maven、Docker等开发工具
- 创建了Maven多模块项目结构
- 使用Docker Compose一键启动本地开发环境
- 集成了LangChain4j大模型SDK
- 配置了Spring Boot 3.x基础框架
下一篇文章将介绍数据库设计、MySQL表结构创建等数据层内容。
---
**系列文章导航**
- 第1篇:项目架构设计与技术选型
- 第2篇:开发环境搭建与工程初始化 ← 当前
- 第3篇:数据库设计与初始化
- 第4篇:大模型SDK集成与配置
- 第5篇:RAG知识库实现
- 第6篇:Agent智能体开发
- 第7篇:API接口设计与实现
- 第8篇:前端交互界面开发
- 第9篇:系统部署与运维
- 第10篇:项目总结与展望
