【大模型系列】使用fastapi为langchain应用快速对外提供restful api
浏览器访问:http://localhost:8000/llm_chain/playground/可进入api调试界面。点击start,调用接口调试。以下是一个简单的例子。执行main方法启动。
·
我们可以通过fastapi为我们的langchain应用向外暴露endpoint,操作如下:
安装依赖
# 安装 LangServe
pip install langserve[all]
# 也可以只安装一端
pip install "langserve[client]"
pip install "langserve[server]"
pip install uvicorn
pip install fastapi
fastapi 入门可以参考: https://www.runoob.com/fastapi/fastapi-tutorial.html
官网: https://fastapi.tiangolo.com/
接口开发和调试
以下是一个简单的例子
from fastapi import FastAPI
from langchain_openai import ChatOpenAI
from langserve import add_routes
from pydantic import BaseModel
import uvicorn
from langchain.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, World!"}
class Data(BaseModel):
output: str
def llm_chain():
prompt = PromptTemplate.from_template("写一关于{subject}首诗,30字以内")
llm = ChatOpenAI(model="gpt-4o-mini")
chain = prompt | llm | StrOutputParser()
return chain
# Add routes immediately when the module is imported
add_routes(
app,
llm_chain(),
path="/llm_chain",
# 注意:如果要允许其他程序通过接口调用,则这个参数需要加;启用enabled_endpoints等n个端点(可以自定义名称,playground,stream_log是调试必须要的)
enabled_endpoints=("invoke", "batch", "config_hashes", "playground", "stream_log"),
)
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
执行main方法启动
浏览器访问:http://localhost:8000/llm_chain/playground/ 可进入api调试界面
点击start,调用接口调试
接口调用
参考如下代码
import requests
response = requests.post(
# 这里的请求路径需要在上面的enabled_endpoints白名单里
"http://localhost:8000/llm_chain/invoke", json={"input": {"subject": "夏天"}}
)
print(response.json())
返回值如下:
over~~
更多推荐
所有评论(0)