跳到主要内容

Gradio 配合 FastAPI 搭建交互式Web应用与REST API服务

· 阅读需 1 分钟
素明诚
Full stack development

虚拟环境准备

进入项目文件夹,创建虚拟环境

python -m venv venv

激活环境

source venv/bin/activate  # 在Windows上使用 venv\Scripts\activate.bat

安装依赖

pip install gradio fastapi uvicorn

编写核心代码

在一个 Python 文件(例如core_logic.py)中编写你的核心逻辑。

def login(username, password):
if username == "admin" and password == "123123":
return "Login successful!"
else:
return "Login failed. Please check your credentials."

使用 gradio 创建页面

在另一个 Python 文件(例如gradio_app.py)中创建 Gradio 界面。

import gradio as gr
from core_logic import login

iface = gr.Interface(
fn=login,
inputs=["text", "password"],
outputs="text"
)

if __name__ == "__main__":
iface.launch()

创建 FastAPI 应用

在另一个 Python 文件(例如fastapi_app.py)中创建 FastAPI 应用

from fastapi import FastAPI
from pydantic import BaseModel
from core_logic import login

app = FastAPI()

class LoginData(BaseModel):
username: str
password: str

@app.post("/login/")
async def api_login(data: LoginData):
return {"message": login(data.username, data.password)}

if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=7861)

运行应用

为 Gradio 界面运行gradio_app.py,并通过浏览器访问 Gradio 界面。

python gradio_app.py

为 FastAPI 应用运行fastapi_app.py,并通过浏览器或 API 客户端访问 FastAPI 提供的接口。

python fastapi_app.py

PS:这只是一个模板,如果想继续添加 UI 界面或者是接口需要你自己继续开发