AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


LangChain模块之输入、输出
发布日期:2024-09-24 08:06:21 浏览次数: 1516



一、前言

LangChain 中的模型输入/输出(Model I/O)模块是与各种大语言模型进行交互的基本组件,是大语言模型应用的核心元素。该模块的基本流程如图所示,主要包含以下部分:Prompts、Language Models 及Output Parsers。用户原始输入与模型和示例进行组合,然后输入大语言模型,再根据大语言模型的返回结果进行输出或者结构化处理。

二、流程图元素

2.1 Prompts

Prompts 部分的主要功能是提示词模板、提示词动态选择和输入管理。提示词是指输入模型的内容。该输入通常由模板、示例和用户输入组成。LangChain 提供了几个类和函数,使得构建和处理提示词更加容易。LangChain 中的PromptTemplate 类可以根据模板生成提示词,它包含了一个文本字符串(模板),可以根据从用户处获取的一组参数生成提示词。以下是一个简单的示例:

通过上述代码,可以获取最终的提示词“You are a naming consultant for new companies. What is a good name for a company that makes colorful socks?”

如果有大量的示例,可能需要选择将哪些示例包含在提示词中。LangChain 中提供了Example Selector 以提供各种类型的选择,包括LengthBasedExampleSelector、MaxMarginalRelevanceExampleSelector、SemanticSimilarityExampleSelector、NGramOverlapExampleSelector 等,可以提供按照句子长度、最大边际相关性、语义相似度、n-gram 覆盖率等多种指标进行选择的方式。比如基于句子长度的筛选器的功能是这样的:当用户输入较长时,该筛选器可以选择简洁的模板,而面对较短的输入则选择详细的模板。这样做可以避免输入总长度超过模型的限制。

2.2 Language Models

Language Models 部分提供了与大语言模型的接口,LangChain 提供了两种类型的模型接口和集成:

  • LLM,接收文本字符串作为输入并返回文本字符串;
  • Chat Model,由大语言模型支持,但接收聊天消息(Chat Message)列表作为输入并返回聊天消息。在LangChain 中,LLM 指纯文本补全模型,接收字符串提示词作为输入,并输出字符串。OpenAI 的GPT-3 是 LLM 实现的一个实例。Chat Model 专为会话交互设计,与传统的纯文本补全模型相比,这一模型的API 采用了不同的接口方式:它需要一个标有说话者身份的聊天消息列表作为输入,如“系统”、“AI”或“人类”。作为输出,Chat Model 会返回一个标为“AI”的聊天消息。GPT-4 和Anthropic 的Claude 都可以通过Chat Model 调用。

以下是利用LangChain 调用OpenAI API 的代码示例:

上例中,HumanMessage 表示用户输入的消息,AIMessage 表示系统回复用户的消息,SystemMessage表示设置的AI 应该遵循的目标。程序中还会有ChatMessage,表示任务角色的消息。上例调用了OpenAI 提供的gpt-3.5-turbo 模型接口,可能返回的结果如下:

2.3 Output Parsers

Output Parsers 部分的目标是辅助开发者从大语言模型输出中获取比纯文本更结构化的信息。Output Parsers 包含很多具体的实现,但是必须包含如下两个方法。

  • (1)获取格式化指令(Get format instructions),返回大语言模型输出格式化的方法。
  • (2)解析(Parse)接收的字符串(假设为大语言模型的响应)为某种结构的方法。还有一个可选的方法:带提示解析(Parse with prompt),接收字符串(假设为语言模型的响应)和提示(假设为生成此响应的提示)并将其解析为某种结构的方法。比如 PydanticOutput-Parser 允许用户指定任意的JSON 模式,并通过构建指令的方式与用户输入结合,使得大语言模型输出符合指定模式的JSON 结果。

以下是PydanticOutputParser 的使用示例: 



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询