当前位置: 首页 > 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.jsqmd.com/news/910863/

相关文章:

  • 3种场景下的Navicat密码找回解决方案:技术原理与实战应用
  • 歌词滚动姬:5分钟制作专业LRC歌词的终极免费工具
  • 学生党/研究生如何用Notion搭建一个能坚持用下去的知识库(附我的三年实战框架)
  • 5步掌握京东自动化抢购:告别手速焦虑的技术解决方案
  • 海口大牌包包回收市场实测:六家正规平台横向测评,添价收奢侈品回收同城高价变现指南 - 薛定谔的梨花猫
  • 为你的 RTX 显卡找个好管家:在 Ubuntu 20.04 上优雅安装与管理 NVIDIA 驱动(附版本切换技巧)
  • 键盘玩家的救星:Hitboxer如何彻底改变你的游戏操作体验
  • 5分钟掌握Windows和Office永久激活的终极解决方案
  • DDrawCompat:如何在现代Windows系统上完美运行经典DirectX游戏
  • 除甲醛哪家最专业 - 资讯速览
  • UE5 Niagara粒子系统入门:从零手搓一个会动的火焰特效(附完整蓝图)
  • 2026年内蒙古资产全生命周期数字化管理完全指南:从盘点到报废的一站式解决方案 - 优质企业观察收录
  • 别再让电脑卡死了!聊聊虚拟内存那些事儿:从Windows页面文件到Linux swap分区
  • Scroll Reverser终极指南:彻底解决Mac滚动方向混乱的简单方案
  • 思源宋体CN TTF:7种字重一站式解决方案,彻底解决中文排版难题
  • 简单三步让老旧游戏手柄在现代游戏中重获新生:XOutput终极兼容方案
  • 如何免费实现Linux与Windows文件互通?NTFS-3G驱动全攻略
  • 【Lindy内容审核自动化实战指南】:20年专家亲授3大避坑法则与5步落地框架
  • 技术深度解析:PVE Tools的架构创新与Proxmox VE自动化管理实践
  • 佛山手表回收市场 TOP6 平台综合实力排名:添价收黄金奢侈品回收中心领跑全行业 - 薛定谔的梨花猫
  • 【Lindy预订管理自动化实战指南】:20年酒店系统架构师亲授,3步实现零错误自动订房与动态库存同步
  • GPU服务器:从游戏到AI,算力引擎的进化之路
  • 高校生常用的一键生成论文工具是哪款?
  • 2026 珠海婚恋机构排行榜|正规婚介哪家靠谱?本地真实脱单机构测评 - 资讯速览
  • 2026上海黄金回收选店攻略:五个维度对比,找出报价最透明的店 - 天天生活分享日志
  • ThinkPad双风扇终极控制指南:TPFanCtrl2完整使用教程与实战技巧
  • Win32平台下MFC实现的Modbus TCP PLC通信客户端(含可运行VS工程与Socket封装)
  • 如何5分钟内免费解锁Twitch订阅限制:完整观看指南
  • 【Lindy审计自动化黄金标准】:基于17家金融客户实测数据,定义8项不可妥协的合规性阈值
  • 深度学习流体力学革命:DeepCFD如何让CFD模拟速度提升1000倍