微信扫码
添加专属顾问
我要投稿
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-04-18
扣子空间干掉了扣子自己(附系统提示词)
2025-04-18
怎样让LLM看懂你的接口?
2025-04-18
一文讲透 RAG、LangChain、Agent:AI 开发的 "三剑客 "如何协同作战
2025-04-17
LangBot:多模态 ChatGPT 机器人的全方位解析
2025-04-13
LangChain + 模型上下文协议(MCP):AI 智能体 Demo
2025-04-10
源码速读 | MaxKB源码QA问答对优化逻辑速读
2025-04-09
AI Agents框架选择指南:仿佛在玩初创公司模拟经营游戏
2025-04-08
LangChain 智能体:使用自定义工具
2024-10-10
2024-07-13
2024-04-08
2024-06-03
2024-09-04
2024-08-18
2024-04-08
2024-03-28
2024-06-24
2024-07-10
2025-04-18
2025-03-22
2025-03-22
2025-03-15
2025-02-05
2024-12-02
2024-11-25
2024-10-30