LangChain 22 LangServe用于一键部署LangChain应用程序

LangChain系列文章

  1. LangChain 实现给动物取名字,
  2. LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字
  3. LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄
  4. LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索Indexes for information retrieve
  5. LangChain 5易速鲜花内部问答系统
  6. LangChain 6根据图片生成推广文案HuggingFace中的image-caption模型
  7. LangChain 7 文本模型TextLangChain和聊天模型ChatLangChain
  8. LangChain 8 模型Model I/O:输入提示、调用模型、解析输出
  9. LangChain 9 模型Model I/O 聊天提示词ChatPromptTemplate, 少量样本提示词FewShotPrompt
  10. LangChain 10思维链Chain of Thought一步一步的思考 think step by step
  11. LangChain 11实现思维树Implementing the Tree of Thoughts in LangChain’s Chain
  12. LangChain 12调用模型HuggingFace中的Llama2和Google Flan t5
  13. LangChain 13输出解析Output Parsers 自动修复解析器
  14. LangChain 14 SequencialChain链接不同的组件
  15. LangChain 15根据问题自动路由Router Chain确定用户的意图
  16. LangChain 16 通过Memory记住历史对话的内容
  17. LangChain 17 LangSmith调试、测试、评估和监视基于任何LLM框架构建的链和智能代理
  18. LangChain 18 LangSmith监控评估Agent并创建对应的数据库
  19. LangChain 19 Agents Reason+Action自定义agent处理OpenAI的计算缺陷
  20. LangChain 20 Agents调用google搜索API搜索市场价格 Reason Action:在语言模型中协同推理和行动
  21. LangChain 21 Agents自问自答与搜索 Self-ask with search
    在这里插入图片描述

1. 概述

LangServe帮助开发人员将LangChain可运行程序和Chains部署为REST API。

该库集成了FastAPI,并使用pydantic进行数据验证。

此外,它提供了一个客户端,可用于调用部署在服务器上的可运行程序。 LangChainJS中提供了一个JavaScript客户端。

2. Features特点

  • 从您的LangChain对象自动推断输入和输出模式,并在每次API调用中执行,并提供丰富的错误消息
  • API文档页面包含JSONSchema和Swagger(插入示例链接)
  • 高效的/invoke//batch//stream/端点,支持单个服务器上的许多并发请求
  • /stream_log/端点,用于流式传输链/代理的所有(或部分)中间步骤
  • /playground/上的游乐场页面,具有流式输出和中间步骤
  • 内置(可选)跟踪到LangSmith,只需添加您的API密钥(请参见说明)
  • 所有都是使用经过实战考验的开源Python库构建,如FastAPI,Pydantic,uvloop和asyncio。
  • 使用客户端SDK调用LangServe服务器,就像它是在本地运行的Runnable一样(或直接调用HTTP API)
  • LangServe Hub

3. 限制

  • 目前还不支持在服务器上发生的事件的客户端回调
  • 当使用Pydantic V2时,将不会生成OpenAPI文档。Fast API不支持混合使用pydantic v1和v2命名空间。有关更多详细信息,请参见下文。

4. 托管版的LangServ

我们将发布托管版的LangServe,用于一键部署LangChain应用程序。在这里注册以加入等待名单。

5. 安全漏洞

版本0.0.13 - 0.0.15存在安全漏洞——游乐场端点允许访问服务器上的任意文件。在版本0.0.16中已解决。

6. 安装

对于客户端和服务器:

pip install "langserve[all]"

或者使用pip install "langserve[client]"安装客户端代码,使用pip install "langserve[server]"安装服务器端代码。

7. LangChain CLI ️

使用LangChain CLI快速引导LangServe项目。

要使用langchain CLI,请确保已安装最新版本的langchain-cli。您可以使用pip install -U langchain-cli进行安装。

langchain app new ../path/to/directory

8. LangChain模板

LangChain模板是构建生产就绪的LLM应用程序的最简单和最快速的方法。这些模板作为各种流行的LLM用例的参考架构集。它们都采用标准格式,使得使用LangServe部署它们变得很容易。

我们将发布LangServe的托管版本,以一键式部署LangChain应用程序。在此处注册以加入等待列表。

9. 快速开始

要使用,首先安装LangChain命令行界面。

pip install -U langchain-cli

接下来,创建一个新的LangChain项目:

langchain app new my-app

这将创建一个名为my-app的新目录,其中包含两个文件夹:
LangChain 22 LangServe用于一键部署LangChain应用程序_第1张图片

  • app:这是LangServe代码的存放位置
  • packages:这是您的链或代理的存放位置

要将现有模板作为包引入,首先需要进入您的新项目:

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
LangChain 22 LangServe用于一键部署LangChain应用程序_第2张图片
使用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

参考

  • https://python.langchain.com/docs/langserve
  • https://github.com/langchain-ai/langchain/blob/master/templates/README.md

你可能感兴趣的:(LLM-Large,Language,Models,langchain,chatgpt,LLM,prompt)