Langchain是一个基于大语言模型的应用开发框架,随着社区的快速成长,它现在已不仅仅是一个开发框架,更多的是一个LLM应用的基建工程,提供从开发到上线整个闭环流程的全程支持。
所以当提到Langchain的时候,需要知道它起初只是一个比较简单的LLM应用开发框架,只是后来社区成长后,出现了一系列Langchain命名的项目,它们共同组成了现在的Langchain社区。
安装Langchain
pip install langchain
安装LangServe和LangSmith
pip install langsmith
LangServe模块只有在安装完Langchain CLI后才会自动安装(注意不是Langchain),如果需要单独安装,请使用如下命令
# 同时安装客户端和服务端
pip install "langserve[all]"
# 仅安装客户端
pip install "langserve[client]"
# 仅安装服务端
pip install "langserve[server]"
安装其他依赖
# 必须安装
pip install langchain-openai # LLM大语言模型必须使用
入门例子
在下面这个例子中,主要分为几个简单的入门例子
创建LLM :使用langchain_openai包中的ChatOpenAI()创建一个LLM大语言模型对象
创建Prompt :使用langchain_core包中的ChatPromptTemplate创建一个Prompt对象
创建Output_parser :使用langchain_core包中的StrOutputParser()创建一个输出处理器
使用LCEL语进行链式调用 :使用或运算符|即可自动实现链式调用(基于ror魔法函数实现),如prompt | llm | output_parser
# ==================== 创建LLM并调用 ====================
from langchain_openai import ChatOpenAI
# 1. 使用系统配置的OPENAI_API_KEY环境变量
llm = ChatOpenAI()
# 2. 传递openai_api_key参数
# llm = ChatOpenAI(openai_api_key="")
print(llm.invoke("1+1=?"))
# ==================== 创建一个复杂的Prompt并使用Chain链式调用 ====================
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "You are good at math."),
("user", "{input}")
])
chain = prompt | llm
print(chain.invoke({"input": "1+1=?"}))
# ==================== 创建一个StrOutputParser输出处理器并加入到Chain中 ====================
from langchain_core.output_parsers import StrOutputParser
output_parser = StrOutputParser()
chain = prompt | llm | output_parser
print(chain.invoke({"input": "1+1=?"}))