使用 LangChain 构建应用
LangChain 是一个旨在简化大型语言模型(LLM)应用的开发框架。它支持将外部数据源和计算源连接到 LLM,从而构建功能丰富的应用程序。本文将重点介绍 LangChain 中最基础的组件之一——LLMChain,并逐步展示如何从简单的提示响应扩展到更复杂的链式调用。
环境准备与安装
在使用 LangChain 之前,需要确保 Python 环境已配置好。LangChain 支持通过 API 提供的模型(如 OpenAI)和本地开源模型(如 Ollama)。
首先,安装必要的依赖包。对于 OpenAI 集成,需要安装 langchain-openai 包:
pip install langchain-openai
同时,建议安装核心包以确保兼容性:
pip install langchain-core
访问 API 需要一个有效的密钥。您可以通过注册 OpenAI 账户获取该密钥。为了安全起见,建议将密钥设置为环境变量,而不是硬编码在代码中。
设置环境变量示例(Linux/Mac):
export OPENAI_API_KEY="sk-..."
Windows 用户可以使用 setx 或在系统属性中配置。
初始化模型
安装完成后,我们可以初始化模型。以下示例使用 OpenAI 的 Chat 模型。
方式一:使用环境变量
如果已设置环境变量,可以直接实例化:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
方式二:直接传入密钥
如果不希望设置环境变量,可以在启动类时直接通过命名参数传入密钥:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(openai_api_key="sk-...")
注意:在生产环境中,请避免将密钥硬编码在代码中,建议使用 .env 文件和 python-dotenv 库来管理敏感信息。
测试模型调用
一旦安装并初始化了 LLM,就可以尝试调用它。例如,询问关于历史人物的问题:
response = llm.invoke("介绍一下李白?")
print(response)
输出通常是一个 AIMessage 对象,包含内容字段:
AIMessage(content='李白(701 年-762 年),字太白,号青莲居士,唐朝时期伟大的浪漫主义诗人...')
虽然可以直接使用,但在大多数应用中,我们更倾向于处理字符串格式的数据。因此,我们需要引入输出解析器。
构建提示模板
提示模板(Prompt Template)用于将原始用户输入转换为更适合 LLM 理解的格式。通过定义 System Message 和 User Message,可以控制模型的语气、角色和回答风格。
langchain_core.prompts ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
(, ),
(, )
])


