Langgraph4j Getting Started

Langgraph4j Getting Started

欢迎来到 LangGraph4j!本指南将帮助您理解 LangGraph4j 的核心概念、进行安装,并构建您的第一个应用程序。

引言

LangGraph4j 是一个用于通过大型语言模型 (LLMs) 构建有状态、多代理应用的 Java 库。它受到 Python 库 LangGraph 的启发,并旨在与 Langchain4j 和 Spring AI 等流行的 Java LLM 框架无缝协作。

其核心在于,LangGraph4j 允许您定义循环图 (cyclical graphs),在图中,不同的组件(代理、工具或自定义逻辑)可以以有状态的方式进行交互。这对于构建需要记忆、上下文以及不同“代理”之间协作或交接任务能力的复杂应用程序至关重要。

阅读更多
浅谈 @EventListener 和 @TransactionalEventListener

浅谈 @EventListener 和 @TransactionalEventListener

前言

spring 有一个事件传播机制,可以较为方便地实现一个简单的广播模型

一般使用 ApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) 来发布一个事件,然后使用 @EventListener 或者 @TransactionalEventListener 标记的方法来接收指定的事件

这样做有什么好处呢?一方面是解耦,另一方面提高可拓展性

阅读更多
珂朵莉树

珂朵莉树

前言

不知道你是否听说过一个叫珂朵莉树(ODT, Old Driver Tree)的”数据结构“,它有个名称:“老司机树”

阅读更多
postgres using explain

postgres using explain

14.1. 使用 EXPLAIN

PostgreSQL 会为其接收的每个查询设计一个查询计划。选择正确的计划以匹配查询结构和数据属性对于获得良好性能至关重要,因此系统包含一个复杂的规划器,该规划器尝试选择好的计划。您可以使用 EXPLAIN 命令查看规划器为任何查询创建的查询计划。计划解读是一门艺术,需要一定的经验才能掌握,但本节旨在涵盖其基础知识。

本节中的示例取自执行 VACUUM ANALYZE 后的回归测试数据库,并使用了 v17 开发版本。如果您自己尝试这些示例,应该能获得类似的结果,但您的估计成本和行数可能会略有不同,因为 ANALYZE 的统计数据是随机抽样而非精确的,并且成本本身在某种程度上依赖于平台。

这些示例使用 EXPLAIN 默认的“文本”输出格式,该格式紧凑且方便人类阅读。如果您想将 EXPLAIN 的输出提供给程序进行进一步分析,则应改用其机器可读的输出格式之一(XML、JSON 或 YAML)。

阅读更多
基于 langchain4j 的简易 MCP Client

基于 langchain4j 的简易 MCP Client

前言

这次的定语比较多,又是 简易 又是 client

如果你去翻阅 langchain4j 有关 MCP 的文档(点击这里),你会发现有关它的内容比起 RAG 少的可怜

在我看来,应该是以下几个原因有关

  • langchain4j 并没有实现完整的 MCP 协议。在目前版本(1.0.1)的 langchain4j 中是不存在 MCP Server 这个组件的
  • langchain4j 对于 MCP Client 的理解和 Function Calling 异曲同工,有一些逻辑在其他模块已经实现了

我其实是有些纳闷的,因为我最初就是想用 langchain4j 把现有的服务构建成一个 MCP Server,至于 MCP Client 我想许多客户端都可以充当这个角色

以上推论主观性很强,如果有错误,可以联系我的邮箱

阅读更多