You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI端点无法访问求助:Swagger UI无可用测试端点

问题排查与解决方案

核心问题分析

你的情况核心在于OpenAPI文档生成失败,导致Swagger UI无法显示端点,同时根路径访问异常。最可能的原因是Cancer_Severity模型的定义或导入存在问题——FastAPI依赖Pydantic模型生成接口Schema,一旦模型不符合要求,会直接影响接口文档的生成和路由的正常识别。

分步修复方案

1. 验证Cancer_Severity模型定义

打开BaseModel.py,确保模型正确继承自Pydantic的BaseModel,且字段定义与代码中读取的键完全匹配:

# BaseModel.py 正确示例
from pydantic import BaseModel

class Cancer_Severity(BaseModel):
    Age: int
    Shape: int
    Margin: int
    Density: int
  • 必须明确继承BaseModel,否则FastAPI无法将其识别为请求参数模型
  • 字段名大小写敏感,要和predict函数中data['Age']等读取的键完全一致

2. 确认服务启动方式

确保通过以下两种标准方式之一启动服务:

  • 直接运行脚本:python your_script_name.py
  • 使用uvicorn命令启动:uvicorn your_script_name:app --host 127.0.0.1 --port 8000 --reload
    避免使用未正确加载app实例的自定义启动逻辑。

3. 修复根路径访问异常

初始化FastAPI时显式指定文档元数据,确保OpenAPI Schema正常生成:

app = FastAPI(title="癌症严重程度预测API", version="1.0.0")

重启服务后,访问http://127.0.0.1:8000/应该能看到FastAPI默认欢迎信息,而非“details not found”。

4. 验证端点显示

完成上述步骤后,重新访问http://127.0.0.1:8000/docs,Swagger UI应显示三个端点:

  • GET /:欢迎信息接口
  • GET /Welcome:带用户名参数的欢迎接口
  • POST /predict:预测接口(会自动显示HTTP Basic认证入口和请求参数表单)

5. 测试认证与预测功能

在Swagger UI中测试POST /predict接口:

  1. 点击Authorize按钮,输入用户名admin和密码password完成认证
  2. 在请求体中填入符合规则的参数(例如Age: 50, Shape: 2, Margin: 3, Density: 1)
  3. 点击Execute即可获取预测结果

额外排查点

如果以上步骤无效,检查以下内容:

  • 确认new_mammo_model.pkl文件路径正确,可在加载模型后添加print("模型加载成功")验证是否静默报错
  • 升级依赖包确保版本兼容:
    pip install --upgrade fastapi pydantic uvicorn
    

内容的提问来源于stack exchange,提问作者Victor Imah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 07:42:50