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

在本地运行大模型:使用Xinference与LangChain无缝集成 Xinference提供了在本地设备上运行大型AI模型的可能性,同时与LangChain的无缝集成使得模型的调用与管理变得更加便捷。Xinference官方文档LangChain官方指南。 阅读详情
AI摘要

本文介绍了如何使用LangChain4J在Java环境中接入Xinference本地大模型,涵盖pom依赖配置、模型启动、application.properties参数设置及OpenAI兼容接口路径注意事项,帮助Java开发者快速构建LLM应用。

系列文章目录

第一章 「Java AI实战」LangChain4J - 接入Xinference本地大模型
第二章 「Java AI实战」LangChain4J - ChatAPI 及常用配置
第三章 「Java AI实战」LangChain4J - 向量数据库接入与语义检索
第四章 「Java AI实战」LangChain4J - Agent智能体开发
第五章 「Java AI实战」LangChain4J - 记忆缓存
第六章 「Java AI实战」LangChain4J - 文本分类器实践
第七章 「Java AI实战」LangChain4J - 多 Agent 智能体协作



前言

随着大语言模型(LLM)的持续火热,LangChain 成为构建智能应用的事实标准。而对于 Java 开发者而言,LangChain4J 则是一把通往 AI 应用开发的新钥匙。它不仅封装了与 OpenAI、HuggingFace、Baidu、Azure 等模型服务的接入能力,更提供了类似 LangChain 的链式调用编排、上下文管理、Agent 机制、工具集成等核心功能,让 Java 开发者也能便捷地构建问答系统、RAG 应用、多轮对话、智能代理等 LLM 应用。

本系列将逐步了解 LangChain4J 的核心模块与实际用法,从基础组件到复杂链路,通过代码示例与项目实战,在 Java 的世界里轻松驾驭大模型,开启智能应用开发的新纪元。本文主要先介绍相关的基础内容。


一、简介

🚀 LangChain4J 是什么?

简介:LangChain4J 是一个专为 Java 开发者打造的开源框架,致力于将大语言模型(LLM)的强大能力以链式结构集成到 Java 应用中。它是 LangChain 在 Java 世界的“平行宇宙”,通过统一的接口封装,支持主流模型平台(如 OpenAI、Azure、HuggingFace、百度文心一言、Ollama、LocalAI 等),并提供对 Prompt 模板、Agent 智能体、多轮对话、记忆管理(Memory)、工具调用(Tool Calling)等核心能力的支持。

LangChain4J 的设计理念是:让 Java 开发者像使用标准库一样优雅地构建智能应用,不再受限于 Python 生态。

核心特性

✅ 多模型兼容(OpenAI / Claude / 文心 / Ollama 等)

🧩 支持 Prompt 模板、Chain 编排、上下文管理

🧠 内置 Memory 模块,支持多轮对话

🕹️ Agent 智能体 + Tool 插件机制

⚙️ 与 Spring Boot 无缝集成

🌍 支持 RAG(检索增强生成)场景构建

📦 Maven 依赖简单、API 易于使用

🚀 为什么使用LangChain4J ?

LangChain4J 是 LangChain 框架的 Java 语言实现,它的核心价值在于:将大模型能力嵌入到 Java 系统中,构建真正实用的“智能体”与“智能服务”。

1. Java生态兼容好,适合企业场景

  • 大多数企业系统后端还是 Java(Spring Boot / JEE)
  • LangChain4J 可以无缝嵌入 Java 服务,比如银行、政务、金融系统

2. 支持复杂链式调用和流程编排

  • 类似流程引擎,但围绕大模型的智能推理展开
  • 可以组合:LLM + 工具调用 + 数据查询 + 外部API + 状态判断 等

3. 可以打通数据库、微服务、搜索系统等

  • 嵌入 RAG 检索系统
  • 与业务系统双向通讯,实现 AI 助手执行复杂任务

4. 支持Agent、工具函数调用、上下文缓存等先进能力

  • 真正将“调用AI”变成“调用一个有智能的组件”,具备记忆和操作力

二、使用步骤

1.pom依赖

LangChain4j 在两个抽象层次上运行:

  • Low level:在此级别,可以最自由地访问所有底层组件
  • High level:在此级别,可以使用 AI 服务等高级 API 与 LLM 进行交互

基础pom

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

如果需要使用高级 AI 服务 API,则还需要添加 以下依赖项:

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j</artifactId>
    <version>1.0.0-beta3</version>
</dependency>

在这里插入图片描述
本篇选择的pom依赖如下:

   <!--所有调用均基于 OpenAI 协议标准,实现一致的接口设计与规范LangChain4j 提供与许多 LLM 提供商的集成。每个集成都有自己的 maven 依赖项。
        最简单的开始方式是从 OpenAI 集成开始-->
   <dependency>
      <groupId>dev.langchain4j</groupId>
      <artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
   </dependency>
   <dependency>
      <groupId>dev.langchain4j</groupId>
      <artifactId>langchain4j</artifactId>
      <version>0.26.0</version> <!-- 或使用最新版本 -->
   </dependency>

2.启用模型

xinference启动对应的LLM模型。Xinference的部署和使用参考往期文章:

https://blog.youkuaiyun.com/OFFTime_we/article/details/144774407?spm=1001.2014.3001.5502

在这里插入图片描述
注意:模型ID为步骤3需要用的model-name
在这里插入图片描述

3.Java服务配置文件 - application.properties

server.port=9001

spring.application.name=langchain4j
langchain4j.open-ai.chat-model.api-key=application-11111
langchain4j.open-ai.chat-model.model-name=qwen1.5-chat
langchain4j.open-ai.chat-model.base-url=http://ip:9997/v1

注意:

  1. Xinference 实际不校验 key,但不能是 null,随便给个非空值或用环境变量
  2. model-name并非是模型的名称,而且模型的id,一般由模型的名称+类型构成。取值为步骤二中的id.
  3. dify等AI应用开发平台对接xinference,baseUrl一般为http://ip:9997,而 OpenAiChatModel(底层 openai4j)会在这个 baseUrl 后面自己拼上chat/completions,也就是说实际请求的地址是:http://ip:9997/chat/completions
    但 Xinference 的 OpenAI 兼容接口长这样:
    基础地址:http://ip:9997/v1
    聊天接口:http://ip:9997/v1/chat/completions。所以相对于AI应用开发平台对接,langchain4j对接路径上需要加个:/v1

测试代码:

@RestController
@Slf4j
public class HelloLangChain4JController {

    @Resource
    private ChatLanguageModel chatLanguageModel;

    @GetMapping(value = "/langchain4j/hello")
    public String hello(@RequestParam(value = "prompt", defaultValue = "你是谁") String prompt) {
        String result = chatLanguageModel.generate(prompt);
        System.out.println("通过langchain4j调用模型返回结果:\n"+result);
        return result;
    }



    @GetMapping(value = "/langchain4j/hello2")
    public String hello2() {
        String result = chatLanguageModel.generate("你好,我爱吃西瓜");
        String result2 = chatLanguageModel.generate("我爱吃什么");
        System.out.println("11111\n"+result);
        System.out.println("2222\n"+result2);
        return result;
    }
}

输出结果:

在这里插入图片描述
在这里插入图片描述

三、总结

在本篇文章中,我们简要了解了 LangChain4J 的核心概念和优势,并通过实际步骤,快速完成了一个 Java 项目的基本接入。从添加 pom 依赖,到配置 API Key 和模型,再到完善服务端配置,整个流程清晰且高效。

LangChain4J 作为连接 Java 应用与大语言模型的桥梁,不仅降低了接入门槛,还为开发者提供了极大的灵活性和扩展性。无论是构建智能问答系统、自动化工具,还是结合私有知识库做定制化开发,LangChain4J 都展现了强大的潜力。

未来如果需要深度应用,比如自定义 Memory、优化 Prompt 模板、链式调用(Chain)等内容,还可以在此基础上进一步拓展。本专栏也会持续更新更深入的实战内容,欢迎大家一起探索 AI 与 Java 结合的更多可能!🚀

使用Xinference与LangChain构建多模态AI应用的终极指南 Xinference提供了一种方便高效的方法来部署和服务多种模型,特别适用于需要在本地环境中运行复杂AI应用的开发者。Xinference LLM示例Xinference Embeddings示例。 阅读详情

相关推荐

使用Xinference和LangChain轻松部署本地大模型

Xinference提供了一种灵活且高效的方式来本地运行复杂的模型,与LangChain的结合则提供了强大的工具链支持。Xinference官方文档LangChain文档。

adfyvatbia的博客 1043

大模型应用开发实战:Dify+RAGFlow+Xinf+Java

 在当今快速发展的技术世界中,掌握大模型应用开发技能已成为追求卓越职业生涯的关键。由云馨AI精心打造的“大模型应用开发:Java+Dify+RAGFlow+Xinference智能问答系统实战”课程,为您提供了一个从零开始学习直至精通的机会,帮助您成为大模型应用领域的专家。本课程无论您是编程新手还是已有一定基础的技术爱好者,都将在这里找到属于您的成长路径。课程内容涵盖了从虚拟机搭建、Docker和docker-compose等基础软件安装开始,到逐步掌握Dify的开发技能,包括但不限于模型配置、应用管理以及工作流编排等核心功能;学习如何部署Xinference模型,如LLM模型、Embedding Models和Rerank models等,让您的知识体系更加完善。更进一步,我们将探索RAGFlow的知识库搭建,通过深度文档理解驱动的开源RAG引擎,解决复杂格式数据问答的难题。最终,您将学会如何使用Java结合Dify、RAGFlow和Xinference搭建企业级智能问答系统,实现制度问答、联网搜索以及基于文档上传的智能问答等功能。参加本课程,您不仅能够获得构建智能客服系统、企业知识库等实际项目的宝贵经验,还能为未来的职业发展奠定坚实的基础。无论是为了提升个人竞争力,还是寻求职业转型,这里都有您需要的一切资源和支持。

Java大模型开发实战:Spring AI与LangChain4j技术全景指南

大模型正从概念落地为工程化应用,Java后端开发者需要一套完整的工具链来构建AI服务。Spring AI作为统一抽象层,屏蔽了底层模型差异,让开发者可以用类似Spring Boot的方式接入OpenAI、通义千问等大模型;而LangChain4j则复刻了LangChain的设计模式,为Java生态补齐了Chain、Agent、Tool等核心能力。两者共同构成了Java领域的大模型应用开发底座,配合Agent编排与Function Calling技术,模型不再仅是对话工具,而是能自动执行任务、调用工具的智能体

weixin_34280237的博客 433

Xinference本地大模型开发案例

大模型qwen2.5-instruct支持tool调用,目前ollama环境调用还不支持,所以选择用xinference来部署测试.

2401_86476271的博客 682

「企业级智能体」LangChain4j Multi-Agent:角色分离 + 协同编排实战

在大部分 Java 项目里,“接入大模型Controller 收到一个 question调用大模型接口拿到 answer把结果原样丢回前端这种玩法可以叫「高配搜索框模式一个 Agent 要写 Prompt、要查数据库、还要改写文案,太忙了不同角色(创作者、编辑、审稿人)的职责混在一起,难以维护想复用其中一段能力(比如只要润色)也不方便把大任务拆成多个 “角色清晰的 Agent”,再编排它们像流水线一样协同完成任务。CreativeWriter:负责创作故事。

OFFTime_we的博客 1543

多模型路由 + Resilience4j 熔断降级,Java 大模型服务的降级与兜底体系

现在做 AI 接入,很容易进一个“单模型思维陷阱”:只接了一个云端大模型:效果很好,但贵、对外网依赖强;成本可控、数据安全,但效果和稳定性未必始终在线;一些场景追求质量(复杂问答、长文总结);一些场景追求时延(聊天、实时联机);还有一些场景天然适合本地部署(SQL 助手、和数据库在同一内网)。于是,多模型共存 + 智能路由 + 熔断降级QUALITY优先,作为主力模型;本地模型:作为FAST/ 专用场景 / 熔断降级的备份;

OFFTime_we的博客 1167

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

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

OFFTime_we的博客 1333

langchain4j-community-xinference-spring-boot-starter-1.0.1-beta6.jar中文文档.zip

1、压缩文件中包含: 中文文档、jar包下载地址、Maven依赖、Gradle依赖、源代码下载地址。 2、使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 3、特殊说明: (1)本文档为人性化翻译,精心制作,请放心使用; (2)只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; (3)不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 4、温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件。 5、本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册。

「Java AI实战」LangChain4J - 向量数据库接入与语义检索

相比 Python 社区的 LangChain,LangChain4J 为 Java 提供了相似的链式语言模型编排能力,兼顾工程化可维护性与复杂场景的灵活性。而在众多场景中,向量数据库(如 FAISS、Milvus、Qdrant)扮演了大模型“记忆体”的角色,尤其适用于构建基于语义理解的问答系统(RAG)、文档检索、智能客服等系统。在传统数据库中,检索通常依赖于关键词、精确匹配或范围查询。而在自然语言处理、图像识别等 AI 场景中,我们更需要的是语义相似度检索,即“查找与某个内容在语义上最接近的内容”。

OFFTime_we的博客 2233

SAP前台处理:业务伙伴维护(客户主数据和供应商主数据)之基础视图 <BP>

这里主要讲解BP业务伙伴主数据中和财务相关的一些内容,包括基础视图数据,采购视图数据,销售视图数据,公司代码视图数据; S4统一了供应商和客户,从事务代码上:不再使用FD01和FK01进行维护,而使用事务代码BP统一维护;

SAP.David.Gao的博客 3455

5G初始注册流程详解(2)-Registration Request

1:了解注册的本质,5G终端为什么要注册? 2:SUCI,SUPI,5G-GUTI的区别? 3:为什么会有COMPLETE REGISTRATION REQUEST呢?

weixin_53220301的博客 3794

LangChain4j(18)——通过Xinference调用Rerank模型

也称为重排序模型,它从搜索中获取初始结果集,并重新评估它们,以确保它们更紧密地符合用户的意图。它超越了术语的表面匹配,考虑了搜索查询和文档内容之间更深层次的交互。LangChain4j支持的Rerank模型如下:其中通过onnx调用需要将模型转为onnx后调用,占用内存较多。Cohere、Jina等模型需要收费。本例采用Xinference方式调用。

weixin_43886636的博客 1336

Emotion-LLaMA实战指南:从零构建多模态情感识别系统(附Python代码)

本文提供了Emotion-LLaMA多模态情感识别系统的实战指南。通过详细的步骤,指导读者从零搭建开发环境、运行本地Demo、理解模型架构,并完成数据处理与模型训练。该创新模型融合视觉、听觉与文本信息,实现更精准、接近人类理解的情感分析与推理,并附有完整的Python代码实现。

weixin_29094775的博客 415

LangChain4j全套教程

目录一、大模型的架构图

xiaoyaozizai1的博客 353

实战分享:一文读懂RS-232总线

RS-232标准接口(又称EIARS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(Electronic IndustryAssociation,EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。

阿荣嵌入式 8513

海康门禁二次开发实战:用Java实现员工考勤系统的人脸权限管理

本文详细介绍了如何利用Java技术栈进行海康威视门禁系统的二次开发,实现员工考勤系统的人脸权限管理。从开发环境准备、SDK集成到设备连接、人脸数据批量处理,再到权限管理与异常处理,全面解析了海康门禁对接开发的关键步骤和最佳实践,助力企业构建高效、安全的智能考勤系统。

weixin_29191669的博客 259

长路的AI领域技术博客汇总文档

汇总AI后端核心技术栈:涵盖LM Studio/Xinference大模型本地化部署、Milvus向量数据库Java实战、LangChain4j框架系统化教程(RAG、Function Calling、多模态VL),以及ReAct Agent智能体设计与医疗AI项目实战,提供从理论到落地的全链路技术参考。

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 775

FPGA SPI驱动ADC避坑指南:以ADC128S022为例,详解时序设计与代码调试

本文以ADC128S022为例,详细解析FPGA通过SPI驱动ADC的时序设计与代码调试中的常见问题。从时钟分频计算、SPI模式选择到状态机实现,提供避坑指南和实战技巧,帮助工程师解决数据采集系统中的时序匹配难题。特别针对FPGA与ADC通信中的微妙差异,给出精确的Verilog代码示例和ModelSim仿真验证方法。

weixin_42522374的博客 457

从模型部署到多智能体协作:大模型Agent实战开发全解析

大模型应用正从简单的API调用走向复杂的智能体(Agent)编排,这要求开发者理解工具调用、记忆管理、任务规划等核心机制。本文基于LangGraph、LangChain4j、Dify等主流框架,系统梳理了从本地模型部署(Ollama/vLLM)、RAG知识库构建、到LoRA微调与多智能体协作的完整技术链路。同时,结合销售智能体等真实项目案例,探讨了Function Calling、ReAct模式、上下文压缩等工程实践要点,为后端开发者及AI应用工程师提供一条清晰的学习路线。无论你是想入门大模型应用层,还是希

weixin_33912638的博客 530

ISP 芯片作为独立设备节点的驱动实现要点:多平台结构差异与工程部署策略解析

随着 ISP(Image Signal Processor)从 SoC 集成形态向独立芯片模块演进,在多摄系统、高动态场景、AI 图像前处理等需求下,ISP 作为单独设备节点进行驱动设计已成为主流趋势。尤其在多 SoC 平台(如高通、联发科、展锐、Rockchip)中,不同厂商对 ISP 的抽象方式与驱动接口处理存在显著差异。本文以实际工程为基础,从 Linux 内核下的设备注册流程、media\_entity 配置、VideoDevice 分配、数据 DMA 管理、与 sensor 的流同步控制等关键点展

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1461

把 SAP Activate 六个阶段看透:从项目落地到 SAP BTP 扩展与 AI 运营的一体化实践

摘要: SAP Activate 方法论常被误解为简单的项目阶段划分,实则是一套将业务目标、标准流程、系统配置和持续运营串联的实施控制体系。其六个阶段(Discover至Run)构成价值递进的实施通道,核心交付集中在Prepare到Deploy阶段。Discover阶段通过DDA评估确立项目方向与范围,Prepare阶段聚焦可执行性准备,Explore阶段采用Fit-to-Standard工作坊进行需求分层,Realize阶段基于前期决策进行配置与扩展开发。该方法论强调标准化优先,差异化需求通过SAP BT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2328

ollama+llm+springai集成

本文详细介绍了ollama+anything+llm本地环境搭建与RAG检索增强环境的配置方法。主要内容包括:1)ollama的安装配置及模型下载;2)与SpringAI的集成验证,包括ChatClient、ChatModel、工具调用和MCPServer的实现;3)AnythingLLM的安装使用,重点讲解Workspace工作区配置和RAG文档验证;4)常用ollama命令汇总。文章指出SpringAI文档更新滞后,建议直接使用HTTP接口而非依赖第三方包,并分享了实际开发中的经验教训和问题发现。

yanghuashuiyue的专栏 1206

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

AI全栈开发实战指南:从模型选型到Agent部署的完整技术路线

随着大模型能力的快速迭代,AI全栈开发正从概念走向工程落地,成为软件研发领域的重要方向。其核心并非单纯调用模型接口,而是围绕模型层、编排层与应用层构建完整系统,涉及提示词工程、Agent设计、RAG检索增强、Function Calling以及上下文管理等关键技术。理解这些技术的原理与协作方式,能够帮助团队在模型输出不稳定、Token成本失控、工具调用出错等现实问题中找到系统化解法。在实际应用中,从需求拆解、结构化Prompt编写,到模型私有化部署与流式输出优化,每一步都需要工程化思维来保障质量与性能。无论

weixin_33894640的博客 320

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

h2oGPT FAQ 实战全解:并行服务、模型加载、结构化输出、多模态与鉴权部署指南

h2oGPT 是一个支持本地私有部署的 AI 助手平台,覆盖文档问答、图像、视频与语音等多模态能力。本文以官方 FAQ 文档为主线,结合仓库源码,系统梳理其高频实战问题:从 vLLM 驱动兼容、并行隔离的 OpenAI/摄取服务器,到 Chat Template 模型加载、JSON 结构化输出、嵌入与解析调优、STT/TTS 与视觉模型接入,再到 API Key 鉴权、Open Web UI 集成

gitblog_01041的博客 203

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

利用中转API部署本地大语言模型

在本文中,我们将展示如何使用中转API地址 (http://api.wlai.vip) 来部署本地的大语言模型 (LLM)。我们将使用Llama 2聊天模型作为示例,但该方法适用于所有受支持的LLM模型。本文将包括以下几个步骤:安装所需库、启动本地模型、创建索引和查询引擎,并附上示例代码和可能遇到的错误及解决方法。

ppoojjj的博客 1190

从零用Langchain RAG部署 自己的GLM4大模型

用Langchain-chatchat框架搭建自己的glm4大模型

yangtengze的博客 1605
上一篇: LLaMA Factory 微调框架数据加载
下一篇: 「Java AI实战」LangChain4J - ChatAPI 及常用配置
TA  zhao
博客等级 码龄7年 58粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值