LangChain4j

LangChain4j的目标就是简化将大语言模型集成到Java应用程序中的过程

主要功能

  • 与大语言模型和向量数据库的便捷交互
  • 专为Java打造
  • 智能代理,工具,检索增强生成

应用

客户支持聊天机器人,它可以:

  • 礼貌地回答客户问题
  • 处理 / 更改 / 取消订单

教育助手,它可以:

  • 教授各种学科
  • 解释不清楚的部分
  • 评估用户的理解 / 知识水平

你想要处理大量的非结构化数据(文件、网页等),并从中提取结构化信息。例如:

  • 从客户评价和支持聊天记录中提取有效评价
  • 从竞争对手的网站上提取有趣的信息
  • 从求职者的简历中提取有效信息

你想要生成信息,例如:

  • 为你的每个客户量身定制的电子邮件

为你的应用程序 / 网站生成内容:

  • 博客文章
  • 故事

你想要转换信息,例如:

  • 总结
  • 校对和改写
  • 翻译

**1.**创建 SpringBoot 项目

1.1****创建 Maven 项目

1.2****添加 SpringBoot 相关依赖

在pom.xml文件中添加下面依赖

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| XML <properties> <maven.compiler.source>18</maven.compiler.source> <maven.compiler.target>18</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-boot.version>3.2.6</spring-boot.version> <knife4j.version>4.3.0</knife4j.version> <langchain4j.version>1.0.0-beta3</langchain4j.version> <mybatis-plus.version>3.5.11</mybatis-plus.version> </properties> <dependencies> <!-- web应用程序核心依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 编写和运行测试用例 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 前后端分离中的后端接口测试工具 --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>{knife4j.version}\ \ \ \ \ \

  1. 主 langchain4j 模块,包含有用的工具,如文档加载器、聊天记忆实现,以及诸如人工智能服务等高层功能。
  1. 大量的 langchain4j-{集成} 模块,每个模块都将各种大语言模型提供商和嵌入存储集成到LangChain4j 中。你可以独立使用 langchain4j-{集成} 模块。如需更多功能,只需导入主 langchain4j依赖项即可。

2.2****添加 LangChain4j 依赖

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| XML <!-- 基于open-ai的langchain4j接口:ChatGPT、deepseek都是open-ai标准下的大模型 --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>1.9.1</version> </dependency> |

2.3****创建测试用例

官方提供了测试代码,我们在项目中进行测试类LLMTest

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Java package com.itguigu.java.ai.LangChain4j; import dev.langchain4j.model.openai.OpenAiChatModel; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class LLMTest { @Test public void testGPTDemo(){ //官方提供 OpenAiChatModel model = OpenAiChatModel.builder() .baseUrl("http://langchain4j.dev/demo/openai/v1") .apiKey("demo") .modelName("gpt-4o-mini") .build(); //向模型提问 String chat = model.chat("你是谁?"); System.out .println(chat); } } |

**3.**使用 springBoot 整合

官方链接:https://docs.langchain4j.dev/tutorials/spring-boot-integration

3.1****替换依赖

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| XML <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId> <version>1.9.1-beta17</version> </dependency> |

3.2****配置模型参数

在application.properties文件中添加

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| YAML langchain4j.open-ai.chat-model.base-url=http://langchain4j.dev/demo/openai/v1 langchain4j.open-ai.chat-model.api-key=demo langchain4j.open-ai.chat-model.model-name=gpt-4o-mini *#*请求和响应的日志 langchain4j.open-ai.chat-model.log-requests=true langchain4j.open-ai.chat-model.log-responses=true *#*要想显示open-ai的请求和响应日志,需要将日志修改成debug级别 logging.level.root=debug |

3.3****创建测试用例

采取依赖注入的方式

|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| Java @Autowired private OpenAiChatModel model; @Test public void springBootTest(){ String chat = model.chat("你可以帮助我什么?"); System.out .println(chat); } |

相关推荐
SamDeepThinking14 小时前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
朕瞧着你甚好15 小时前
技术雷达 & Java 集成评估报告 — Apache Tika 3.3.1
java·ai编程
MacroZheng16 小时前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
SamDeepThinking16 小时前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
Flittly1 天前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了1 天前
Java 生成二维码解决方案
java·后端
人活一口气2 天前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP2 天前
Vibe Coding -- 完整项目案例实操
java
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing2 天前
Google第三方授权登录
java·后端·程序员