如何仅用FastAPI结合Postman实现模型调用选择菜单及对应POST方法执行?
实现方案:FastAPI + Postman 模型接口选择调用
一、FastAPI 后端准备
先确保你已完成两个模型的POST接口开发,示例代码如下(可根据实际业务调整请求体和推理逻辑):
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() # 定义统一请求体结构(适配两个模型的输入) class ModelInput(BaseModel): data: str # 可替换为你的模型实际输入字段,如数值、数组等 # method_1 模型推理接口 @app.post("/method_1") def run_method_1(input_data: ModelInput): # 此处替换为你的model_1推理逻辑 result = f"method_1 处理结果:{input_data.data}" return {"status": "success", "result": result} # method_2 模型推理接口 @app.post("/method_2") def run_method_2(input_data: ModelInput): # 此处替换为你的model_2推理逻辑 result = f"method_2 处理结果:{input_data.data}" return {"status": "success", "result": result}
启动服务:执行uvicorn main:app --reload,确保两个接口能正常接收POST请求。
二、Postman 实现选择菜单与调用流程
Postman无原生可视化菜单,但可通过「集合变量+脚本+Runner」实现交互式选择调用,步骤如下:
1. 创建Postman集合与请求
- 新建集合,命名为
模型调用集合 - 在集合下创建3个请求:
- 第一个请求命名为
选择模型方法(用于触发选择逻辑) - 第二个请求命名为
调用method_1:请求地址设为http://127.0.0.1:8000/method_1,方法选POST,Body选raw->JSON,填入测试用请求体(如{"data": "测试输入"}) - 第三个请求命名为
调用method_2:请求地址设为http://127.0.0.1:8000/method_2,同样配置POST方法和JSON请求体
- 第一个请求命名为
2. 配置集合变量
进入集合的Variables标签页,添加变量selected_method,初始值设为0,用于存储用户选择的方法编号。
3. 编写选择逻辑脚本
在选择模型方法请求的Pre-request Script中添加代码:
// 弹出选择对话框,让用户选择要调用的方法 const choice = pm.prompt("请选择模型方法:\n1. method_1\n2. method_2", "1"); // 将选择结果存入集合变量 pm.collectionVariables.set("selected_method", choice);
4. 设置请求触发逻辑
进入集合的Tests标签页,添加代码根据选择结果调用对应接口:
const selected = pm.collectionVariables.get("selected_method"); if (selected === "1") { pm.sendRequest(pm.collection.items.get("调用method_1"), (err, res) => { console.log("method_1 响应结果:", res.json()); }); } else if (selected === "2") { pm.sendRequest(pm.collection.items.get("调用method_2"), (err, res) => { console.log("method_2 响应结果:", res.json()); }); } else { console.log("无效选择,请输入1或2"); }
5. 执行选择与调用流程
- 打开Postman的
Runner,选择模型调用集合 - 仅勾选
选择模型方法请求,点击Run 模型调用集合 - 弹出选择框后输入1或2,Postman会自动调用对应接口,并在控制台输出响应结果
三、简化方案:手动切换环境变量
若不需要交互式弹窗,可直接通过环境变量快速切换:
- 创建环境,添加变量
method_path,值设为/method_1或/method_2 - 创建通用POST请求,地址设为
http://127.0.0.1:8000{{method_path}} - 需要切换方法时,修改环境变量的
method_path值即可发送请求
内容的提问来源于stack exchange,提问作者Legna
相关产品推荐
相关产品推荐

