使用LangChain4j打造你的第一个AI应用

什么是LangChain4j

LangChain4j 是一个 Java 框架,简化了构建由大型语言模型(LLM)驱动的应用程序。可以把它看作是你的 Java 应用与 OpenAI 的 GPT、Claude 或开源替代品等 AI 模型之间的桥梁。LangChain4j 无需编写复杂的代码来与这些 AI 模型交互,而是提供简洁易用的 API,帮你完成所有繁重的工作。

为什么使用LangChain4j

  1. 提供了统计的API接口,可以接入多家AI提供商。
  2. 现成的AI模块构建,例如:
    提示词模板
    聊天记忆
    函数调用
    RAG
  3. 强大的社区支持

总之,它就像spring简化了之前的java开发一样,LangChain4j简化了我们对于AI的开发。

LanChain4j 与 LanChain

它们都是可以快速帮你构建AI应用的框架,只是他们针对的编程语言和生态不同。

LanChain是为Python、JavaScript开发者开发的框架。

LanChain4j是为了Java开发者开发的框架。

LanChain的生态系统更为强大,LanChain4j并不是移植的LanChain,它是遵循Java开发规范的、适合Java开发者构建AI应用的最佳框架。

构建第一个LanChain4j应用

项目结构

java 复制代码
langchain4j-started
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── xianchaye
    │   │           └── langchain4j
    │   │               ├── LangChain4jStartedApplication.java #启动类
    │   │               ├── controller
    │   │               │   └── ChatController.java            #Rest API
    │   │               └── dto
    │   │                   ├── ChatRequest.java               #用户输入
    │   │                   └── ChatResponse.java              #LLM输出
    │   └── resources
    │       └── application.yml                                #配置

maven依赖

xml 复制代码
<parent>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-parent</artifactId>  
    <version>3.5.9</version>  
</parent>  
<properties>  
    <java.version>17</java.version>  
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
    <spring-boot.version>3.5.9</spring-boot.version>  
    <langchain4j.version>1.10.0</langchain4j.version>  
</properties>  
<dependencies>  
    <!-- Spring Boot Web for REST endpoints -->  
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-web</artifactId>  
    </dependency>  
    <!-- LangChain4j OpenAI Spring Boot Starter -->  
    <dependency>  
        <groupId>dev.langchain4j</groupId>  
        <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>  
    </dependency>  
</dependencies>  
<dependencyManagement>  
    <dependencies>  
        <!-- LangChain4j BOM  -->  
        <dependency>  
            <groupId>dev.langchain4j</groupId>  
            <artifactId>langchain4j-bom</artifactId>  
            <version>${langchain4j.version}</version>  
            <type>pom</type>  
            <scope>import</scope>  
        </dependency>  
    </dependencies>  
</dependencyManagement>

配置文件

yml 复制代码
spring:  
  application:  
    name: langchain4j-started                    #服务名称
  
langchain4j:  
  open-ai:  
    chat-model:  
      base-url: https://api.deepseek.com         #模型API请求地址,根据自己使用的替换
      api-key: ${DEEPSEEK_API_KEY:sk-xxxxx}      #模型API对应的API_KEY
      model-name: deepseek-chat                  #模型名称
      log-requests: true                         #模型请求日志,调试时建议开启
      log-responses: true                        #模型响应日志,调试时建议开启

程序代码

启动类

java 复制代码
@SpringBootApplication  
public class LangChain4jStartedApplication {  
  
    public static void main(String[] args) {  
        SpringApplication.run(LangChain4jStartedApplication.class, args);  
    }  
}

传输对象(DTO)

java 复制代码
package com.xianchaye.langchain4j.dto;  
//用于接收用户的输入
public record ChatRequest(String message) {  
}
java 复制代码
package com.xianchaye.langchain4j.dto;  
//用于LLM输出
public record ChatResponse(String message) {  
}

REST API

java 复制代码
@RestController  
@RequestMapping("/api/v1")  
public class ChatController {  
  
    private final ChatModel chatModel;  
  
    public ChatController(ChatModel chatModel) {  
        this.chatModel = chatModel;  
    }  
  
    @PostMapping("/chat")  
    public ChatResponse chat(@RequestBody ChatRequest request) {  
        String aiResponse = chatModel.chat(request.message());  
        return new ChatResponse(aiResponse);  
    }  
}

测试

启动程序,通过postman或者curl进行调用:

curl 复制代码
curl --location --request POST 'http://localhost:8080/api/v1/chat' \ --header 'Content-Type: application/json' \ --data-raw '{ "message":"你好,你是谁?" }'

输出:

json 复制代码
{
    "message": "你好!我是DeepSeek,由深度求索公司创造的AI助手!......"
}
相关推荐
小雨下雨的雨2 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
我没胡说八道4 小时前
高校论文AI检测优化工具对比研究与实测分析(2026)
人工智能·深度学习·机器学习·计算机视觉·aigc·论文
秦亚伟4 小时前
AI浪潮重塑融资租赁行业新格局
人工智能
love530love4 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
元启数宇4 小时前
喷淋AI布点实战:8小时人工布点→20分钟自动出图
人工智能
哈哈,柳暗花明4 小时前
人工智能专业术语详解(H)
人工智能·专业术语
圣殿骑士-Khtangc4 小时前
AI 编程工具 2026 实战横评:Cursor 3 vs Claude Code vs Copilot,开发者选型完全指南
人工智能·copilot
云器科技4 小时前
云器Lakehouse 2026年5月版本发布:拥抱 AI Agent,重塑数据智能开发新范式
人工智能
小鹰-上海鹰谷-电子实验记录本4 小时前
第六届党建引领科创生态座谈会 | 邓光辉博士出席分享AI赋能创新药科研新范式
人工智能·ai·电子实验记录本·药企合规
极客老王说Agent4 小时前
2026电信IDC机房巡检深度报告:人工巡检频次和深度够吗?实在Agent重塑智慧运维新范式
人工智能·ai·chatgpt