GPT实战系列-LangChain的OutPutParser解析器

GPT实战系列-LangChain的OutPutParser解析器

LangChain

GPT实战系列-LangChain如何构建基通义千问的多工具链

GPT实战系列-构建多参数的自定义LangChain工具

GPT实战系列-通过Basetool构建自定义LangChain工具方法

GPT实战系列-一种构建LangChain自定义Tool工具的简单方法

GPT实战系列-搭建LangChain流程简单应用

GPT实战系列-简单聊聊LangChain搭建本地知识库准备

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-简单聊聊LangChain

大模型查询工具助手之股票免费查询接口

随着OpenAI的GPT-4这样的大型语言模型(LLMs)已经风靡全球,现在让它们自动执行各种任务,如回答问题、翻译语言、分析文本等。LLMs是在交互上真正体验到像“人工智能”。

如何管理这些模块呢?

LangChain在这方面发挥重要作用。LangChain使构建由LLMs驱动的应用程序变得简单,使用LangChain,可以在统一的界面中轻松与不同类型的LLMs进行交互,管理模型版本,管理对话版本,并将LLMs连接在一起。

输出解析器

很多时候语言模型输出文本,满足不了你的需求,你可能想得到结构化信息,而不仅仅是一段信息。这就是输出解析器的意义。

输出解析器是把语言模型的响应结构化,两种方法是必须的:

  • “Get format instructions”:返回包含指令的字符串,关于语言模型输出格式化的说明。
  • “Parse”:输入字符串,例如来自语言模型的响应,并将其解析为某种结构。

一个方法可选的:

  • “Parse with prompt”:输入字符串和提示,并解析为指定结构。

构建输出解析器

以下是输出解析器的主要类型,即 .PydanticOutputParser

from langchain.output_parsers import PydanticOutputParser
from langchain.prompts import PromptTemplate
from langchain_core.pydantic_v1 import BaseModel, Field, validator
from langchain_openai import OpenAI#定义模型
model = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0.0)# 定义数据结构.
class Joke(BaseModel):setup: str = Field(description="question to set up a joke")punchline: str = Field(description="answer to resolve the joke")# 定义验证逻辑 Pydantic.@validator("setup")def question_ends_with_question_mark(cls, field):if field[-1] != "?":raise ValueError("Badly formed question!")return field# 设定parser和指令到 prompt template.
parser = PydanticOutputParser(pydantic_object=Joke)prompt = PromptTemplate(template="Answer the user query.\n{format_instructions}\n{query}\n",input_variables=["query"],partial_variables={"format_instructions": parser.get_format_instructions()},
)# 提问和提示,大语言模型生成数据结构.
prompt_and_model = prompt | model
output = prompt_and_model.invoke({"query": "Tell me a joke."})
parser.invoke(output)

输出结果:

Joke(setup='Why did the chicken cross the road?', punchline='To get to the other side!')

另外,与其手动调用解析器,不如使用Chain链,按照我们的顺序运行:

chain = prompt | model | parser
chain.invoke({"query": "Tell me a joke."})

相同的输出结果:

Joke(setup='Why did the chicken cross the road?', punchline='To get to the other side!')

结构化

LangChain是一个Python框架,可以使用LLMs构建应用程序。它与各种模块连接,使与LLM和提示管理,一切变得简单。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End

GPT专栏文章:

GPT实战系列-实战Qwen通义千问在Cuda 12+24G部署方案_通义千问 ptuning-CSDN博客

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-让CodeGeeX2帮你写代码和注释_codegeex 中文-CSDN博客

GPT实战系列-ChatGLM3管理工具的API接口_chatglm3 api文档-CSDN博客

GPT实战系列-大话LLM大模型训练-CSDN博客

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

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

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

相关文章

leetcode 3.11

leetcode hot 100 二分查找1.寻找旋转排序数组中的最小值 矩阵1.搜索二维矩阵 II知识点:upper_bound, lower_bound知识点:二分查找 2.搜索二维矩阵 链表1.合并两个有序链表2.两数相加3. 删除链表的倒数第 N 个结点 二分查找 1.寻找旋转排序数组中的最小…

复习C语言基础中的基础:C语言发展、C89 C99有何区别、C语言特点

参考《C程序设计(第五版)》(谭浩强)一书: 1. 发展、C89 C99 2. 特点 记得时不时回顾一下背景特点,加深对C语言的理解。

git的实际运用

1. SSH配置和Github仓库克隆 注意博主在这里演示的SSH密钥生成方式,下面追加的五行不成功时可手动到.ssh下的config文件中添加即可 $ tail -5 config Host github.comHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/test 演示 2. 关联…

数据完整性

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 数据完整性 数据完整性是关系数据库的一个重要特征,一般包含实体完整性、参照完整性和用户自定义完整性 3 种 实体完整性 实体完整性:规定表中的每…

QML| QML 组件

# | QML 组件 | 组件是可重用的、封装好的QML类型,并提供了定义好的接口。组件一般使用一个.qml文件定义。前面讲到的使用QML文档定义对象类型,其实就是创建了一个组件。这种使用独立QML文件创建组件的方法这里不再讨论。除了使用单独的QML文件,还可以使用Component类型在一…

如何规范员工上网行为(规范员工上网行为的有效方法)

有很多企业会有员工管理问题,比如以下几位老板的担忧: 可见,很多企业都想要对员工上网行为进行管理。 我想企业要对员工上网行为进行规范管理,肯定也是出于多方面的考量。这些考量可能涵盖了工作效率、信息安全、网络带宽利用以及…

2024 ICDE | 时间序列(Time Series)论文总结

第40届IEEE数据工程国际会议(ICDE2024 )于5月13日到17日在荷兰乌德勒支召开。 本届ICDE Research共接收论文375篇,Industry and Application接受论文21篇。本文总结了ICDE 2024上有关时间序列(Time Series)的工作&…

C语言-存储期2.0

静态存储期 在数据段中分配的变量,统统拥有静态存储期,因此也都被称为静态变量。这里静态的含义,指的是这些变量的不会因为程序的运行而发生临时性的分配和释放,它们的生命周期是恒定的,跟整个程序一致。 静态变量包含…

一文轻松学会远程服务器/docker内 vscode,调试(debug)无/多参数/bash以及多工作空间运行的python程序,欢迎大佬补充,一起学习

至于如何SSH、docker以及无需参数的程序调试这篇就先不说了。本篇文章主要记录一下多参数和多工作空间调试的问题。 一、launch.json文件 如上图所示,正常情况下当我们想要调试项目名字为0的目录下的train.py文件时,我们会按顺序点1,2&#…

防范服务器被攻击:查询IP地址的重要性与方法

在当今数字化时代,服务器扮演着重要的角色,为企业、组织和个人提供各种网络服务。然而,服务器也成为了网络攻击者的目标之一,可能面临各种安全威胁,例如DDoS攻击、恶意软件攻击、数据泄露等。为了有效地防范服务器被攻…

用 docker 创建 jmeter 容器, 实现性能测试,该如何下手?

用 docker 创建 jmeter 容器, 实现性能测试 我们都知道,jmeter可以做接口测试,也可以用于性能测试,现在企业中性能测试也大多使用jmeter。docker是最近这些年流行起来的容器部署工具,可以创建一个容器,然后把项目放到…

Navicat破解 Navicat下载安装 附教程 免费

百度网盘:https://pan.baidu.com/s/1wRRN_18_uXxPiIWCS4l43A 麻烦各位师傅帮忙填写一下问卷,提取码在问卷填写结束后显示~ 【https://www.wjx.cn/vm/mBBTTKm.aspx# 】 (资料来源于网络,侵告删)

【护网资料】 应急响应 安全设备 告警分析 蓝中必看 HVV 护网行动

百度网盘:https://pan.baidu.com/s/1wDVamgkyXwP-yiWN4jPEGQ 麻烦各位师傅帮忙填写一下问卷,提取码在问卷填写结束后显示~ 【https://www.wjx.cn/vm/mBBTTKm.aspx# 】 (资料来源于网络,侵告删)

【CTF笔记】 CTF web方向笔记分享 免费 附预览图

个人不怎么记东西,笔记不多,师傅们凑合看… 百度网盘:https://pan.baidu.com/s/1PspihUX28Y_AOQZPurHqKA 麻烦各位师傅帮忙填写一下问卷,提取码在问卷填写结束后显示~ 【https://www.wjx.cn/vm/mBBTTKm.aspx# 】 (…

重学SpringBoot3-路径匹配机制

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-路径匹配机制 AntPathMatcherPathPatternParser 和 PathPattern演示AntPathMatcher 示例PathPattern 示例性能和精确度的提升 选择使用哪一种 在 Spring…

迷宫问题三种种解法(A*算法+BFS+双向广搜)

题目描述 小明置身于一个迷宫&#xff0c;请你帮小明找出从起点到终点的最短路程。 小明只能向上下左右四个方向移动。 输入格式 输入包含多组测试数据。输入的第一行是一个整数T&#xff0c;表示有T组测试数据。 每组输入的第一行是两个整数N和M&#xff08;1<N,M<100&a…

【LeetCode】升级打怪之路 Day 24:回溯算法的解题框架

今日题目&#xff1a; 46. 全排列51. N 皇后78. 子集 目录 LC 46. 全排列LC 51. N 皇后LC 78. 子集 【classic】1&#xff09;思路一2&#xff09;思路二 今天学习了回溯算法的解题框架&#xff1a;回溯算法解题套路框架 | labuladong 回溯算法的整体框架都是&#xff1a; re…

力扣L11--- 344.反转字符串(JAVA版)-2024年3月15日

1.题目 2.知识点 交换两个变量值的代码 char temps[left];//temp为暂时的变量&#xff0c;left是左指针&#xff0c;将left暂时存储在temp里面s[left]s[right];//将右指针的值赋给左指针s[right]temp;//将temp的值给右指针left;//左指针向左移动right--;//右指针向右移动3.代码…

2024年【广东省安全员C证第四批(专职安全生产管理人员)】考试总结及广东省安全员C证第四批(专职安全生产管理人员)模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;考试总结是安全生产模拟考试一点通总题库中生成的一套广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;模拟试题&#xff0c;…

【ShenYu源码阅读】支持提醒通知设计,来看看开源贡献者都做了什么

相信大家碰到源码时经常无从下手&#x1f643;&#xff0c;不知道从哪开始阅读&#xff0c;面对大量代码晕头转向&#xff0c;索性就读不下去了&#xff0c;又浪费了一次提升自己的机会&#x1f62d;。 我认为有一种方法&#xff0c;可以解决大家的困扰&#xff01;那就是通过阅…