LangChain六大核心组件之一:Models | 豆包MarsCode AI刷题

173 阅读4分钟

LangChain六大核心组件之一:Models

LangChain 是一个旨在简化构建基于大语言模型(LLM)的应用程序的框架,而其核心组件之一 Models 则是整个框架的发动机,驱动各种任务的实现。Models 的功能包括调用大语言模型、创建和使用提示模板,以及解析模型输出等。


一、Models的核心概念

1. 什么是Models?

Models 是 LangChain 提供的调用语言模型的核心组件,它负责管理提示模板、调用模型 API,以及处理模型的输出数据。LangChain 通过 Models 实现以下主要功能:

  1. 提示模板(Prompt Templates) :将用户需求转化为语言模型可理解的输入提示。
  2. 调用语言模型(Predict) :将提示输入语言模型,获取生成的输出内容。
  3. 输出解析(Parse) :将模型的输出转化为结构化数据,方便进一步处理。

通过 Models,开发者可以在不修改核心逻辑的情况下轻松切换到不同的语言模型,提高开发效率和代码的可扩展性。


二、Model I/O:模型输入输出的过程解析

Model I/O 是语言模型调用的完整流程,包括三个阶段:提示构建模型调用输出解析。每个阶段都有其独特的意义和实现方式。

1. 输入提示(Prompt)

输入提示是与语言模型交互的起点。优秀的提示设计(Prompt Engineering)能够显著提升模型生成结果的质量。

  • 明确指令:提示中要清晰地告诉模型期望的输出。
  • 逐步推理:引导模型按照逻辑步骤逐步生成结果。

案例:鲜花文案生成 在鲜花销售文案生成应用中,开发者希望模型根据指定花名和价格生成吸引人的描述文案。通过模板设计,可以动态调整提示内容。

template = """您是一位专业的鲜花店文案撰写员。
对于售价为 {price} 元的 {flower_name} ,您能提供一个吸引人的简短描述吗?
"""

以上模板清晰地定义了任务和变量,开发者只需替换 {price}{flower_name} 即可。

2. 调用模型(Predict)

调用模型是 Model I/O 的核心环节。LangChain 提供了接口,使开发者能够轻松地将提示发送给支持的语言模型,如 OpenAI 的 GPT 系列、阿里的通义千问等。

模型接口的统一性:LangChain 统一了调用不同模型的接口。开发者无需关心具体模型 API 的细节,只需专注于应用逻辑。

3. 输出解析(Parse)

模型生成的输出通常是非结构化文本,而开发者往往需要结构化数据以便后续处理。LangChain 提供了解析器(Parser),可以将复杂的文本转化为清晰的 Python 数据结构。

  • 结构化输出解析器(Structured Output Parser) :用于定义模型输出的预期格式,例如 JSON 格式。

案例:鲜花文案解析 假设我们希望模型返回以下两个字段:

  1. description: 文案描述。
  2. reason: 文案设计的理由。

可以通过解析器定义解析规则:

from langchain.output_parsers import StructuredOutputParser, ResponseSchema

# 定义响应模式
response_schemas = [
    ResponseSchema(name="description", description="鲜花的描述文案"),
    ResponseSchema(name="reason", description="文案设计理由")
]

# 创建解析器
output_parser = StructuredOutputParser.from_response_schemas(response_schemas)

# 获取模型输出并解析
parsed_output = output_parser.parse(output)

通过解析器,开发者可以直接得到一个结构化的字典,而无需手动解析冗长的文本。


三、LangChain 提供的支持:三大模型类别

LangChain 中的语言模型按功能分为三类:

1. 大语言模型(LLM)

这是 LangChain 最基础的模型类型,支持的输入和输出都是简单的字符串。典型的 LLM 包括 OpenAI 的 text-davinci-003 和阿里巴巴的 qwen-text

2. 对话模型(Chat Models)

这类模型是大语言模型的扩展,设计用于处理结构化的对话输入和输出。例如,OpenAI 的 GPT 系列支持输入聊天消息列表,并生成对应的对话内容。

3. 嵌入模型(Embedding Models)

嵌入模型将文本转化为向量表示,主要用于文档存储和检索。虽然与提示工程关系不大,但它们为应用的搜索功能提供了重要支持。


六、总结

LangChain 的 Models 组件为开发者提供了一套高效、灵活的工具,涵盖了从提示设计到输出解析的完整流程。通过引入提示模板和解析器,开发者能够快速构建基于语言模型的应用程序,并显著提升模型交互的质量和效率。