「Java AI实战」LangChain4J - ChatAPI 及常用配置

系列文章目录

第一章 「Java AI实战」LangChain4J接入Xinference本地大模型



前言

本文将聚焦于 LangChain4J 提供的 Chat API ,结合本地模型(通过 Xinference 部署的deepseek-chat 模型,通过maxkb创建应用,这两块的文档见往期文章)进行调用演示,帮助快速理解其核心机制,完成从模型接入到对话响应的 Java 化实现。


一、Chat API 概览

LangChain4J 借鉴了 LangChain 的架构设计理念,提供了 两层抽象(2 levels of abstraction),以满足从低层模型调用到高层链式编排的不同开发需求。

🔹 1. Low Level(底层抽象)

开发者拥有最完全的控制权和灵活性,是面向开发者提供最原始的构件,可以手动控制消息流程、向量存储、嵌入生成等细节。需要开发者来组织模型调用流程。

✅ 典型组件:

  • ChatLanguageModel

  • UserMessage / AiMessage

  • EmbeddingStore

  • Embedding

  • PromptTemplate

  • Chain

✅ 示例用法:

ChatLanguageModel model = OpenAIChatModel.withApiKey("your-key");

List<Message> messages = List.of(
    new UserMessage("Tell me a joke.")
);
AiMessage response = model.generate(messages);

✅ 适合场景:

  • 框架内部集成开发

  • 需要高度自定义对话流程、提示词结构

  • 构建“可组合型”LLM服务组件

🔹 2. High Level(高层抽象)

以“声明式”的方式使用 LLM,屏蔽底层复杂度,借助 @AIServices 注解快速创建接口,自动注入模型能力,无需关心提示词模板、消息对象等底层细节,更贴近传统Java 服务开发体验。

✅ 典型特性:

  • @AIServices 接口定义

  • 声明式语义 + 自动 Prompt 编排

  • 易于集成进业务系统

✅ 示例用法:

@AiService
public interface Assistant {
   
   
    String chat(String input);
}

Assistant assistant = AiServices.create(Assistant.class, model);
assistant.chat("How are you?");

✅ 适合场景:

  • 快速构建 LLM 应用原型

  • 面向业务开发者开放能力

  • 集成到 Spring Boot 服务中作为组件调用

🔚 总结对比:

抽象层级 控制力 易用性 推荐使用者
Low Level 💯 极高 ❌ 需要写大量代码 框架作者、需要深度定制者
High Level ✅ 足够 ✅ 非常高 应用开发者、快速交付团队

二、项目初始化与依赖引入

2.1. Maven 依赖配置

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!--langchain4j-open-ai + langchain4j-->
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j-open-ai</artifactId>
		</dependency>
		<dependency>
			<groupId>dev.langchain4j</groupId>
			<artifactId>langchain4j</artifactId>
		</dependency
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值