Skip to main content
在与大语言模型(LLM)交互时,我们常常需要将其输出转换为结构化的数据格式,以便进一步处理和使用。LangChain4j框架为我们提供了一种优雅的方式来实现这一目标。本文将深入探讨LangChain4j如何将LLM的返回结果格式化为各种数据类型,包括基本类型、集合、自定义POJO等。

LangChain4j支持的返回类型

结构化输出示例

让我们通过一些具体的例子来看看如何使用LangChain4j处理不同类型的输出。

布尔值与枚举

在这个例子中,我们定义了一个SentimentAnalyzer接口,它使用LangChain4j的@AiService@UserMessage注解来处理情感分析任务。该接口包含两个方法:
  • isPositive: 返回布尔值,表示文本是否具有积极情感。
  • analyzeSentimentOf: 返回枚举值,表示文本的情感倾向(积极、消极或中性)。

数字类型

对于数字类型的处理,LangChain4j同样提供了强大的支持:
这个NumberExtractor接口展示了如何从文本中提取各种数值类型,包括整数、长整数、大整数、浮点数、双精度浮点数和大小数。

自定义POJO

LangChain4j还支持将LLM输出解析为自定义的POJO对象:
在这个例子中,我们定义了一个Person类作为自定义POJO,包含name 和birthDate字段。extractPerson方法将从给定文本中提取人物信息并返回一个Person对象。 通过掌握这些核心组件,我们就能更好地利用LangChain4j来处理大语言模型的结构化输出,为我们的AI应用开发带来更多可能性。

PIG AI应用开发平台 | 适合中大型企业构建自主可控的AI中台

为Java开发者提供全栈式AI工程化解决方案,强类型/高可维护性架构,内置30+主流大模型支持。
  • 🔍 知识引擎体系:RAG 知识引擎全自动化多模态解决方案
  • 📝 AI-OCR 中枢:复杂非标场景高精度识别
  • ⚙️ 业务智能融合:函数编排 + Chat2SQL,无缝对接现有业务系统
  • 🛡️ N维风控体系:敏感词/IP/Token/User 规则控制引擎

文档有误?请协助编辑

发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档!

文档有误?请协助编辑

发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档!