LangChain实战课笔记03 Models | 豆包MarsCode AI刷题

88 阅读3分钟

一、Model I/O 概念解析

模型的使用过程可拆解为输入提示(Format)、调用模型(Predict)和输出解析(Parse)三块,在 LangChain 中统称为 Model I/O。LangChain 为此提供了模板和工具,方便形成调用各种语言模型的接口。

  • 提示模板:是使用模型的首环节,可创建 LangChain 模板,依实际需求动态选输入,针对特定任务与应用调整输入。好的提示能让调用大模型事半功倍,虽无万能模板,但有基本原则,如吴恩达[提示工程课程](DeepLearning.AI - Learning Platform)中的给予模型清晰明确指示、让模型慢慢思考等。以生成鲜花店文案为例,创建了包含花名和价格变量的提示模板,通过from_template方法将原始模板字符串转化为PromptTemplate对象,其包含输入变量、输出解析器、模板格式、是否验证模板等信息,LangChain 还提供多类函数与内置模板,便于构建与使用提示。

  • 语言模型:LangChain 支持大语言模型(LLM)也叫Text Model、聊天模型(Chat Model)、文本嵌入模型(Embedding Model)三类。大语言模型如 Open AI 的 text - davinci - 003 等,输入输出皆为文本字符串;聊天模型以 Open AI 的 ChatGPT 系列为代表,输入聊天消息列表并返回聊天消息;文本嵌入模型如 OpenAI 的 text - embedding - ada - 002,将文本转浮点数列表,与提示工程关系不大。以生成鲜花文案为例,设置 OpenAI API Key 后,导入 LangChain 中的 OpenAI 模型接口创建模型实例,将提示模板实例化后输入模型得到文案输出,还可复用模板生成多种花的文案。同时对比直接使用 Open AI API,显示出 LangChain 提示模板的优势,如定义一次可多处复用、整合多类功能、方便切换模型等,还用相同提示模板调用 HuggingFaceHub 中的开源模型展示了模板的通用性。

  • 输出解析:LangChain 提供解析模型输出功能,便于获取结构化信息,加速基于语言模型的应用开发。以鲜花文案为例,若期望模型返回鲜花说明文本(description)和撰写原因(reason),模型原始输出可能是笼统言语,而通过 LangChain 的输出解析器可将其转化为结构化的 Python 字典。具体操作是先定义响应模式列表response_schemas,再用StructuredOutputParser.from_response_schemas方法创建输出解析器,获取格式说明后结合原始模板创建新提示模板,生成模型输入与输出,最后用output_parser.parse解析输出并整合到pandas DataFrame对象中,可打印或保存为 CSV 文件,实现数据的结构化处理。

二、LangChain 框架优势总结

  • 模板管理:大型项目中存在众多提示模板,LangChain 有助于更好管理,使代码清晰整洁。

  • 变量提取与检查:能自动提取模板变量并检查,避免遗漏填充。

  • 模型切换:更改模型名称即可切换模型,无需改动代码。

  • 输出解析:提示模板可嵌入输出格式定义,方便处理格式化输出。

通过本节课学习,利用大模型开发出自动生成鲜花文案的应用程序,与传统基于 SQL 和数据库表及固定业务逻辑的应用开发不同,基于大模型构建的应用充满创造力,而 LangChain 框架在其中发挥着重要作用,为开发提供诸多便利与优势。