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

LangChain入门(七) 提取和输出结构化数据

从结构化的文本中提取结构化信息,在自然语言处理中,表格数据抽取是一个重要的任务,它涉及到从文本中提取到结构化数据。

这个里面主要用到pydantic。pydantic是python中使用最广泛的数据验证库。用pydantic可以处理数据、验证数据、定义数据格式、虚拟化和反虚拟化,类型转换等。

可以通过model.with_structured_output() 可以将输出转换为结构化数据

from langchain.chat_models import init_chat_model
from langchain.prompts.chat import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from pydantic.v1 import BaseModel,Field
from typing import Optional
import os;api_key = os.environ.get("DEEPSEEK_API_KEY");
api_base = "https://api.deepseek.com/"
#定义模型
model = init_chat_model(model="deepseek-chat",api_key=api_key,api_base=api_base,temperature=0.8,max_tokens=1024,model_provider="deepseek",)#定义一个数据模型
class Person(BaseModel):"""  关于一个人的模型"""name:Optional[str]=Field(default=None,description="表示人的名字")hair_color:Optional[str] = Field(default=None,description="如果知道的话,这个人的头发颜色")height_in_meters:Optional[str] = Field(default=None ,description="以米为单位测量的高度")class ManyPerson(BaseModel):people:list[Person]# 定义自定义提示以提供指令和任何其他上下文
# 1)你可以在提示词模板中添加示例以提高提取质量
# 2)引入额外的参数以考虑上下文(例如,包括有关图区文本的文档的元数据)prompt = ChatPromptTemplate.from_messages([("system","你是一个专业的提取算法。只从未结构化文本中提取详细信息。如果你不知道要提取的属性的值,返回该属性的值为null"),("human","{text}")]
)chain = {'text':RunnablePassthrough() } |prompt| model.with_structured_output(schema=ManyPerson)text='马路上走来一个女生,长长的黑头发披在肩上,大概1米7左右.走在她旁边的是她男朋友刘海,比她高10厘米'resp=chain.invoke(text)print(resp)

相关文章:

  • AI Agent(10):个人助手应用
  • 19、DeepSeek LLM论文笔记
  • ActiveMQ 生产环境问题排查与调优指南(一)
  • C语音学习---函数指针
  • MyBatis源码解读4(2.3、MyBatis运行流程)
  • 【ajax基础】
  • openjdk底层汇编指令调用(一)——汇编指令及指令编码基础
  • 设计模式之工厂模式(二):实际案例
  • 医院药品管理系统(准备工作)
  • 『 测试 』测试基础
  • [Java实战]Spring Boot 整合 Thymeleaf (十)
  • 经典工具箱、常见工具、软件合集【免费无广告】
  • openharmony系统移植之gpu mesa3d适配
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十六)
  • 语音合成之十三 中文文本归一化在现代语音合成系统中的应用与实践
  • MySQL索引详解(下)(SQL性能分析,索引使用)
  • Baklib内容管理平台的核心组成是什么?
  • Go语言安装proto并且使用gRPC服务(2025最新WINDOWS系统)
  • Babel 基础使用指南:从安装到编译的完整流程
  • 操作系统: 第三章节 :中断和处理机调度
  • 人民日报仲音:大力纠治违规吃喝顽瘴痼疾
  • 习近平同巴西总统卢拉共同会见记者
  • 超新星|罚丢点球的那道坎,刘诚宇靠自己迈了过去
  • 中美经贸高层会谈在日内瓦结束,中国代表团将举行发布会
  • 特朗普将启的中东行会如何影响伊美核谈判?专家分析
  • 竞彩湃|热刺、曼联一周双赛不易,勒沃库森能否欢送阿隆索