简介
`LangServe` 是一个 `Python` 包,专门用于将基于 `LangChain` 的程序和链部署为生产就绪的 API。 
- **易于调试**:它提供了一个 `Playground`,允许开发者实时地与他们的智能机器人互动,测试不同的输入并查看即时输出,这有助于快速迭代和调试。
- **支持并发**:它支持并发请求,这意味着多个用户可以同时使用部署的服务而不会出现性能问题。
- **安全性**:提供了一些安全性措施,如请求追踪,确保数据传输的安全。
- **支持流式传输和异步调用**:支持流式传输和异步调用,这对于需要实时反馈或处理大量数据的应用程序来说非常有用。
本文通过一个简单的应用演示`LangServe`如何使用。
安装`LangServe`
pip install "langserve[all]"
创建链
创建一个问答链,它提供简单地翻译功能。
from fastapi import FastAPI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_ollama.llms import OllamaLLM
from langserve import add_routes
# 1. 创建提示词模板
system_template = "Translate the following into {language}:"
prompt_template = ChatPromptTemplate.from_messages([
    ('system', system_template),
    ('user', '{text}')
])
# 2. 创建本地大模型
model = OllamaLLM(model="llama3.1")
# 3. 创建解析器
parser = StrOutputParser()
# 4. 创建链
chain = prompt_template | model | parser
至此,一个简单的问答链已经创建好了。
运行它需要两个参数:`language`、`text`。
 请提前通过 `ollama run llmama3.1` 在本地启动大模型。
使用`langServe`将链包装为`API`
# 5. App 定义
app = FastAPI(
  title="LangChain Server",
  version="1.0",
  description="使用 LangChain 的 Runnable 接口的简单 API 服务器。",
)
# 6. 添加链的路由
add_routes(
    app,
    chain,
    path="/translate",
)
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="localhost", port=8010)
启动测试
启动此程序,出现类似下面的输出则说明启动成功。
根据上图的信息,在浏览器输入`http://localhost:8010/translate/playground/` 玩一下此接口。
我们也可以打开接口文档,可以看见它还提供了很多其它接口,留在我们根据需要使用。
上述接口还包含了批量处理以及stream处理方式。
下载源代码
- [gitee]
- [github]
参考
- 使用LangServe做API开放本地大模型的能力
🪐祝好运🪐
                    
                
                
            
        
浙公网安备 33010602011771号