LangChain介绍
LangChain官网:https://python.langchain.com/v0.2/docs/introduction/
LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。
LangChain 简化了LLM应用程序生命周期的每个阶段:
- 开发:使用 LangChain 的开源构建模块和组件构建应用程序。使用第三方集成(opens in a new tab)和模板(opens
in a new tab)快速上手。 - 生产化:使用LangSmith检查、监控和评估你的链条,以便你可以持续优化和自信地部署。
- 部署:使用LangServe(opens in a new tab)将任何链条转变为 API。
该框架由以下开源库组成:
- langchain-core:基本抽象和 LangChain 表达式语言。
- langchain-community:第三方集成。 合作伙伴包(例如
langchain-openai,langchain-anthropic 等):某些集成已进一步拆分为仅依赖于
langchain-core 的轻量级包。 - langchain:构成应用程序认知架构的链条、代理和检索策略。
- langgraph(opens in a new
tab):通过将步骤建模为图中的边缘和节点,使用LLMs构建强大且有状态的多角色应用程序。 - langserve(opens in a new tab):将 LangChain 链条部署为 REST API。
使用LangChain
使用的方法我们可以参考官网
How-to guides:https://python.langchain.com/v0.2/docs/how_to/
第一步 引包
pip install langchain
使用API提供的模型,如OpenAI
pip install langchain-openai
第二步 获取访问API
访问openai网址,注册后生成个人API-KEY
讲key设置为环境变量
export OPENAI_API_KEY="..."
第三步 初始化模型
from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
或者不设置环境变量的话,通过参数形式写入
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(api_key="...")
第四步 通过LangChain使用LLM
llm.invoke("明天的天气怎么样?")
我们还可以使用提示模板来指导其回答。 提示模板将原始用户输入转换为更好的输入以供LLM使用。
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个专业的天气播报员"),
("user", "{input}")
])
组合成一个简单的LLM链
chain = prompt | llm
这样我在次提问,AI回答的方向和语境更倾向于天气播报员了
chain.invoke({"input": "明天的天气怎么样?"})
ChatModel的输出(因此,也是这个链的输出)是一个消息。然而,使用字符串更方便。让我们添加一个简单的输出解析器将聊天消息转换为字符串。
from langchain_core.output_parsers import StrOutputParser
output_parser = StrOutputParser()
将其添加到之前的链中
chain = prompt | llm | output_parser
现在,我们可以调用它并问相同的问题。答案现在将是一个字符串(而不是ChatMessage)。
chain.invoke({"input": "明天的天气怎么样?"})