一、引言
本文将带您学习如何借助 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-ai 或 ollama Profile,则会分别替换为 quarkus-langchain4j-mistral-ai 或 quarkus-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-jackson、quarkus-arc 等核心 Quarkus 模块即可。为实现 REST API 的 JUnit 测试,还需在 test 作用域中引入 quarkus-junit5 和 rest-assured 模块。
<dependencies>
<!-- 核心 Quarkus 依赖 -->
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-jackson</artifac

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



