LangChain入门:11.Pydantic(JSON)解析器实战

摘要

在数字化营销的浪潮中,自动化内容生成成为了提升效率和用户参与度的利器。本文将详细介绍如何利用LangChain的自然语言处理能力和Pydantic的数据验证特性,构建一个自动化的花店文案生成器。通过这个工具,您可以快速为各种花卉生成吸引人的描述和推荐理由,从而提升营销效果和客户体验。

环境准备

在开始之前,请确保您的Python环境中已安装以下库:langchain_openaipandaspydantic。如果尚未安装,可以通过以下命令一次性完成安装:

pip install langchain_openai pandas pydantic
Pydantic库简介

Pydantic是一个开源的Python库,用于数据验证和设置管理。它通过使用Python类型提示来验证输入数据,确保数据符合预期的格式和结构。Pydantic特别适合于处理来自API、数据库或其他数据源的输入,因为它可以自动生成数据模型,并在数据不符合预期时提供清晰的错误信息。

创建模型实例

首先,我们需要创建一个OpenAI模型实例,这里选用gpt-3.5-turbo模型,它以生成高质量文本而闻名。

from langchain_openai import ChatOpenAI# 从环境变量中读取OpenAI API密钥
api_key = os.getenv("OPENAI_API_KEY")
llm = ChatOpenAI(openai_api_key=api_key,base_url="https://api.chatanywhere.tech/v1",model="gpt-3.5-turbo",temperature=0,
)
定义数据结构

使用Pydantic库定义我们期望的数据格式,确保模型输出的一致性和可验证性。

from pydantic import BaseModelclass FlowerDescription(BaseModel):flower_type: strprice: intdescription: strreason: str
创建输出解析器

创建一个输出解析器,确保模型的输出符合我们定义的FlowerDescription格式。

from langchain.output_parsers import PydanticOutputParseroutput_parser = PydanticOutputParser(pydantic_object=FlowerDescription)
format_instructions = output_parser.get_format_instructions()
构建提示模板

定义一个提示模板,指导模型生成符合我们期望格式的输出。

from langchain import PromptTemplateprompt_template = """
您是一位专业的花店文案撰写人。
对于售价为{price}的{flower},您能提供一个吸引人的描述和一个推荐的理由吗?
{format_instructions}
"""
生成并解析输出

使用定义好的模板和解析器生成文案,并解析模型的输出。

import pandas as pd# 创建DataFrame来存储结果
df = pd.DataFrame(columns=["flower_type", "price", "description", "reason"])# 数据准备
flowers = ["玫瑰", "康乃馨", "郁金香", "百合", "向日葵"]
prices = [10, 15, 20, 25, 30]# 循环处理每种花卉
for flower, price in zip(flowers, prices):input_prompt = prompt_template.format(flower=flower, price=price)output = llm.invoke(input_prompt)# 解析模型输出parsed_output = output_parser.parse(output.content)parsed_output_dict = parsed_output.dict()# 将结果添加到DataFramedf = df.append(parsed_output_dict, ignore_index=True)# 打印结果
print(df.to_dict(orient="records"))
效果展示

以下是一个成功生成的花卉文案示例:
在这里插入图片描述
图2: 自动生成的花卉文案展示。

效果与结论

通过上述步骤,我们成功构建了一个自动化的花店文案生成器。这个工具不仅可以节省宝贵的时间,还能确保内容的质量和一致性。利用LangChain和Pydantic库,我们不仅确保了输出数据的准确性,还提高了数据处理的效率。

这个项目展示了LangChain在处理和生成复杂数据结构方面的强大能力,以及Pydantic在数据验证和设置管理中的实用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/596206.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【加密周报】比特币“强烈看涨”信号来了!巨鲸们正疯狂囤积稳定币!SEC呼吁公众对以太币ETF提供意见!

在过去一周里,比特币价格经历了一段下跌,并在随后出现了一些反弹迹象。与此同时,链上数据显示,巨鲸们在囤积稳定币,预示着“强烈的看涨情绪”。以太坊方面,美国证券交易委员会(SEC)已…

数据如何才能供得出、流得动、用得好、还安全

众所周知,数据要素已经列入基本生产要素,同时成立国家数据局进行工作统筹。目前数据要素如何发挥其价值,全国掀起了一浪一浪的热潮。 随着国外大语言模型的袭来,国内在大语言模型领域的应用也大放异彩,与此同时&#x…

[HackMyVM]靶场Birthday

难度:Hard kali:192.168.56.104 靶机:192.168.56.149 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.149 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-06 10:39 CST Nmap scan report for 192.168.56.149 Host is up (0.00016s latency). N…

推荐一款命令行随机数据生成工具

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 在shigen之前的文章如何用python优雅的生成模拟数据中,采用了faker这…

C/C++ ④—— 面向对象

1. 三大特性 1.1 封装 把客观事物封装成抽象的类,并且类可以把⾃⼰的数据和⽅法只让可信的类或者对象操作,对不可信的进⾏信息隐藏 1.2 继承 它可以使⽤现有类的所有功能,并在⽆需重新编写原来的类的情况下对这些功能进⾏扩展常见继承的三…

2024/4/3 IOday5

1&#xff1a;实现文件夹的拷贝功能 注意判断被拷贝的文件夹是否存在&#xff0c;如果不存在则提前创建&#xff0c;创建文件夹的函数为 mkdir 不考虑递归拷贝的问题 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/…

计算机视觉入门

计算机视觉&#xff08;Computer Vision&#xff09;是一门涉及使机器能够从图像或者多维数据中提取信息&#xff0c;解释、理解并对物体或场景进行处理的学科。以下是一个基本的计算机视觉入门学习路线&#xff0c;旨在为刚刚接触这一领域的学习者提供指导。 1. 基础知识储备…

数据安全之认识数据库审计系统

随着企业业务数据量的不断增长和数据存储的集中化&#xff0c;数据库成为企业的核心资产之一。然而&#xff0c;数据库面临着各种安全威胁&#xff0c;如SQL注入、权限滥用、数据泄露等。为了保障数据库的安全性和完整性&#xff0c;企业需要采取有效的审计措施来监控和记录数据…

总包不足80w的高龄Android程序员,被面试官diss混得太差,网友狂吐槽……

有网友直言&#xff1a;90%的人一辈子一年也拿不到80万 有网友分析到&#xff1a;看面试情况&#xff0c;没什么希望就直接其实我觉得30岁年薪低于1000万的都是loser&#xff0c;你我都是 有网友说&#xff1a;这几年互联网行业极大发展&#xff0c;让互联网行业成为了明星行…

394.字符串解码

题目&#xff1a;给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字符串中没有额外的空…

有关介绍CVPR‘2024工作《持续学习的无干扰低秩适应》正式实施

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.04.03 Last edited: 2024.04.03 代码&#xff1a;GitHub - liangyanshuo/InfLoRA&#xff1a;CVPR2024 工作 Interference-Free Low-Rank A…

jenkins插件集成api使用

jenkins配置插件&api使用 jenkins https://mirrors.jenkins.io/war-stable/2.222.1/ 包下载地址 jenkins镜像源修改 sed -i s/https:\/\/www.google.com/https:\/\/www.baidu.com/g default.json sed -i s/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.…