系列文章目录
第一章 「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

最低0.47元/天 解锁文章

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



