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

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.lryc.cn/news/2397491.html

相关文章:

  • 【机器学习基础】机器学习入门核心:Jaccard相似度 (Jaccard Index) 和 Pearson相似度 (Pearson Correlation)
  • QT之头像剪裁效果实现
  • apptrace 视角下移动端深度链接技术与优势​
  • 微前端之micro-app数据通信
  • 【GPT入门】第40课 vllm与ollama特性对比,与模型部署
  • unity开发棋牌游戏
  • Nat Commun项目文章 ▏小麦CUTTag助力解析转录因子TaTCP6调控小麦氮磷高效利用机制
  • Qt OpenGL 相机实现
  • 云原生时代 Kafka 深度实践:03进阶特性与最佳实践
  • 基于关联表字段映射的批量数据更新 SQL 实现方案(AIGC)
  • Hadoop复习(二)
  • C 语言开发中常见的开发环境
  • vscode命令行debug
  • Matlab作图之 subplot
  • Springboot 项目一启动就获取HttpSession
  • PostgreSQL的扩展 insert_username
  • 【机器学习基础】机器学习入门核心算法:层次聚类算法(AGNES算法和 DIANA算法)
  • Google Play的最新安全变更可能会让一些高级用户无法使用App
  • 深度学习篇---人脸识别中的face-recognition库和深度学习
  • (11)java+ selenium->元素定位之By_tag_name
  • React---day5
  • Java开发之定时器学习
  • HealthBench医疗AI评估基准:技术路径与核心价值深度分析(上)
  • Windows+VSCode搭建小智(xiaozhi)开发环境
  • VueScan Pro v9.8.45.08 一款图像扫描软件,中文绿色便携版
  • FreeRTOS通俗理解指南:基础概念 + 架构+ 内核组件+练手实验
  • Python后端开发实战:从0到1搭建高可用API服务
  • 房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋信息、看房申请、租赁合同、房屋报修、收租信息、维修数据、租客管理、公告管理模块
  • 4、ubuntu系统 | 文本和目录操作函数
  • docker部署ELK,ES开启安全认证