微信扫码
添加专属顾问
我要投稿
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+中大型企业
2025-03-05
Agent 最全 Playbook:场景、记忆和交互创新
2025-03-05
基于LangGraph的智能文章生成Agent架构设计思路
2025-03-02
LangGraph全新4大预构建Agents框架登场
2025-03-01
极简LangChain智能体开发入门指南
2025-03-01
释放 Langflow 的力量:使用 Rag 构建多工具代理
2025-02-28
用 LangGraph 构建 Agent 逐步指南
2025-02-28
刚刚,LangGraph官方开源Ultra版本,多智能体能力提升10倍!
2025-02-25
AI Agent 开发框架巡礼:流行度、案例与理性选择
2024-10-10
2024-04-08
2024-07-13
2024-06-03
2024-09-04
2024-08-18
2024-04-08
2024-06-24
2024-07-10
2024-03-28
2025-02-05
2024-12-02
2024-11-25
2024-10-30
2024-10-11
2024-08-18
2024-08-16
2024-08-04