LangChain核心组件-模型包装器

LangChain核心组件-模型包装器
jwang任何大模型应用程序的核心元素都是大模型,LangChain提供了与任何语言模型交互的构建块,包括组件:语言模型、提示模板、示例编译器、输出解析器等
语言模型
LangChain 提供通用接口(模型包装器)调用不同类型的语言模型,其支持的模型有三大类
1. 大语言模型LLM包装 |
大语言模型LLM包装器(国内放弃)
- 文本补全模型,接收文本字符串作为输入,并返回一个补全字符串作为输出
例如: |
- 其为一问一答,OpenAi的文本补全类型API 202307进行了最后一次更新,只能访问较旧的历史遗留模型
聊天模型(Chat Model)
主要代表ChatGPT系列模型。通常由语言模型支持,其API更加结构化
ChatOpenAI(聊天模型包装器)
- 原理:ChatOpenAI将一系列的聊天信息或信息列表作为输入,并返回聊天信息
- 解决问题:对于复杂对话场景支持多论对话。其每一则消息都包含了消息角色和消息内容,他们合在一起构成了一个完整的对话上下文。适合需要历史对话和生成带有对话上下文响应的任务
#实现一个翻译助手 |
缺点
随意选一个国内AI模型执行上述msg,不设置任何其它的内容,虽然能够交互,但是存在问题:
- 提示词固定,无法根据实际情况灵活变动
- 大模型原始答复复杂,有许多额外信息
提示词模板prompt template
是一个模块化的字符串,可以用来生成特定的提示(prompts),可以将变量插入模板中,创建出不同的提示
特点
- 清晰易懂的提示:提高提示文本的可读性便于理解,尤其处理复杂或者多个变量的情况下
- 增强可重用性:模板可以在多个地方重复使用,简化代码,不需要重复构建提示字符串
- 简化维护:需要更改提示内容仅需要更改模板对应位置即可
- 智能处理变量:模板自动处理变量的插入
- 参数化生成: 根据不同参数生成不同提示,有助于个性化文本生成
常见提示词模板
- LLM提示词模板 prompttemplate:String提示模板
#字符串提示词组合 |
- 聊天提示模板 ChatPromptRemplate:用于组合各种角色的消息模板,传入聊天模型
# 聊天提示词组成 |
- 增强提示词模板: 少样本提示模板 FewShotPromptTemplate、提示模板部分格式化、管道提示模板PipLinePrompt等
输出解析器
输出解析器负责LLM的输出并将其转换为更合适的格式
分类
CSV解析器:CommaSeparatedListOutputParser,模型的输出以逗号分隔,以列表形式返回输出
日期时间解析器:DatetimeOutputParser:将LLM输出解析为日期时间格式
JSON解析器:JsonOutputParser,确保输出符合特定JSON对象格式
XML解析器:XMLOutputParser,允许以流行的XML格式从LLM获取结果

