当前位置: 首页 > 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="
http://www.lqws.cn/news/84313.html

相关文章:

  • 【redis实战篇】第七天
  • 在 Linux 服务器上无需 sudo 权限解压/打包 .7z 的方法(实用命令)
  • 小团队如何落地 Scrum 模型:从 0 到 1 的实战指南
  • rabbitmq Direct交换机简介
  • C++——AVL平衡树
  • Java递归编程中的StackOverflowError问题分析与解决方案
  • 题目 3230: 蓝桥杯2024年第十五届省赛真题-星际旅行
  • 数字孪生智慧水利解决方案:数字化场景、智慧化模拟、精准化决策,构建数字孪生流域为核心的智慧水利体系
  • 【笔记】Windows 部署 Suna 开源项目完整流程记录
  • 前端面试宝典---前端水印
  • Linux中的System V通信标准-共享内存、消息队列以及信号量
  • API 版本控制:使用 ABP vNext 实现版本化 API 系统
  • SpringBoot统一功能处理
  • linux驱动 - 5: simple usb device驱动
  • PART 6 树莓派小车+QT (TCP控制)
  • DDP学习
  • 什么是煤矿智能掘进
  • edg浏览器打开后默认是360界面
  • 【算法设计与分析】实验——改写二分搜索算法,众数问题(算法分析:主要算法思路),有重复元素的排列问题,整数因子分解问题(算法实现:过程,分析,小结)
  • 操作系统复习
  • 分词算法BBPE详解和Qwen的应用
  • 【深度学习新浪潮】多模态模型如何处理任意分辨率输入?
  • 项目采购管理习题剖析
  • 振动力学:有阻尼单自由度系统
  • 《操作系统真相还原》——中断
  • Python训练营打卡 Day43
  • 2023年12月6级第一套第一篇
  • mybatisplus的总结
  • Linux配置DockerHub镜像源配置
  • 代码随想录算法训练营第六天| 242.有效的字母异位词 、 349. 两个数组的交集 、 202. 快乐数 、1. 两数之和