偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

LangChain4j快速入門實(shí)戰(zhàn)

開發(fā) 前端
目前主流的 Java AI 開發(fā)框架有?Spring AI[1]?和?LangChain4j[2],它們都提供了很多?開箱即用的 API?來幫你調(diào)用大模型、實(shí)現(xiàn) AI 開發(fā)常用的功能。

大家好,我是程序員NEO。現(xiàn)在 AI 應(yīng)用開發(fā)可以說是程序員必備的技能了,求職時(shí)能夠大幅增加競爭力。本篇文章,我來給大家介紹一款主流的 Java AI 應(yīng)用開發(fā)框架 LangChain4j

什么是 LangChain4j?

目前主流的 Java AI 開發(fā)框架有 Spring AI[1] 和 LangChain4j[2],它們都提供了很多 開箱即用的 API 來幫你調(diào)用大模型、實(shí)現(xiàn) AI 開發(fā)常用的功能。

比如:

? 對話記憶

? 結(jié)構(gòu)化輸出

? RAG 知識庫

? 工具調(diào)用

? MCP

? SSE 流式輸出

就我個(gè)人體驗(yàn)下來,這兩個(gè)框架的很多概念和用法都是類似的,也都提供了很多插件擴(kuò)展,都支持和 Spring Boot 項(xiàng)目集成。雖然有一些編碼上的區(qū)別,但孰好?孰壞,使用感受也是因人而異的。

實(shí)際開發(fā)中應(yīng)該如何選擇呢?

這個(gè)答案等我后續(xù)再寫一篇文章來對比分析吧,今天我們主要來介紹 LangChain4j。最后再揭曉答案,因?yàn)槟莻€(gè)時(shí)候?你自己也會(huì)有一些想法。

這里我簡單的新建一個(gè) lang-chain4j-demo 項(xiàng)目,來演示一下它的基本用法。

打開 IDEA 開發(fā)工具,新建一個(gè) Spring Boot 項(xiàng)目,Java 版本選擇 21(因?yàn)?LangChain4j 最低支持 17 版本)。

選擇依賴,使用 3.5.x 版本的 Spring Boot,引入 Spring MVC 和? Lombok 注解庫:

圖片

? SpringBoot 3.5.3

? JDK 21

新建項(xiàng)目后,先修改配置文件后綴為 yml,便于后面填寫配置。

圖片

這里我會(huì)建議大家創(chuàng)建一個(gè) application-local.yml 配置文件,將開發(fā)時(shí)用到的敏感配置寫到這里,并且添加到 .gitignore 中,防止不小心開源出來。

好,接下來我們來添加 LangChain4j 依賴。先實(shí)現(xiàn)第一個(gè)功能:AI 對話 - ChatModel。

AI 對話 - ChatModel

ChatModel 是最基礎(chǔ)的概念,負(fù)責(zé)和 AI 大模型交互。

首先需要引入至少一個(gè) AI 大模型依賴[3],這里選擇國內(nèi)的阿里云大模型,提供了和 Spring Boot 項(xiàng)目的整合依賴包,比較方便:

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
    <version>1.1.0-beta7</version>
</dependency>

圖片

需要到 阿里云百煉平臺[4] 獲取大模型調(diào)用 key,注意不要泄露!

圖片圖片

回到項(xiàng)目,在配置文件中添加大模型配置,指定模型名稱和 API Key

langchain4j:
  community:
    dashscope:
      chat-model:
        model-name: qwen-max
        api-key: <You API Key here>

圖片圖片

可以 按需選擇模型名稱[5],追求效果可以用 qwen-max,否則可以選擇效果、速度、成本均衡的 qwen-plus。

圖片圖片

除了編寫配置讓 Spring Boot 自動(dòng)構(gòu)建 ChatModel 外,也可以通過構(gòu)造器自己創(chuàng)建 ChatModel 對象。這種方式更靈活,在 LangChain4j 中?我們會(huì)經(jīng)常用到這種方式來構(gòu)造對象。

ChatModel qwenModel = QwenChatModel.builder()
                    .apiKey("You API key here")
                    .modelName("qwen-max")
                    .enableSearch(true)
                    .temperature(0.7)
                    .maxTokens(4096)
                    .stops(List.of("Hello"))
                    .build();

有了 ChatModel 后,創(chuàng)建一個(gè) AiCodeHelper 類,引入自動(dòng)注入的 qwenChatModel,編寫簡單的對話代碼,并利用 L?ombok 注解打印輸出結(jié)果日志:

/**
 * @author BNTang
 */
@Service
@Slf4j
public class AiCodeHelper {

    @Resource
    private ChatModel qwenChatModel;

    public String chat(String message) {
        UserMessage userMessage = UserMessage.from(message);

        ChatResponse chatResponse = qwenChatModel.chat(userMessage);

        AiMessage aiMessage = chatResponse.aiMessage();

        log.info("AI 輸出:{}", aiMessage.toString());

        return aiMessage.text();
    }
}

編寫單元測試,向 AI 打個(gè)招呼吧:

@SpringBootTest
class AiCodeHelperTest {

    @Resource
    private AiCodeHelper aiCodeHelper;

    @Test
    void chat() {
        aiCodeHelper.chat("你好,我是程序員NEO");
    }
}

以 Debug 模式運(yùn)行單元測試,成功運(yùn)行并查看輸出:

圖片圖片

可以看到 AI 很有禮貌地回應(yīng)了我,說明我們已經(jīng)成功調(diào)用了阿里云大模型。

好了,今天的內(nèi)容就到這里,后續(xù)我會(huì)繼續(xù)寫一些 LangChain4j 的實(shí)戰(zhàn)功能,比如對話記憶、結(jié)構(gòu)化輸出、RAG 知識庫等,敬請期待!

引用鏈接

[1] Spring AI: https://spring.io/projects/spring-ai

[2] LangChain4j: https://docs.langchain4j.dev/intro

[3] AI 大模型依賴: https://mvnrepository.com/artifact/dev.langchain4j/langchain4j-community-dashscope-spring-boot-starter

[4] `阿里云百煉平臺`: https://bailian.console.aliyun.com/?tab=model#/api-key

[5] 按需選擇模型名稱: https://bailian.console.aliyun.com/?tab=doc#/doc/?type=model

責(zé)任編輯:武曉燕 來源: 程序員NEO
相關(guān)推薦

2025-04-22 03:00:00

模型SpringAI

2025-05-07 02:22:00

2025-05-06 08:09:50

2025-05-12 08:00:55

2024-05-14 09:57:10

人工智能QuarkusLLM

2025-05-09 10:31:04

2025-05-06 08:21:35

2025-05-07 08:14:58

2025-03-31 00:44:00

JavaAI開發(fā)

2025-05-26 03:15:00

SVMEmbedding數(shù)據(jù)庫

2025-05-07 01:01:00

JavaQuarkusAI

2025-04-29 03:40:00

API大模型配置

2025-06-10 04:00:00

RAGRRFReranker

2024-12-19 08:00:00

人工智能LLMLangChain

2025-04-27 01:33:23

MongoDBDocker容器

2025-09-01 07:14:59

2023-09-20 08:00:00

大語言模型代碼庫

2015-10-29 15:36:19

Redis入門

2016-10-21 13:10:18

javalog4jslf4j

2011-05-05 09:37:35

J-Hi
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號