LangChain4j+Cursor ,Java 开发AI应用变得简单
开发了一个复杂的AI交互平台,涉及多个模块的集成与交互,包括自然语言处理、图像识别、语音合成等。 由于项目周期紧张,代码结构较为混乱,尤其是对大模型API的封装部分,缺乏统一的接口设计和模块化处理,导致后续维护和扩展困难。

例如,不同功能的API调用分散在各个模块中,缺乏统一的错误处理和日志记录机制,增加了调试和优化的复杂度。 此外,代码中还存在大量冗余和重复的逻辑,影响了系统的性能和可读性。
但是:LangChain官方自从发布了LangChain4j,AI 界的门槛儿算是被彻底踹飞了!为什么?因为这就意味着整天只会 CRUD 的 Javaer 们也能开发AI应用了,而且简单到让你怀疑人生
一、LangChain4j
它是Java版本的LangChain,随着大模型的不断发展,如何在程序中更好的利用大模型的能力来提高编程效率是一种趋势,LangChain是这么自己介绍自己的:
LangChain gives developers a framework to construct LLM‑powered apps
easily.
意思是:LangChain提供了一个开发框架,使得开发者可以很容易的用来构建具有LLM能力的应用程序。
LLM就是Large Language Model,也就是常说的大语言模型,简称大模型。
个人认为:大模型时代,如何将大模型能力和传统应用相结合,使得传统应用更加智能,是人工智能时代的趋势。以前一个应用要获得智能,需要企业自己投入资源训练模型,而现在只需要接入大模型即可,这种便利性将使得大模型会应用得更为广泛,而如何将大模型能力和Java编程语言相结合,这就是LangChain4j所做的。
注意,大模型的能力远远不止聊天的能力,而LangChain4j就在帮助我们更好的利用大模型的能力,从而帮我们打造出更加智能的应用。
二、初识LangChain4j
接下来,让我们与LangChain4j初识一下,新建一个Maven工程,然后添加以下依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.qjc</groupId>
<artifactId>langchain4j-project-1</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<langchain4j.version>0.27.1</langchain4j.version>
</properties>
<dependencies>
<!--核心-->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!--日志-->
<dependency>
<groupId>org.tinylog</groupId>
<artifactId>tinylog-impl</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>org.tinylog</groupId>
<artifactId>slf4j-tinylog</artifactId>
<version>2.6.2</version>
</dependency>
</dependencies>
</project>
引入了langchain4j的核心依赖、langchain4j集成OpenAi各个模型的依赖、轻量级实现了slf4j接口的tinylog日志依赖。
接着,咱们和OpenAi的第一次对话:
package com.qjc.demo;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
public HelloAI {
public static void main(String[] args) {
ChatLanguageModel model = OpenAiChatModel.withApiKey("demo");
String answer = model.generate("你好,你是谁?");
System.out.println(answer);
}
}
运行代码结果为:
你好,我是一个人工智能助手。我可以回答你的问题和提供帮助。有什么可以帮到你的吗?
这样,我们使用LangChain4j第一次成功的和OpenAi的GPT模型进行了对话。
【更多的操作,小伙伴们可以查看官网】。
三、实战资讯App
经常看我文章的小伙伴,应该知道我最近在开发资讯App。
之所以做这个App,主要是想利用Cursor+LangChain4j来完成项目,
学习Cursor开发一个完整的demo级别项目,其次是市面上的关于大模型咨询的应用几乎没有,我又需要掌握大模型应用级别的各种信息。
大概的功能长这样的:

整体项目代码结构:

其中,app-admin是后台管理前端,app-info是后端,app-uni则是app。
目前整体进度算是一般吧,主要是年底也比较忙。

(数据来自于各种国内,国外的数据爬取。以及后台管理系统自己上传)
目前项目已经进入真实数据的调试阶段,整体工作分配上,80%的任务由Cursor自动完成,而我主要负责剩余的20%。 Cursor的高效处理能力极大地提升了开发效率,尤其是在数据清洗、格式转换和初步分析等重复性任务上表现出色。
我的工作则集中在关键决策、算法优化和结果验证等核心环节,确保最终输出的准确性和可靠性。
这种分工模式不仅节省了大量时间,还让我能够更专注于解决复杂问题,推动项目快速进展。
后续完成之后,会打包成为apk,分享给老铁小伙伴。
四、感悟
最近Cursor获得了上亿美元的融资,各大平台广告满天飞。
特别是B站、小红书、小绿书,各种博眼球的标题。
反正我是震惊不已。
确实,Cursor很大程度的提高了编码效率,让开发者更大程度的去关注产品和设计。
但是,远远达不到那种10分钟,20分钟完成一个项目的程度。
当然,可以完成一个脚本,一个小工具。
像我开发的这种前后端分离,带系统后台和前台的项目,在代码结构上就比较麻烦。
但是,我是坚信未来肯定可以巅峰一些业务不复杂的项目。
只要掌握和多实战Cursor,按照逻辑文档和需求文档,一点一点指导Cursor开发下去,也是可以完成复杂项目。
来源:数据AI指北