news 2026/4/14 22:51:14

LangChain学习笔记之ChatPromptTemplate

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain学习笔记之ChatPromptTemplate

之前老版本引用的包:

from langchain_core.documents import Document from langchain_core.prompts import ChatPromptTemplate from langchain.chains.combine_documents import create_stuff_documents_chain from langchain.chains import create_extraction_chain

新版引用:

from langchain_core.prompts import ChatPromptTemplate

通过内容提取指定的模版需要的信息,格式化输出

import os from typing import List, Optional from pydantic import BaseModel, Field from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate OPENAI_API_KEY = os.environ.get("API_KEY") class Person(BaseModel): """人物信息""" name: str = Field(description="人的姓名") height: int = Field(description="身高,单位厘米") clothing_color: Optional[str] = Field(description="衣服颜色") class PeopleExtraction(BaseModel): """从文本中提取的所有人的信息""" people: List[Person] = Field(description="所有人的信息列表") llm = ChatOpenAI( api_key=OPENAI_API_KEY, base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", model="qwen3-max", temperature=0 ) structured_llm = llm.with_structured_output(PeopleExtraction) prompt = ChatPromptTemplate.from_template(""" 请从以下文本中提取所有人的信息: {text} 请提取每个人的姓名、身高和衣服颜色。 """) chain = prompt | structured_llm inp = """小美身高165cm。小丽比小美高 10cm,并且比她胖5斤。小丽喜欢穿蓝色外套,小美喜欢穿绿色上衣,小兰说她去年150cm,但是今年就穿不了去年的衣服了,大一号就会长5cm,买了大一号的紫色裙子才能穿。""" result = chain.invoke({"text": inp}) print("提取结果:") print("=" * 50) for i, person in enumerate(result.people, 1): print(f"\n人物 {i}:") print(f" 姓名: {person.name}") print(f" 身高: {person.height} 厘米") print(f" 衣服颜色: {person.clothing_color}") print("\n" + "=" * 50) print("原始 JSON 结构:") print(result.model_dump_json(indent=2, ensure_ascii=False))

输出结果如下:

C:\Windows\python12\python.exe E:\project\py\alipy\src\语义提取.py 提取结果: ================================================== 人物 1: 姓名: 小美 身高: 165 厘米 衣服颜色: 绿色 人物 2: 姓名: 小丽 身高: 175 厘米 衣服颜色: 蓝色 人物 3: 姓名: 小兰 身高: 155 厘米 衣服颜色: 紫色 ================================================== 原始 JSON 结构: { "people": [ { "name": "小美", "height": 165, "clothing_color": "绿色" }, { "name": "小丽", "height": 175, "clothing_color": "蓝色" }, { "name": "小兰", "height": 155, "clothing_color": "紫色" } ] } Process finished with exit code 0
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 22:50:14

【计算机组成原理】——磁盘性能优化实战:从容量规划到传输效率提升

1. 磁盘性能优化的核心指标 搞了这么多年存储系统,我发现很多工程师一提到磁盘优化就只盯着容量看。其实真正影响用户体验的是三个黄金指标:存储容量、寻址时间和传输速率。这就好比买车不能只看油箱大小,还得关注百公里加速和最高时速。 最近…

作者头像 李华
网站建设 2026/4/14 22:49:41

UOS系统维护实战:从tty模式到分区修复

1. 当UOS系统无法启动时该怎么办 遇到UOS系统无法正常启动的情况,很多技术人员第一反应就是重装系统。但作为一个有10年系统维护经验的老手,我要告诉你:90%的系统启动问题都可以通过tty模式修复,完全没必要大动干戈重装系统。 上周…

作者头像 李华
网站建设 2026/4/14 22:45:21

【AIAgent多租户隔离黄金标准】:20年架构师亲授生产级租户隔离5大核心设计与3个致命避坑指南

第一章:AIAgent多租户隔离的演进脉络与本质挑战 2026奇点智能技术大会(https://ml-summit.org) AIAgent多租户隔离并非简单复刻传统SaaS架构中的资源划分逻辑,而是源于LLM推理状态、工具调用上下文、记忆向量库、插件权限链及用户意图建模等多维耦合体的…

作者头像 李华
网站建设 2026/4/14 22:45:20

FPGA存储单元(FIFO+RAM+ROM)高效应用实战指南

1. FPGA存储单元基础认知:从理论到实战 在FPGA开发中,存储单元就像是我们搭建数字系统时的"记忆仓库"。想象一下,如果没有存储功能,FPGA就像个健忘症患者,无法保存任何中间计算结果或配置参数。今天我们就来…

作者头像 李华
网站建设 2026/4/14 22:45:18

混合编程实战:C#集成C++ PCL点云处理库的DLL封装与调用

1. 为什么需要混合编程? 在点云处理领域,C凭借其高性能和丰富的PCL(Point Cloud Library)生态占据主导地位,而C#在工业级应用开发中因其高效的.NET框架和可视化能力备受青睐。实际项目中,我们经常遇到这样的…

作者头像 李华
网站建设 2026/4/14 22:45:02

用Gemini 3.1 Pro练出“问题雷达”:学术最稀缺能力的速成指南

核心观点:问题意识并非学者的“天赋特权”,借助Gemini 3.1 Pro的强推理能力,可快速打破思维盲区,高效训练出学术研究的核心竞争力。一、重新定义“问题意识”:不是天赋,是可训练的“思维肌肉”在大多数人的…

作者头像 李华