LangServe 是一个用于构建和部署基于自然语言处理(NLP)模型的应用程序的框架。 它使得开发者可以轻松地将训练好的模型集成到 Web 服务中,提供 API 接口,以便于其他应用程序进行调用。
它具有以下优点:
易于调试:它提供了一个`Playground`,允许开发者实时地与他们的智能机器人互动,测试不同的输入并查看即时输出,这有助于快速迭代和调试;
支持并发:它支持并发请求,这意味着多个用户可以同时使用部署的服务而不会出现性能问题;
安全性:提供了一些安全性措施,如请求追踪,确保数据传输的安全;
支持流式传输和异步调用:支持流式传输和异步调用,这对于需要实时反馈或处理大量数据的应用程序来说非常有用;
本文是一个 LangServe 的基本教程,以阿里云的通义千问大模型作为语义模型,帮助快速上手。
1.安装 langserve 包
pip install langserve
2.创建链并包装成API
创建一个问答链,它提供简单地翻译功能,具体的提示词模版、模型创建、输出解析器、创建链等功能,运行它需要两个参数:language
、text
。
通过 FastAPI 将 langServer 链包装为 API 应用,通过 add_routes 定义服务链的路由。
from fastapi import FastAPI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_community.llms import Tongyi
from langserve import add_routes
import os
os.environ["DASHSCOPE_API_KEY"] = "你的API_KEY"
# 1. 创建提示词模版
system_template = "Translate the following into {language}:"
prompt_template = ChatPromptTemplate.from_messages([
('system', system_template),
('user', '{text}')
])
# 2. 创建模型
model = Tongyi()
# 3. 创建解析器
parser = StrOutputParser()
# 4. 创建链
chain = prompt_template | model | parser
# 5. App 定义
app = FastAPI(
title="LangChain Server",
version="1.0",
description="使用 LangChain 的 Runnable 接口的简单 API 服务器",
)
# 6. 添加链路由
add_routes(
app,
chain,
path="/chain",
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=5100)
3.启动测试
打开http://127.0.0.1:5100/chain/playground/ 测试下这个应用提供的接口,如下所示我们输入对应的两个参数的值:language 为 chinese、text 为 hello,则翻译应用输出为:你好
还可以通过 http://127.0.0.1:5100/docs 打开接口文档,可以看见它还提供了很多其它接口,留在我们根据需要使用。
通过以上步骤,您可以快速搭建一个基于 LangServe 的 NLP 应用,而且您可以根据需求扩展功能,整合更多的模型和服务。LangServe 的灵活性和易用性使得它成为构建 NLP 应用的理想选择。