上手实践:Quarkus 集成 LangChain4j 与聊天模型

一、引言

本文将带您学习如何借助 Quarkus LangChain4j 项目,构建基于不同聊天模型的应用程序。Quarkus 提供的 AI 聊天模型接口兼具可移植性与简洁性,能让开发者与各类 AI 模型实现无缝交互。我们将搭建一个示例 Quarkus 应用,实现 OpenAI、Mistral AI 和 Ollama 这三款主流聊天模型的切换使用。

本文是 Quarkus LangChain4j 系列 AI 教程的第一篇,后续还会在博客中推出更多相关内容。本教程的设计思路与 Spring AI 系列教程相似,示例应用的功能也与对应的 Spring Boot 应用保持一致,方便您直观对比两种框架的实现方式。

若您对 Quarkus 感兴趣,可前往博客的 Quarkus 分类专栏,查找更多您关注的主题内容。

二、源码获取

如果您想亲自实践本教程的示例,可直接使用我提供的源码。操作步骤很简单:先克隆我的 GitHub 示例仓库,再按照文中的步骤指引执行即可。

三、开发背景

每次撰写 AI 相关的文章或开发示例时,我都会先明确要解决的问题。本次示例要解决的问题其实很常见:在讲解复杂技术概念时,我常会发布一些小型演示应用,而这些应用通常需要测试数据来展示输出效果。以往,我要么手动添加演示数据,要么使用 Datafaker 这类库自动生成数据;这次,我们可以借助 AI 聊天模型的 API 来实现这一需求——接下来,就让我们正式开始吧!

值得一提的是,我此前已针对 Spring Boot 框架讲解过类似主题。若您想对比两种框架在 AI 聊天模型简单交互场景下的功能差异,可参考这篇关于 Spring AI 的文章。

四、依赖配置

本示例应用使用的是当前最新版本的 Quarkus 框架,首先需要配置依赖管理与核心依赖:

4.1 依赖管理配置

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkus.platform</groupId>
            <artifactId>quarkus-bom</artifactId>
            <version>${quarkus.platform.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

4.2 多 AI 模型依赖切换

通过激活特定的 Maven Profile,可轻松实现不同 AI 模型依赖的切换。默认情况下,open-ai Profile 处于激活状态,会在 Maven 依赖中引入 quarkus-langchain4j-openai 模块;若激活 mistral-aiollama Profile,则会分别替换为 quarkus-langchain4j-mistral-aiquarkus-langchain4j-ollama 模块。

<profiles>
    <profile>
        <id>open-ai</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <dependencies>
            <dependency>
                <groupId>io.quarkiverse.langchain4j</groupId>
                <artifactId>quarkus-langchain4j-openai</artifactId>
                <version>${quarkus-langchain4j.version}</version>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>mistral-ai</id>
        <dependencies>
            <dependency>
                <groupId>io.quarkiverse.langchain4j</groupId>
                <artifactId>quarkus-langchain4j-mistral-ai</artifactId>
                <version>${quarkus-langchain4j.version}</version>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>ollama</id>
        <dependencies>
            <dependency>
                <groupId>io.quarkiverse.langchain4j</groupId>
                <artifactId>quarkus-langchain4j-ollama</artifactId>
                <version>${quarkus-langchain4j.version}</version>
            </dependency>
        </dependencies>
    </profile>
</profiles>

4.3 核心与测试依赖

示例应用功能简洁,主要通过暴露 REST 接口与选定的 AI 模型交互,并返回 AI 生成的响应。因此,只需引入 quarkus-rest-jacksonquarkus-arc 等核心 Quarkus 模块即可。为实现 REST API 的 JUnit 测试,还需在 test 作用域中引入 quarkus-junit5rest-assured 模块。

<dependencies>
    <!-- 核心 Quarkus 依赖 -->
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-rest-jackson</artifac
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值