- 博客(284)
- 资源 (3)
- 收藏
- 关注
原创 Langchain4j 系列之三十五 - Agent之Workflows
本章给大家演示了Langchain4j中如何实现各种常见的workflow,那么下一章,给大家从底层源码分析这些场景的workflow是如何实现的。Langchain4j 系列上一章:《
2026-01-27 09:59:45
138
原创 Langchain4j 系列之三十四 - Agents入门
1)首先,来看看如何定义Agent。从示例中可以知道通过的agentBuilder()方法构建一个Agent。点进入可以看看其通过来创建,再看看说明:从上图可以看到会通过解析用户代理的接口的方法,把agent的名称、id、描述和outputKey信息获取到,以便后面创建代理。2)再看看看的build()方法。说明:从上图可以看到,通过Proxy代理的方式,构建一个Agent。因此从上面图可以知道,Langchain4j 中的Agent就是通过Proxy代理方式创建了用户定义接口的代理类。
2026-01-26 09:47:26
532
原创 Langchain4j 系列之三十三 - Classification(分类器)
本章简单演示了Langchain4j中如何实现一个分类器,分类器在实际生产应用中很常见,也在文章的最后分析了其中底层代码原理。Langchain4j 系列上一章:《
2026-01-26 09:46:54
367
原创 Langchain4j 系列之三十二 - Observability之集成Arize-Phoenix
本章给大家演示了Langchain4j中如何集成Arize-Phoenix,这个在生产级别的实际使用是非常重要的。但是其中关于opentelemetry、openinference、Arize-Phoenix并没有细讲,这是由于这方面内容也比较多,要了解这个的朋友可以上网搜一下。后面如果有时间,可以独立开一个系列来讲一下这个。Langchain4j 系列上一章:《
2026-01-22 15:46:10
846
原创 Langchain4j 系列之三十一 - Observability之入门
本章讲解了Langchain4j中Observability的功能,并通过代码演示了。可观测性在生产级别是比较重要的内容,下一章将再进一步讲解如何结合可视化平台展现数据。Langchain4j 系列上一章:《
2026-01-22 15:45:45
576
原创 Langchain4j 系列之三十 - Guardrails之二
本章讲解了Guardrails的另外一部分Output Guardrails,同时通过源码分析Guardrails的实现原理,相信通过这两章的学习,对Langchain4j中的Guardrails应该是掌握了。Guardrails其实在生产级别的应用是比较广泛的,在一些场景比如大模型直接回答“这个问题我无法回答”等这样的答复,很可能底层就是通过类似Guardrails方式实现的。Langchain4j 系列上一章:《
2026-01-21 14:01:22
619
原创 Langchain4j 系列之二十九 - Guardrails之一
本章讲解了Guardrails,在实际生产中,Guardrails的作用非常大。因为相对于训练大模型不能把控来说,使用实际编码的Guardrails更容易控制大模型的输入和输出结果。下一节继续讲解OutputGuardrails和Guardrails的源码解析Langchain4j 系列上一章:《
2026-01-21 14:00:49
695
原创 Langchain4j 系列之二十八 - Hugging Face 集成
本章演示了大模型社区Hugging Face 上面如何部署大模型,并通过Langchain4j调用部署的大模型,其实现在国内很多云厂商都提供响应的云上部署功能,并且使用Langchain4j 直接就可以访问了,Hugging Face只是一个例子而已。Langchain4j 系列上一章:《
2026-01-20 13:54:52
743
原创 Langchain4j 系列之二十七 - Ollama集成Deepseek
本章示了Ollama的部署和运行,然后又演示了如何在Langchain4j调用Ollama大模型。为什么Ollama如此重要,这是因为Ollama通过统一规范,让不同厂商的大模型统一化,这个对后续应用非常友好,因此现在很多人都喜欢使用该方式部署大模型。因此Langchain4j才会特意兼容Ollama部署好的大模型。Langchain4j 系列上一章:《
2026-01-20 13:54:36
778
原创 Langchain4j 系列之二十六 - ONNX部署本地模型
该抽象类里面有一些重载的构造方法,这些方法可以通过Path、String等不同方式加载模型2)再看看。
2026-01-19 10:25:41
699
原创 Langchain4j 系列之二十五 - Moderation Models & Audio Models
本章先说明了Moderation是什么,然后演示了Langchain4j的Moderation Models。最后讲了Langchain4j 的实验性接口AudioTranscriptionModel,是用于实现语音的。关于不同类型的大模型也就讲解到这里。Langchain4j 系列上一章:《
2026-01-19 10:25:24
665
原创 Langchain4j 系列之二十四 - Scoring (Reranking) Models
本章通过演示 Scoring (Reranking) Models,展现Langchain4j 的评分(重排序)模型。这种模型在实际应用中非常广泛,除了现在在RAG中用于确认检索结果的相关性之外,比如检索系统的排序、构建图数据库等,都可以使用这种模型来相关性判断。Langchain4j 系列上一章:《
2026-01-15 09:27:01
663
原创 Langchain4j 系列之二十三 - Image Models
本章通过演示Langchain4j的ImageModel,但我个人觉得这一块Langchain4j做得比较简单。目前的图像大模型已经比较成熟了,除了图片生成,类似图片问答、图片生文等等其它的功能也比较广泛应用,但是目前Langchain4j 还不支持,只能去使用厂商的原生API。Langchain4j 系列上一章:《
2026-01-15 09:26:44
688
原创 Langchain4j 系列之二十二 - Embedding Models
首先在人类社会中使用的文字、图片、音频、视频等数据,如何让大模型识别。计算机只会识别0和1,那么这时候要让计算机识别文字,就需要把所有文字进行编码,以中文为例比如00001代表男,00002代表女,这样每个字都有一个编码。虽然编码可以让计算机识别,但是还是有缺点的。最大的缺点就是文字之间是有一定的关联关系,也就是说每个字独立编码,那么机器是不理解文字之间的关系,为了解决这个问题,分词就出现了。为了解决文字之间的关系。这时候就有人想到使用Tokenizer 分词器。
2026-01-14 09:02:39
956
原创 Langchain4j 系列之二十一 - Language Models
本章讲解了LanguageModel和ChatModel的区别,并演示了Langchain4j中LanguageModel的使用。虽然现在LanguageModel除了一些特殊场景下文本生成之外,比较少见,在Langchain4j中也是建议使用ChatModel可以替代LanguageModel,但是作为AI应用开发,还是要了解一下一些大模型训练的基本原理,对于选择模型也是一个知识输入。Langchain4j 系列上一章:《
2026-01-14 09:02:15
700
原创 Langchain4j 系列之二十 - RAG综合案例
本章通过一个比较完整的案例,演示了Langchain4j的RAG模块。关于RAG模块功能就先讲到这里,其中还涉及到一些embedding模型,scoringModel等,这些在后面都会单独用一章来讲。Langchain4j 系列上一章:《
2026-01-13 09:00:02
738
原创 Langchain4j 系列之十九 - RAG之Retrieval
本章讲述了Langchain4j的RAG模块中,关于Retrieval的所有功能,并通过几个示例演示如何使用这些内容。可见Langchain4j已经很好给封装了RAG模块的流程,并提供诸多可扩展的接口供自定义流程。下一章将通过一个综合示例,对RAG进行一次总结演示Langchain4j 系列上一章:《
2026-01-13 08:59:40
781
原创 Langchain4j 系列之十八 - RAG之Indexing
本章讲述了Langchain4j的RAG模块中关于indexing的所有功能,并通过几个示例演示如何使用这些内容。从本章中可以看到Langchain4j很好得给用户封装了RAG模块的流程,并提供诸多可扩展的接口供自定义流程。下一章继续讲解RAG模块的第二部分Retrieval。Langchain4j 系列上一章:《
2026-01-12 08:11:18
1079
原创 Langchain4j 系列之十七 - RAG入门
本章讲述了RAG是什么,并通过一个简单示例演示Langchain4j 如何实现RAG。可以看到Langchain4j 为用户封装了很多底层逻辑和抽象,使得用户使用RAG非常方便。文章中也对Langchain4j 中实现RAG的原理进行分析。下一章将更为深入的研究Langchain4j 的RAG使用。Langchain4j 系列上一章:《
2026-01-12 08:10:56
698
原创 Langchain4j 系列之十六 - MCP其它功能
本章讲述了MCP的其它功能,至此关于MCP的讲解就到此结束。下一章开始讲讲述RAG的用法Langchain4j 系列上一章:《
2026-01-08 09:34:38
1079
原创 Langchain4j 系列之十五 - MCP源码解析
本章从底层源代码解析了Langchain4j 中是如何实现调用MCP服务,并分析了Stdio和Streamable HTTP不同协议的实现方式。相信通过这一章就基本上能够明白Langchain4j 调用MCP服务的基本原理。Langchain4j 除了实现标准协议的MCP Tools访问之外,还提供了Websocket协议、Resources、Prompt等其它功能,这些下一章再细讲。Langchain4j 系列上一章:《
2026-01-08 09:34:19
1349
原创 Langchain4j 系列之十四 - MCP入门
先来看看官方文档的定义:翻译过来就是:MCP 是一种开放协议,它规范了应用程序如何为大型语言模型提供上下文。可以把 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 为您的设备连接各种外设和配件提供了标准化方式一样,MCP 也为 AI 模型连接不同的数据源和工具提供了标准化方式。上下文标准化不同的数据源和工具。1)工具对外提供服务统一化:解决不断增长的各式各样的工具,大模型可以直接接入,无需适配各种工具。
2026-01-07 09:16:00
1189
原创 Langchain4j 系列之十三 - 工具调用(高级用法之二)
本章讲述了工具调用的高级用法,包括获得执行结果、动态调用、直接返回、错误处理。花了两章的时间讲了工具的高级用法,这些是因为在真正的生产环境都会用到。
2026-01-07 09:15:40
777
原创 Langchain4j 系列之十二 - 工具调用(高级用法之一)
本章讲述了使用AI Services的方式下工具调用的一些高级用法,包括参数传递、聊天记忆、并发执行,下一章将继续讲解工具调用其它高级用法Langchain4j 系列上一章:《
2026-01-06 09:13:03
1093
原创 Langchain4j 系列之十一 - 工具调用(AI Services)
1)首先看看tools()方法,在AiServices中有几个重载的tools()方法,其最底层都是调用来解析工具2)那继续进入类,看看是如何创建工具的。从下图可以看出,无论传入Map或者Object,都会最终被解析放入变量和,其中就是工具描述(这是给大模型的提示词用的),而则是工具执行器(这是根据大模型返回的结果调用工具)。(这一点在之前ChatModel手搓调用工具的示例中也可以看出一个大概)
2026-01-06 09:12:44
1009
原创 Langchain4j 系列之十 - 工具调用(ChatModel)
在Langchain4j 中,工具的定义有两种方式,一种是基于ToolSpecification,一种是基于@Tool注解。以下是关于ToolSpecification的示例代码.name("getWeather") // 工具的名称,必须是唯一.description("Returns the weather forecast for a given city") // 工具的描述,这个辅助大模型知道工具的功能。
2026-01-05 09:06:55
771
原创 Langchain4j 系列之九 - 自定义聊天记忆
上一个系列讲了Spring AI得到反馈效果不错,有人私信我说这个和Langchain4j有什么区别。如果站在使用方面,都是基于Java的大模型应用研发的工具,本质上没太大区别。但是从细节层面来说还是有很多不同之处,所以索性借此机会,给大家分享一下Langchain4j框架。在本系列中会按照Spring AI系列的顺序来写Langchain4j,这样的好处是可以对比两者不同的细节。上一章讲了Langchain4j 的聊天记忆ChatMeory功能,同时分析了其底层原理。这一章通过自定义保留策略和自定义存储的
2026-01-05 09:06:35
682
原创 Langchain4j 系列之八 - 聊天记忆
聊天记忆就是将用户之前与大模型的对话过程,在问下一个问题的时候,也将这部分对话过程的记录扔给大语言模型,这样大语言模型就能知道之前谈论什么,不会导致没有上下文的情况下,大模型答非所问。聊天记录保留策略:由于大模型每次输入的token长度有限,因此用户不可能将之前所有的聊天记录都扔给大模型,因此用户必须有一个保留策略,可以是最近几条、也可以是提炼后的结果等等。Langchain4j 目前提供默认两种,一种是保留最近几条,一种是以token数量限制筛选最近几条。会话隔离。
2026-01-04 08:53:32
1018
原创 Langchain4j 系列之七 - 结构化输出
本章讲述了如何让大模型结构化输出,可以看到AiServices提供了很方便的封装,不过由于不同大模型支持程度,目前这个标准化程度可能没有那么高。Langchain4j 系列上一章:《
2026-01-04 08:53:15
1270
原创 Langchain4j 系列之六 - 提示词
本章讲述了提示词以及提示词模版的使用,分别展现ChatModel和AiServices两种使用方式。这里还是看不出ChatModel和AiServices之间的不同。不过越后面就会知道Langchain4j 为用户基于AiServices提供很多内置方便应用功能。下一章继续Langchain4j 系列上一章:《
2025-12-31 13:44:19
868
原创 Langchain4j 系列之五 - 大模型参数和常用配置
本章讲述了如何设置调用大语言模型的参数和Langchain4j 为了开发过程中的常用配置。这些功能在AiServices中也一样有的,这里就不在多演示。下一章开始就进入大语言模型的常见应用功能,包括提示词、聊天记忆、工具、MCP等等。Langchain4j 系列上一章:《
2025-12-31 13:43:57
875
原创 Langchain4j 系列之四 - AI Services(流式模式)
本章讲述了AI Services的流式模式下的使用以及其底层原理。在这里就可以看到AI Services为了用户使用起来更方便,其封装了很多底层内容,让用户使用更少的编码,实现复杂功能。Langchain4j 系列上一章:《
2025-12-30 13:35:34
769
原创 Langchain4j 系列之二 - ChatModel和StreamingChatModel源码解析
本章详细讲述了Langchain4j的在ChatModel和StreamingChatModel下的底层代码原理,这部分其实对后面了解其它底层代码原理都有很好的帮助,希望可以细读,下一章将讲解Langchain4j的高层次API:AiServices。Langchain4j 系列上一章:《
2025-12-29 10:35:09
711
原创 Langchain4j 系列之一 - 开篇
本章讲述了Langchain4j的来源以及功能特性,并使用一个入门示例作为引子,让大家看看编写一个聊天对话是多么简单。接下来将进入Langchain4j的更高级使用。Langchain4j 系列下一章:《
2025-12-29 10:33:49
891
原创 Spring AI 系列之四十 - Spring AI Alibaba-集成百炼智能体
本章演示了如何使用Spring AI Alibaba集成百炼平台的智能体,这样对于实际应用开发来说是非常迅速的,这就是Spring AI Alibaba框架的优势之一。好了,本次对于Spring AI Alibaba的内容已经讲完了,虽然还有些内容没有讲到,但是相信你看文档也能够很快掌握。关于Spring AI的章节也就完整讲完了,本次系列就到此结束。Spring AI系列上一章:《
2025-08-08 15:51:35
1577
原创 Spring AI 系列之三十九 - Spring AI Alibaba-集成百炼知识库
本章演示了如何使用Spring AI Alibaba集成百炼平台的知识库,这样对于实际应用开发来说是非常迅速的,这就是Spring AI Alibaba框架的优势之一。下一章将讲如何集成百炼平台的线上智能体。Spring AI系列上一章:《
2025-08-08 15:49:47
1652
2
原创 Spring AI 系列之三十八 - Spring AI Alibaba-Tool Calling
本章讲解了Spring AI Alibaba的Tool Calling的生态,可以看出在Spring AI的基础上,Spring AI Alibaba扩展了很多插件,这样也是丰富了Spring AI的生态,对于java用户来说是一个很好的福音。Spring AI系列上一章:《
2025-08-07 08:33:36
1355
原创 Spring AI 系列之三十七 - Spring AI Alibaba-DocumentReader
本章讲解了Spring AI Alibaba的DocumentReader生态,可以看出在Spring AI的基础上,Spring AI Alibaba扩展了很多插件,这样也是丰富了Spring AI的生态,对于java用户来说是一个很好的福音。Spring AI系列上一章:《
2025-08-07 08:30:08
1369
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅