微信扫码
与创始人交个朋友
我要投稿
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-12-18
一站式 LLM 工程观测平台:Langfuse,让所有操作可观测
2024-12-17
LLMs开发者必看!Pydantic AI代理框架震撼登场!
2024-12-16
用LangChain实现一个Agent
2024-12-16
通过阿里云 Milvus 和 LangChain 快速构建 LLM 问答系统
2024-12-16
大模型部署调用(vLLM+LangChain)
2024-12-14
利用 LangGraph 和代理优化工作流程效率:关键功能、用例和集成...
2024-12-09
深度丨LangChain团队基于Agents用户体验设计的研究
2024-12-03
带LangGraph的多智能体工作流
2024-04-08
2024-08-18
2024-06-03
2024-10-10
2024-04-08
2024-04-17
2024-06-24
2024-07-13
2024-04-11
2024-04-12
2024-12-02
2024-11-25
2024-10-30
2024-10-11
2024-08-18
2024-08-16
2024-08-04
2024-07-29