当前位置: 首页 > 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.cnnetsun.cn/news/2640883.html

相关文章:

  • 基于TEC模块的自发热耳罩DIY:热电效应原理与嵌入式加热实践
  • 基于ResNet50的轻量级垃圾分类识别工程:含训练、推理与迁移配置全流程
  • 谷歌排名突然下降是什么原因?老站长教你1小时找准病因
  • 谷歌排名突然下降是什么原因?教你3步清理别人发的垃圾外链
  • 基于ARM单板机与Leap Motion的DIY混合现实头显开发全流程解析
  • 歌词滚动姬:5分钟制作专业LRC歌词的终极免费工具
  • WarcraftHelper完整指南:三步让魔兽争霸3在现代电脑完美运行
  • Matlab版Sobol敏感度分析工具包:含采样、计算、可视化与多场景测试示例
  • 3分钟掌握DeepL Chrome翻译插件:免费高效的专业翻译解决方案
  • Lindy课程管理自动化部署倒计时:教育部新评估标准下,未完成自动化改造的院校将失去2025年教改专项申报资格
  • 【Lindy预订管理自动化实战指南】:20年酒店系统架构师亲授,3步实现零错误自动订房与动态库存同步
  • 【Lindy自动化黄金配置清单】:覆盖87%企业场景的12个预置模板+3大安全审计钩子
  • STFT实战避坑指南:窗函数、重叠率和FFT长度到底怎么选?用Python代码告诉你
  • 如何快速清理Windows垃圾软件:Bulk Crap Uninstaller完全指南
  • 跨平台SQL编辑器和数据库管理工具 Beekeeper Studio
  • STM32音乐播放器全套工程文件:原理图PCB+可运行源码+GUI资源+毕业论文
  • 技术深度拆解:Adobe-GenP通用补丁机制的逆向工程实现
  • IAP15F2K61S2开发板实战资料包:含DS18B20测温、超声波测距、DAC输出等18个可直接烧录的Keil工程
  • CMakeLists.txt之编译库的模板
  • 你的密码真的安全吗?用Python模拟黑客的‘撞库’攻击,看完我立刻改了密码
  • Docker : Error initializing network controller: Error creating default “bridge“
  • Scratch事件驱动编程:从零制作交互控制按钮的完整指南
  • 2025年音乐解锁完整教程:3种方法轻松解密QQ音乐、网易云音乐加密文件
  • OpenClaw从入门到应用——CLI:频道(Channels)
  • 告别Xcode!用Python和tidevice搞定iOS自动化测试(保姆级环境搭建指南)
  • 从零到一:基于ESP32的智能光照指示器全流程电路设计实战
  • 5分钟掌握NoFences:Windows桌面管理终极指南
  • 终极微博备份指南:5分钟实现完整PDF导出的快速解决方案
  • 电路设计与制作实战指南:从原理图到PCB的完整流程与调试技巧
  • 保姆级教程:用CUDA的atomicCAS函数实现一个简单的自旋锁(附完整代码)