使用LangChain构建简单的LLM应用

在这篇快速入门教程中,我们将向您展示如何使用LangChain构建一个简单的LLM(大型语言模型)应用程序。这个应用程序的功能是将文本从英语翻译成其他语言,这是一个相对简单的LLM应用,只需一个LLM调用加上一些提示。但即使是这样,也不失为一个很好的入门LangChain的方法——通过一点提示和LLM调用可以构建很多的功能!

在阅读这篇教程后,您将对以下内容有一个高级别的概述:

  • 使用语言模型
  • 使用PromptTemplates和OutputParsers
  • 使用LangChain表达语言(LCEL)来将组件链接在一起
  • 使用LangSmith进行调试和跟踪您的应用
  • 使用LangServe部署您的应用

让我们开始吧!

设置

Jupyter Notebook

本指南(以及文档中的大多数其他指南)使用Jupyter notebooks,也假设读者也使用它。Jupyter notebooks非常适合学习如何使用LLM系统,因为很多时候会出现问题(意外输出,API停机等),在交互式环境中浏览指南是更好理解它们的方法。

安装

要安装LangChain请运行:

pip install langchain
#或者使用Conda
conda install langchain -c conda-forge

更多详细信息,请参阅我们的安装指南

LangSmith

在使用LangChain构建的许多应用中,您将包含多步骤的多次LLM调用。随着这些应用的变得越来越复杂,能够检查您的链或代理中到底发生了什么变得至关重要。最好的方法是使用LangSmith。

注册后,请确保设置您的环境变量以开始记录跟踪:

export LANGCHAIN_TRACING_V2="true"
export LANGCHAIN_API_KEY="..."

或者,如果在notebook中,您可以设置如下:

import getpass
import os

os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = getpass.getpass()

使用语言模型

首先,让我们学习一下如何单独使用语言模型。LangChain支持许多不同的可互换使用的语言模型——选择您想使用的模型即可!

pip install -qU langchain-openai
import getpass
import os

os.environ["OPENAI_API_KEY"] = getpass.getpass()

from langchain_openai import ChatOpenAI

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

from langchain_core.messages import HumanMessage, SystemMessage

messages = [
    SystemMessage(content="Translate the following from English into Italian"),
    HumanMessage(content="hi!"),
]

response = model.invoke(messages)
print(response.content)  # 输出: 'ciao!'

OutputParsers

下面我们使用一个简单的输出解析器来提取模型返回的字符串响应。

from langchain_core.output_parsers import StrOutputParser

parser = StrOutputParser()

result = model.invoke(messages)
parsed_result = parser.invoke(result)
print(parsed_result)  # 输出: 'Ciao!'

提示模板

提示模板用于将用户输入转换为可以传递给语言模型的消息列表。以下是如何创建一个提示模板的示例:

from langchain_core.prompts import ChatPromptTemplate

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

result = prompt_template.invoke({"language": "italian", "text": "hi"})
print(result.to_messages())  # 输出消息列表

使用LCEL链接组件

我们可以使用管道(|)操作符将提示模板、模型和输出解析器组合在一起:

chain = prompt_template | model | parser
final_result = chain.invoke({"language": "italian", "text": "hi"})
print(final_result)  # 输出: 'ciao'

使用LangServe部署

pip install "langserve[all]"

创建一个serve.py文件用于部署:

#!/usr/bin/env python
from fastapi import FastAPI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
from langserve import add_routes

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

model = ChatOpenAI()
parser = StrOutputParser()
chain = prompt_template | model | parser

app = FastAPI(
  title="LangChain Server",
  version="1.0",
  description="A simple API server using LangChain's Runnable interfaces",
)

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/测试应用。

结论

通过阅读本文,您学习了如何创建一个简单的LLM应用,涵盖了使用语言模型、解析输出、创建提示模板、通过LCEL将它们链接、使用LangSmith观察链以及通过LangServe部署。要深入学习LangChain的更多功能,确保查看详细的概念指南和LangSmith文档。

如果遇到问题欢迎在评论区交流。

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值