当前位置: 首页 > news >正文

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篇:项目总结与展望

http://www.rkmt.cn/news/1422171.html

相关文章:

  • 歌词滚动姬:5分钟制作专业LRC歌词的终极免费工具
  • 为你的 RTX 显卡找个好管家:在 Ubuntu 20.04 上优雅安装与管理 NVIDIA 驱动(附版本切换技巧)
  • 5分钟掌握Windows和Office永久激活的终极解决方案
  • DDrawCompat:如何在现代Windows系统上完美运行经典DirectX游戏
  • 除甲醛哪家最专业 - 资讯速览
  • 佛山手表回收市场 TOP6 平台综合实力排名:添价收黄金奢侈品回收中心领跑全行业 - 薛定谔的梨花猫
  • 技术深度解析:PVE Tools的架构创新与Proxmox VE自动化管理实践
  • Win32平台下MFC实现的Modbus TCP PLC通信客户端(含可运行VS工程与Socket封装)
  • 3分钟为Windows 11 LTSC系统一键安装完整微软商店的终极指南
  • 如何将华润万家购物卡快速回收?一键变现全解析 - 团团收购物卡回收
  • 2026开封烧烤哪家好?三大本土王牌测评对比!本地人真实推荐 - 资讯速览
  • 开源碳排放计算器评测,As3.0 项目能否满足二次开发需求
  • 线性回归的‘瘦身’秘籍:用Lasso回归在Python里自动做特征筛选,5分钟搞定冗余变量
  • 鄂州市黄金回收避坑 5 大套路|2026 最新防骗手册 - 奢佳美黄金珠宝
  • Win10锁屏新玩法:巧用屏幕保护程序,让Wallpaper Engine壁纸自动轮播
  • 避开求职骗局!3个实测靠谱的就业平台,大学生值得优先考虑 - 资讯速览
  • 2026年焦作不锈钢庭院柜/橱柜/阳台柜定制与造纸设备配套一站式解决方案指南 - 精选优质企业推荐官
  • 海康工业相机C#实操包:软硬触发切换+单帧/连续采集一键运行
  • 2026年内蒙古资产管理数字化解决方案深度指南:从账实不符到全生命周期可视化管理 - 优质企业观察收录
  • 2026北京搬家行业发展现状与品牌调研白皮书 - 资讯焦点
  • 如何用AI轻松实现OBS虚拟绿幕:obs-backgroundremoval完整使用指南
  • 3个步骤如何让普通鼠标在Mac上获得专业级体验?
  • 免费开源3D重建软件Meshroom:从照片到3D模型的完整指南
  • 江浙沪CNC编程培训全流程实操哪家强?2024年度专业机构深度测评 - 资讯焦点
  • 用几何和动画可视化理解Jain‘s Fairness Index:从二维平面到N维空间的公平性度量
  • STM32Duino环境搭建与基础开发:Arduino方式玩转STM32F4
  • RHCE认证路上的一块拼图:深入理解Stratis在RHEL8中的设计与实战
  • 2026 最新 172 号卡推荐码实测:00011 商务码的真实服务体验 - 资讯焦点
  • 2026年必看!宜昌装修公司推荐,为你打造理想家居新选择 - 资讯速览
  • 2026 新国标升级,智能控温护脊椎,超易安装安全座椅怎么选 - 资讯焦点