File size: 958 Bytes
cce56fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import gradio as gr
import fastapi

# 1. 定义 FastAPI 应用
api_app = fastapi.FastAPI(
    # 我们需要在文档中看到正确的URL,所以要在这里配置服务器信息
    servers=[{"url": "/api", "description": "API server"}]
)

@api_app.get("/")
def read_api_root():
    return {"message": "FastAPI API root."}

@api_app.get("/calculate")
def calculate_sum(a: float, b: float):
    return {"result": a + b}

# 2. 定义 Gradio 界面
with gr.Blocks() as demo:
    gr.Markdown(
        """

        # API 启动成功!

        这是一个由 Gradio 驱动的界面。你的 FastAPI 应用已被成功挂载。

        - **API 文档 (Swagger UI) 位于**: [./api/docs](./api/docs)

        """
    )

# 3. 将 FastAPI 挂载到 Gradio 的根 FastAPI 实例上
# demo.app 是 Gradio 底层的 FastAPI 实例
demo.app.mount("/api", api_app)

# 4. 启动 Gradio 应用
if __name__ == "__main__":
    demo.launch()