LangChain系列文章
LangServe帮助开发人员将LangChain可运行程序和Chains部署为REST API。
该库集成了FastAPI,并使用pydantic进行数据验证。
此外,它提供了一个客户端,可用于调用部署在服务器上的可运行程序。 LangChainJS中提供了一个JavaScript客户端。
/invoke/
,/batch/
和/stream/
端点,支持单个服务器上的许多并发请求/stream_log/
端点,用于流式传输链/代理的所有(或部分)中间步骤/playground/
上的游乐场页面,具有流式输出和中间步骤我们将发布托管版的LangServe,用于一键部署LangChain应用程序。在这里注册以加入等待名单。
版本0.0.13 - 0.0.15存在安全漏洞——游乐场端点允许访问服务器上的任意文件。在版本0.0.16中已解决。
对于客户端和服务器:
pip install "langserve[all]"
或者使用pip install "langserve[client]"
安装客户端代码,使用pip install "langserve[server]"
安装服务器端代码。
使用LangChain CLI快速引导LangServe项目。
要使用langchain CLI,请确保已安装最新版本的langchain-cli。您可以使用pip install -U langchain-cli
进行安装。
langchain app new ../path/to/directory
LangChain模板是构建生产就绪的LLM应用程序的最简单和最快速的方法。这些模板作为各种流行的LLM用例的参考架构集。它们都采用标准格式,使得使用LangServe部署它们变得很容易。
我们将发布LangServe的托管版本,以一键式部署LangChain应用程序。在此处注册以加入等待列表。
要使用,首先安装LangChain命令行界面。
pip install -U langchain-cli
接下来,创建一个新的LangChain项目:
langchain app new my-app
要将现有模板作为包引入,首先需要进入您的新项目:
cd my-app
你可以把一个模板添加为一个项目。在这个入门指南中,我们将添加一个简单的海盗语言项目。这个项目的作用是将用户输入转换成海盗语言。
langchain app add pirate-speak
这将在packages/pirate-speak
中引入指定的模板
然后会提示您是否要安装它。这相当于运行pip install -e packages/pirate-speak
。通常应该接受这一点(或者之后运行相同的命令)。我们使用-e安装它,这样如果您修改模板(您很可能会这样做),更改将会更新。
之后,它会问您是否要为此项目生成路由代码。这是您需要添加到您的应用程序中以开始使用此链的代码。如果我们接受,我们将看到生成以下代码:
from pirate_speak.chain import chain as pirate_speak_chain
add_routes(app, pirate_speak_chain, path="/pirate-speak")
你现在可以编辑你拉下来的模板。你可以更改package/pirate-speak
的代码文件,以使用不同的模型、不同的提示、不同的逻辑。请注意,上面的代码片段始终期望最终链可导入为from pirate_speak.chain import chain
,因此您应该保持包的结构足够相似,以尊重该要求,或准备更新该代码片段。
一旦你想做的都做完了,为了让LangServe使用这个项目,你需要修改app/server.py
。具体来说,你应该将上面的代码片段添加到app/server.py
中,以便该文件看起来像:
from fastapi import FastAPI
from langserve import add_routes
from pirate_speak.chain import chain as pirate_speak_chain
app = FastAPI()
add_routes(app, pirate_speak_chain, path="/pirate-speak")
(可选)现在让我们配置 LangSmith。LangSmith 将帮助我们跟踪、监视和调试 LangChain 应用程序。LangSmith 目前处于私人测试阶段,您可以在这里注册。如果您无法访问,可以跳过此部分。
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project> # if not specified, defaults to "default"
对于这个特定的应用程序,我们将使用OpenAI作为LLM,所以我们需要导出我们的OpenAI API密钥:
export OPENAI_API_KEY=sk-...
您可以通过运行以下命令,启动生产就绪的端点以及一个playground:
langchain serve
这现在提供了一个完全部署的LangServe应用程序。例如,您可以访问
http://127.0.0.1:8000/pirate-speak/playground/
Access API documentation at http://127.0.0.1:8000/docs
使用LangServe的Python或js SDK与API进行交互,就好像它是一个常规的Runnable。
from langserve import RemoteRunnable
api = RemoteRunnable("http://127.0.0.1:8000/pirate-speak")
api.invoke({"text": "hi"})
快速入门就到这里!您已成功下载了第一个模板,并使用LangServe部署了它。
https://github.com/zgpeace/pets-name-langchain/tree/develop