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博客