Skip to content
LangChain4j 文档版本 1.22.0 源快照 5996461d 更新于 2026-10-14

Payara Micro 集成

LangChain4j 可无缝集成到 Payara Micro 应用中,借助 Jakarta EE 与 MicroProfile 的标准特性实现依赖注入与配置。

本指南演示如何创建直接实例化并使用 LangChain4j 模型的 JAX-RS 资源,配置由 MicroProfile Config 管理。

Maven 依赖

首先,将核心 langchain4j 依赖以及你所需要的具体模型集成模块添加到 pom.xml 文件:

xml
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.release>21</maven.compiler.release>
    <jakartaee-api.version>10.0.0</jakartaee-api.version>
    <payara.version>6.2025.5</payara.version>
    <version.langchain4j>1.22.0</version.langchain4j>
</properties>

<dependencies>
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-open-ai</artifactId>
        <version>${version.langchain4j}</version>
    </dependency>
    
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-google-ai-gemini</artifactId>
        <version>${version.langchain4j}</version>
    </dependency>
    
    <dependency>
        <groupId>jakarta.platform</groupId>
        <artifactId>jakarta.jakartaee-api</artifactId>
        <version>${jakartaee-api.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

配置多个模型

你可以在 MicroProfile 配置文件(位于 src/main/resources/META-INF/microprofile-config.properties)中按如下方式提供各模型的属性,从而配置多个 AI 模型:

openai.api.key=${OPENAI_API_KEY}
openai.chat.model=gpt-4o-mini

google-ai-gemini.chat-model.api-key=${GEMINI_KEY}
google-ai-gemini.chat-model.model-name=gemini-2.0-flash-lite

deepseek.api.key=${DEEPSEEK_API_KEY}
deepseek.chat.model=deepseek-reasoner

实现聊天资源

在这种方式中,每个 JAX-RS 资源负责自己的 AI 模型实例。该模式对每个提供者重复一次。

RestConfiguration 类继承 jakarta.ws.rs.core.Application,并为所有 REST 端点定义基础路径 /api:

java
import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;

@ApplicationPath("api")
public class RestConfiguration extends Application {
}

对于每个模型,我们有一个 JAX-RS Resource 类,它:

  • 使用 @Inject 和 @ConfigProperty 注入配置属性。
  • 使用带 @PostConstruct 注解的方法,在属性注入完成后构建模型实例。
  • 创建一个 @GET 端点与模型交互。
java
@Path("openai")
public class OpenAiChatModelResource {

    @Inject
    @ConfigProperty(name = "openai.api.key")
    private String openAiApiKey;

    @Inject
    @ConfigProperty(name = "openai.chat.model")
    private String modelName;

    private OpenAiChatModel chatModel;

    @PostConstruct
    public void init() {
        chatModel = OpenAiChatModel.builder()
                .apiKey(openAiApiKey)
                .modelName(modelName)
                .build();
    }

    @GET
    @Path("chat")
    @Produces(MediaType.TEXT_PLAIN)
    public String chat(@QueryParam("message") @DefaultValue("Hello") String message) {
        return chatModel.generate(message);
    }
}

同样的模式也用于 GeminiChatModelResource 与 DeepSeekChatModelResource。

注意,最后一个复用了 OpenAiChatModel 类,只是把 baseUrl 改为 deepseek API,展示了该库的灵活性。

API 文档

示例项目包含一个 Swagger UI,用于交互式探索和测试 API 端点。

webapp 文件夹中的 index.html 文件配置 Swagger UI,让它加载由 Payara Micro 在 /openapi 端点自动生成的 OpenAPI 规范:

json
openapi: 3.0.0
info:
  title: Deployed Resources
  version: 1.0.0
...
        
endpoints:
/:
- /api/deepseek/chat
- /api/gemini/chat
- /api/openai/chat
components: {}

运行示例应用

该项目配置为通过 Payara Micro Maven 插件运行。

前置条件:

  • Java SE 21+
  • Maven 执行环境

执行

  1. 在项目根目录打开一个终端。
  2. 设置 API 密钥所需的环境变量。应用需要它们来向 AI 服务认证。你必须配置:
    • OPENAI_API_KEY
    • GEMINI_KEY
    • DEEPSEEK_API_KEY
  3. 执行以下 Maven 命令:mvn clean package payara-micro:start

服务器启动后,你可以用两种方式测试端点:

  1. 如果你使用 IntelliJ IDEA(Ultimate 版)或其他具备类似功能的 IDE,可以直接从 .http 文件执行请求:

    a. 打开位于 src/test/resources/ 的 test.http 文件。

    b. IDE 会在每个请求定义旁显示一个绿色小"播放"图标:

    c. 点击你想运行的那个请求旁的图标。API 的响应会直接显示在 IDE 的工具窗口中:

  2. 使用 AI 聊天界面

    在浏览器中访问 http://localhost:8080/ 。这会打开一个交互式聊天页面,你可以直接从浏览器探索和测试可用的端点:

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。