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