当前位置: 首页 > news >正文

第9章:LangChain结构化输出-示例5(基于大模型如何精确匹配POJO的字段)

如何使用LangChain4j框架创建和使用多种AI服务。它通过定义接口和注解,将自然语言处理任务(如情感分析、数字提取、日期提取、POJO提取等)封装为服务,并通过LangChain4j的AiServices动态生成这些服务的实现。

本章主要讲述基于LangChain调用大模型如何进行结构化输出的真实示例,一一列举,本章主要从自然语言中如何通过大模型精确匹配POJO的字段示例

整体代码结果说明

带描述的POJO提取服务(POJOExtractor with Descriptions)是LangChain4j框架中一个高级功能,它不仅从文本中提取并构造POJO对象,还通过@Description注解为POJO的字段提供详细的描述。这些描述帮助语言模型更好地理解每个字段的含义和要求,从而提高提取的准确性和可靠性

代码定义了多个静态内部类,每个类都展示了LangChain4j中不同类型的AI服务示例。这些服务通过接口和注解定义,并通过AiServices.create()方法动态生成实现。每个类都包含一个main方法,用于演示如何调用这些服务。

带描述的POJO提取服务(POJOExtractor with Descriptions)

1. 技术实现

1.1 接口定义

定义了一个接口RecipeExtractor,用于封装从文本中提取并构造Recipe对象的功能。接口中包含一个方法,用于从文本中提取Recipe对象。

interface RecipeExtractor {@UserMessage("Extract information about a recipe from {{it}}")Recipe extractRecipeFrom(String text);
}

解析
方法定义:extractRecipeFrom(String text)方法用于从文本中提取Recipe对象。
注解使用:@UserMessage注解定义了用户消息模板,{{it}}会被替换为方法参数(即要提取信息的文本)。这使得AI能够理解用户的意图,并生成相应的响应。

1.2 POJO类定义

定义了一个Recipe类,用于表示提取的POJO对象。Recipe类包含title、description、steps和preparationTimeMinutes字段,并使用@Description注解为每个字段提供详细的描述。

static class Recipe {@Description("Short title, 3 words maximum")private String title;@Description("Short description, 2 sentences maximum")private String description;@Description("Each step should be described in 4 words, steps should rhyme")private List<String> steps;private Integer preparationTimeMinutes;@Overridepublic String toString() {return "Recipe {" +" title = \"" + title + "\"" +", description = \"" + description + "\"" +", steps = " + steps +
http://www.lryc.cn/news/542844.html

相关文章:

  • ref和reactive的区别 Vue3
  • 基于MATLAB的OFDM通信系统仿真设计
  • 地铁站内导航系统:基于蓝牙Beacon与AR技术的动态路径规划技术深度剖析
  • JS复习练习题目、完整nodejs项目以及Commons、Es
  • Linux:理解O(1)调度算法的设计精髓
  • [C++][cmake]使用C++部署yolov12目标检测的tensorrt模型支持图片视频推理windows测试通过
  • Uppy - 免费开源、功能强大的新一代 web 文件上传组件,支持集成到 Vue 项目
  • 【游戏——BFS+分层图】
  • SSL 证书是 SSL 协议实现安全通信的必要组成部分
  • Spring 源码硬核解析系列专题(七):Spring Boot 与 Spring Cloud 的微服务源码解析
  • 嵌入式开发:傅里叶变换(5):STM32和Matlab联调验证FFT
  • C# 根据Ollama+DeepSeekR1开发本地AI辅助办公助手
  • 洛谷 P8705:[蓝桥杯 2020 省 B1] 填空题之“试题 E :矩阵” ← 卡特兰数
  • 我的AI工具箱Tauri版-FluxCharacterGeneration参考图像生成人像手办(Flux 版)
  • DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库
  • 51单片机-串口通信编程
  • python实现基于文心一言大模型的sql小工具
  • deepseek 导出导入模型(docker)
  • 前言:什么是大模型微调
  • TCPDF 任意文件读取漏洞:隐藏在 PDF 生成背后的危险
  • unity学习53:UI的子容器:面板panel
  • 水环境水质在线监测系统解决方案
  • HBuilder X中,uni-app、js的延时操作及定时器
  • BigDecimal线上异常解决方案:避免科学计数法输出的坑
  • 【C语言】指针笔试题
  • 深入理解Redis:数据类型、事务机制及其应用场景
  • RGMII(Reduced Gigabit Media Independent Interface)详解
  • 学习Flask:Day 1:基础搭建
  • XTOM工业级蓝光三维扫描仪在笔记本电脑背板模具全尺寸检测中的高效精准应用
  • 网络安全 机器学习算法 计算机网络安全机制