微信扫码
与创始人交个朋友
我要投稿
LangChain 中的模型输入/输出(Model I/O)模块是与各种大语言模型进行交互的基本组件,是大语言模型应用的核心元素。该模块的基本流程如图所示,主要包含以下部分:Prompts、Language Models 及Output Parsers。用户原始输入与模型和示例进行组合,然后输入大语言模型,再根据大语言模型的返回结果进行输出或者结构化处理。
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 覆盖率等多种指标进行选择的方式。比如基于句子长度的筛选器的功能是这样的:当用户输入较长时,该筛选器可以选择简洁的模板,而面对较短的输入则选择详细的模板。这样做可以避免输入总长度超过模型的限制。
Language Models 部分提供了与大语言模型的接口,LangChain 提供了两种类型的模型接口和集成:
以下是利用LangChain 调用OpenAI API 的代码示例:
上例中,HumanMessage 表示用户输入的消息,AIMessage 表示系统回复用户的消息,SystemMessage表示设置的AI 应该遵循的目标。程序中还会有ChatMessage,表示任务角色的消息。上例调用了OpenAI 提供的gpt-3.5-turbo 模型接口,可能返回的结果如下:
Output Parsers 部分的目标是辅助开发者从大语言模型输出中获取比纯文本更结构化的信息。Output Parsers 包含很多具体的实现,但是必须包含如下两个方法。
以下是PydanticOutputParser 的使用示例:
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-13
只需8步,手把手教你用LangGraph创建AI智能体
2024-11-13
使用 LangChain 建立一个会话式的 RAG Agent 系统
2024-11-12
一文深度了解Agent智能体以及认知架构
2024-11-12
使用LangChain建立检索增强生成(RAG)系统
2024-11-11
Qwen-Agent 核心点说明
2024-11-11
吴恩达分享五个AI趋势,重点谈了多AI代理的美好前景
2024-11-11
使用 LangChain 构建一个 Agent(智能体/代理)
2024-11-10
使用 LangChain 构建一个有记忆的聊天机器人
2024-08-18
2024-04-08
2024-06-03
2024-04-08
2024-04-17
2024-06-24
2024-04-12
2024-04-10
2024-07-01
2024-04-11
2024-10-30
2024-10-11
2024-08-18
2024-08-16
2024-08-04
2024-07-29
2024-07-28
2024-07-27