使用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助手!......"
}
相关推荐
AI编程教父2 小时前
WorkBuddy企业培训怎么选?腾讯云公开课程与红烁AI内训对比
大数据·人工智能
深蓝AI2 小时前
AI Agent 点了发布却超时:一条回执丢失,为什么能造成两篇文章?
人工智能·python
怪奇云呼军3 小时前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?
人工智能·python·算法·云计算·音视频
ajassi20003 小时前
AI语音智能体开发日记(十八)智能体服务器xiaozhi-esp32-server源码部署指南
运维·服务器·人工智能·ai·ai编程
云淡风轻~窗明几净3 小时前
角谷猜想的进展之三 移动了群山/沸騰的群山 2026-10-10
人工智能·算法·dubbo·图论
AliCloudROS3 小时前
计算巢支持一键私有化部署Qwen3.8-27B
人工智能
汇智信科3 小时前
汇智兵棋:AI赋能的一体化智能兵棋推演平台
人工智能
Joecien3 小时前
AI 生成透明背景图实战:Qwen-Image-2.1-Pro API 实测(21 次实验 + 完整调用代码 + 避坑指南)
人工智能
龙亘川3 小时前
设备管理业务建模:从设备信息台账到维护计划执行闭环
大数据·人工智能·智慧城市·开源软件·数据可视化
Psycho_MrZhang3 小时前
多 Agent 研究系统的架构与实践
人工智能·架构