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

Langchian - 自定义提示词模板 提取结构化的数据

场景:从自然语言中提取固定结构信息返回

例如:根据一段文字,提取文字中人的具体特征

马路上走来一个1米7的女生,她一头乌黑的长发披在肩上随风飘动,在她旁边的是她的男朋友,叫:刘山;比她高10厘米

如果想要提取上面这句话中人的身高及头发的颜色,并以固定的格式返回,该如何做呢?

下面用三个示例来阐述自定义提示词模板的使用方法

示例1

以下,主要功能是从一段非结构化文本中提取人物信息,并将其转换为结构化数据。

具体流程如下:


1.加载配置:从 .env 文件中读取模型和 API 相关的配置。

先从 .env 文件加载环境变量,该文件通常用于配置敏感信息(如 API 密钥)

创建一个 ChatOpenAI 实例,使用指定模型 (MODEL)、API 密钥 (OPENAI_API_KEY) 和基础 URL (BASE_URL)

import os
from typing import Optional, Listfrom dotenv import load_dotenv
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI
from pydantic.v1 import BaseModel, Field# 加载 .env 配置
load_dotenv()llm = ChatOpenAI(model=os.getenv("MODEL"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("BASE_URL")
)


2.定义结构化数据模型:使用 Pydantic 定义 Person 和 ManyPerson 类。

定义单个人的信息模型、多个人的信息模型

Person 是一个人的数据模型,包含姓名、发色和身高三个可选字段。
使用 Optional 表示这些属性可能为空,未提供时默认为 None。
Field 提供字段描述和默认值

ManyPerson 表示多个人的集合,其 people 属性是一个由 Person 对象组成的列表

class Person(BaseModel):"""关于一个人的数据模型"""name: Optional[str] = Field(default=None, description='表示人的名字')hair_color: Optional[str] = Field(default=None, description="

相关文章:

  • 每天掌握一个Linux命令 - hping3
  • Windows 账号管理与安全指南
  • 【深度学习新浪潮】以Dify为例的大模型平台的对比分析
  • Torch Geometric GCN训练心得
  • selenium-自动更新谷歌浏览器驱动
  • 从多巴胺的诱惑到内啡肽的力量 | 个体成长代际教育的成瘾困局与破局之道
  • NLP学习路线图(十九):GloVe
  • 香橙派3B学习笔记5:Linux文件系统分区_A/B系统分区
  • 【C++】23. unordered_map和unordered_set的使用
  • 【深度学习新浪潮】多模态模型如何处理任意分辨率输入?
  • Qt信号与槽机制深度解析
  • 图像任务中的并发处理:线程池、Ray、Celery 和 asyncio 的比较
  • Posix API
  • FPGA仿真中阻塞赋值(=)和非阻塞赋值(<=)区别
  • SystemVerilog—Interface语法(二)
  • 【性能调优系列】深入解析火焰图:从基础阅读到性能优化实战
  • 汽车软件 OTA 升级技术发展现状与趋势
  • uniApp页面交互
  • MySQL DDL操作全解析:从入门到精通,包含索引视图分区表等全操作解析
  • 需求调研文档——日志文件error监控报警脚本
  • 阿里云oss可以做网站/网站友链外链
  • 夏天做那个网站致富/北京seo主管
  • 大连百度网站排名优化/求好用的seo软件
  • 企业电子商务的网站的建设方式/bing搜索引擎国内版
  • 公司网站建设流程图/关键词在线试听免费
  • 郑州网站维护/广州网站设计实力乐云seo