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

第9章:LangChain结构化输出-示例3(日期和时间提取服务)

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

本章主要讲述基于LangChain调用大模型如何进行结构化输出的真实示例,一共列列举,本章主要介绍自然语言结合大模型如何提取日期和时间(提取其他信息也是类似)

整体代码结果说明

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

日期和时间提取服务(DateTimeExtractor)

1. 技术实现

1.1 接口定义

日期和时间提取服务通过定义一个接口DateTimeExtractor来封装日期和时间提取功能。接口中包含三个方法:

  • extractDateFrom(String text):从文本中提取日期(LocalDate)。
  • extractTimeFrom(String text):从文本中提取时间(LocalTime)。
  • extractDateTimeFrom(String text):从文本中提取日期和时间(LocalDateTime)。
interface DateTimeExtractor {
   
    @UserMessage("Extract date from {
   {it}}")
    LocalDate extractDateFrom(String text);

    @UserMessage("Extract time from {
   {it}}")
    LocalTime extractTimeFrom(String text);

    @UserMessage("Extract date and time from {
   {it}}")
    LocalDateTime extractDateTimeFrom(String text);
}

解析
方法定义:每个方法都使用@UserMessage注解定义了用户消息模板,{ {it}}会被替换为方法参数(即要提取日期和时间的文本)。这使得AI能够理解用户的意图,并生成相应的响应。
日期和时间类型支持:支持LocalDate、LocalTime和LocalDateTime,确保提取的日期和时间可以无缝地转换为所需的类型,避免类型转换错误。

1.2 动态生成服务实现

通过AiServices.create()方法,LangChain4j框架动态生成了DateTimeExtractor接

http://www.dtcms.com/a/33638.html

相关文章:

  • 缓存基础解释与缓存友好型编程基础
  • 【嵌入式Linux应用开发基础】进程间通信(6):套接字
  • 从Excel到Hadoop:数据规模的进化之路
  • ubuntu新系统使用指南
  • 大白话React第三章高级应用阶段
  • API接口设计模式:从分层架构到CQRS的实战应用
  • aardio - 虚表——列附加文本及列按钮区域例程
  • 解锁策略模式:Java 实战与应用全景解析
  • docker中常用的命令
  • 【Linux系统】—— 冯诺依曼体系结构与操作系统初理解
  • 机械硬盘与固态硬盘的区别-机械硬盘的未来在哪里?
  • fcntl()函数的概念和使用案例 c语言
  • 易语言模拟真人鼠标轨迹算法 - 防止游戏检测
  • 计算机视觉行业洞察--影像行业系列第一期
  • WebXR教学 02 配置开发环境
  • 通过AI辅助生成PPT (by quqi99)
  • hbuilderx 小程序分包_微信小程序关于分包【收藏版】
  • WiFi相关功能使用教程(wpa_supplicant及wpa_cli)
  • 谁会是“下一个DeepSeek?”——从技术路线与生态逻辑看AI大模型的未来格局
  • SMU Winter 2025 div1 4th
  • Qt常用控件之日历QCalendarWidget
  • Docker(Nginx)部署Vue
  • UE5实现角色二段跳
  • deepseek_清华大学指导手册_pdf_1-5
  • C#基础:类的三大特性 之 封装
  • C++ ——— 模拟实现 AVL 树的插入
  • Win10配置VSCode的C/C++编译环境
  • 前后端分离系统架构:基于Spring Boot的最佳实践
  • 基于AT89C52单片机的出租车计价器
  • 【Linux进程一】进程的概念