在这篇文章中,我们将深入了解LangChain4j框架的高层API(AiServices),并展示如何将其与OpenAI集成,以实现简单的聊天功能。我们将讨论LangChain4j支持的各种大型语言模型(LLMs),并逐步展示如何通过示例代码实现。

LangChain4j支持的LLMs

供应商流式调用函数JSON多模态观测
Amazon Bedrocktext
Anthropictext, image
Azure OpenAItext, image
ChatGLMtext
DashScopetext, image, audio
GitHub Modelstext
Google AI Geminitext, image, audio, video, PDF
Google Vertex AI Geminitext, image, audio, video, PDF
Google Vertex AI PaLM 2text
Hugging Facetext
Jlamatext
LocalAItext
Mistral AItext
Ollamatext, image
OpenAItext, image
Qianfantext
Cloudflare Workers AItext
Zhipu AItext, image

LangChain4j的LLM API概述

核心:ChatLanguageModel 模型元信息提供

1. 依赖包

pom.xml中添加以下依赖:

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
</dependency>
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
</dependency>

2. 配置 ChatLanguageModel 提供模型元信息

@Bean
public ChatLanguageModel chatLanguageModel() {
    return OpenAiChatModel.builder()
            .apiKey(System.getenv("DASHSCOPE_KEY"))
            .modelName("qwen-turbo")
            .baseUrl("https://dashscope.aliyuncs.com/compatible-mode/v1")
            .build();
}

低级LLM API 调用

使用ChatLanguageModel接口与大模型进行交互。以下是接口的主要方法:

public interface ChatLanguageModel {
    String generate(String userMessage);
    Response<AiMessage> generate(List<ChatMessage> messages);
}
@SpringBootTest
class SimplechatApplicationTest {

    @Autowired
    private ChatLanguageModel chatLanguageModel;

    @Test
    public void testChat(){
        String generate = chatLanguageModel.generate("你好");
        System.out.println(generate);
    }
}

高级LLM API

为了简化开发,LangChain4j提供了高层API,使开发者能够更专注于业务逻辑,而无需关注底层实现细节。高层API中,AiService 用于定义一个集成大模型的服务。

1. 定义AI Service

package com.pig4cloud.ai.service;

/**
 *  AI 助手接口
*/
public interface ChatAssistant {
    String chat(String userMessage);
}
  • 声明成 Spring Bean, 注入模型
@Bean
public ChatAssistant chatAssistant() {
    return AiServices.builder(ChatAssistant.class)
            .chatLanguageModel(chatLanguageModel())
            .build();
}

2. 测试

@SpringBootTest
class ChatAssistantTest {
    @Autowired
    private ChatAssistant chatAssistant;

    @Test
    public void testChat() {
        String message = "Hello";
        String response = chatAssistant.chat(message);
        System.out.println(response);
    }
}

PIG AI应用开发平台 | 适合中大型企业构建自主可控的AI中台

为Java开发者提供全栈式AI工程化解决方案,强类型/高可维护性架构,内置30+主流大模型支持。

  • 🔍 知识引擎体系:RAG 知识引擎全自动化多模态解决方案
  • 📝 AI-OCR 中枢:复杂非标场景高精度识别
  • ⚙️ 业务智能融合:函数编排 + Chat2SQL,无缝对接现有业务系统
  • 🛡️ N维风控体系:敏感词/IP/Token/User 规则控制引擎

文档有误?请协助编辑

发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档!