网易首页 > 网易号 > 正文 申请入驻

100天搞定机器学习 番外:使用FastAPI构建机器学习API

0
分享至

↓↓↓点击关注,回复资料,10个G的惊喜

FastAPI

FastAPI 是一个高性能 Web 框架,用于构建 API。

FastAPI 建立在StarlettePydantic之上。

  • Starlette:轻量级的 ASGI 框架和工具包,用来构建高性能的 asyncio 服务

  • Pydantic:Python中用于数据接口schema定义与检查的库。通过它,可以更为规范地定义和使用数据接口。

想要深入学习这两个库,可以移步对应官方文档

https://pydantic-docs.helpmanual.io/ https://www.starlette.io/

实际应用中,FastAPI 需要与Uvicorn一起使用,Uvicorn主要用于加载和提供应用程序的服务器。

FastAPI和Uvicorn的使用方法

使用之前先安装

pip install fastapi
pip install uvicorn

看一个小例子,感受一下FastAPI 多方便,多简单:

from typing import Optional
from fastapi import FastAPI
import uvicorn
#创建FastAPI实例
app = FastAPI()

#创建访问路径
@app.get("/")
def read_root():#定义根目录方法
return {"message": "Hello World"}#返回响应信息

#定义方法,处理请求
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}

#运行
if __name__ == '__main__':
uvicorn.run(app, host="127.0.0.1", port=8000)

uvicron服务器运行之后可以尝试访问

http://127.0.0.1:8000/items/666,返回:

打开交互文档(Swagger UI):http://127.0.0.1:8000/docs
也可以访问API文档(ReDoc):http://127.0.0.1:8080/redoc

def main():
clf = LogisticRegression()
p = Pipeline([('clf', clf)])
print('Training model...')
p.fit(X, y)
print('Model trained!')

filename_p = 'IrisClassifier.pkl'
print('Saving model in %s' % filename_p)
joblib.dump(p, filename_p)
print('Model saved!')

if __name__ == "__main__":
print('Loading iris data set...')
iris = datasets.load_iris()
X, y = iris.data, iris.target
print('Dataset loaded!')
main()
第二步:创建FastAPI实例import uvicorn
from fastapi import FastAPI
import joblib
from os.path import dirname, join, realpath
from typing import List

app = FastAPI(
title="Iris Prediction Model API",
description="A simple API that use LogisticRegression model to predict the Iris species",
version="0.1",
)

# load model

with open(
join(dirname(realpath(__file__)), "models/IrisClassifier.pkl"), "rb"
) as f:
model = joblib.load(f)

def data_clean(str):
arr = str.split(',')
arr = list(map(float,arr))
return arr

# Create Prediction Endpoint
@app.get("/predict-result")
def predict_iris(request):
# perform prediction
request = data_clean(request)
prediction = model.predict([request])
output = int(prediction[0])
probas = model.predict_proba([request])
output_probability = "{:.2f}".format(float(probas[:, output]))

# output dictionary
species = {0: "Setosa", 1: "Versicolour", 2:"Virginica"}

# show results
result = {"prediction": species[output], "Probability": output_probability}
return result

if __name__ == '__main__':
uvicorn.run(app, host="127.0.0.1", port=8001)
第三步:传入参数

我们用模型预测属性为以下值时Iris应该属于哪一类,并输出预测概率。
sepal_length=7.233
sepal_width=4.652
petal_length=7.39
petal_width=0.324

打开网址,传入参数

http://127.0.0.1:8001/predict-result?request=7.233%2C4.652%2C7.39%2C0.324

bingo!





好文点个在看吧!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
贵客抵达北京!不到24小时,美财长发火:全世界只有中国敢接单

贵客抵达北京!不到24小时,美财长发火:全世界只有中国敢接单

离离言几许
2026-07-02 02:22:55
7月1日执行新规,进京走访得有省级文书,这几种情况不得进京上访

7月1日执行新规,进京走访得有省级文书,这几种情况不得进京上访

今朝牛马
2026-06-30 17:19:34
一家6口5本美国护照,却还在国内“捞金”,年营收上百亿

一家6口5本美国护照,却还在国内“捞金”,年营收上百亿

混沌录
2026-06-19 16:14:07
被拜仁偷走的12年!从巴西到美加墨,德国足球丢掉了那块“铁”

被拜仁偷走的12年!从巴西到美加墨,德国足球丢掉了那块“铁”

全景体育V
2026-07-01 10:47:43
支持率高达68%,高市信心大增,飞到中国身边,要帮莫迪赢下中国

支持率高达68%,高市信心大增,飞到中国身边,要帮莫迪赢下中国

兰妮搞笑分享
2026-07-01 17:55:43
“碳水脸”引争议,网友:令人不适的网络词!

“碳水脸”引争议,网友:令人不适的网络词!

中国日报
2026-05-21 15:28:00
“小非农”数据低于预期

“小非农”数据低于预期

财联社
2026-07-01 20:48:22
高下立判!思蕊梵赴法次日,与帕公主三大差距明显,谁也替代不了

高下立判!思蕊梵赴法次日,与帕公主三大差距明显,谁也替代不了

天马幸福的人生
2026-07-01 08:13:48
前 TikTok 网红美女沦为流浪汉,在美国街头站街维持生活

前 TikTok 网红美女沦为流浪汉,在美国街头站街维持生活

番外行
2026-06-07 16:02:21
90%女人承认:最难忘的男人,不是对她好的,而是给过这种感觉的

90%女人承认:最难忘的男人,不是对她好的,而是给过这种感觉的

荔子言
2026-06-11 22:22:49
看好谁进四强?世界杯1/4分区:墨西哥vs英格兰,巴西vs挪威

看好谁进四强?世界杯1/4分区:墨西哥vs英格兰,巴西vs挪威

懂球帝
2026-07-02 03:16:13
高分人数太多!南京期末考试成绩出炉!速看!

高分人数太多!南京期末考试成绩出炉!速看!

南京择校
2026-07-02 01:26:52
吉林女子控诉前夫不给孩子生活费,只能吃泡面,转头晒海景房自拍

吉林女子控诉前夫不给孩子生活费,只能吃泡面,转头晒海景房自拍

捣蛋窝
2026-06-15 07:31:15
再见了成龙,再见了李连杰,再见了甄子丹!中国动作片迎来新时代

再见了成龙,再见了李连杰,再见了甄子丹!中国动作片迎来新时代

手工制作阿歼
2026-07-01 09:06:06
中国的给力,出乎卢卡申科意料,人还没回国,中方就给了白俄惊喜

中国的给力,出乎卢卡申科意料,人还没回国,中方就给了白俄惊喜

古史青云啊
2026-06-30 19:47:03
央视罕见公开西太对峙细节!日舰模拟攻击辽宁舰,结果沉默?

央视罕见公开西太对峙细节!日舰模拟攻击辽宁舰,结果沉默?

青青衫书生
2026-06-30 13:24:21
借助美国“外挂”,乌军大开杀戒,普京忍无可忍,下达最后通牒

借助美国“外挂”,乌军大开杀戒,普京忍无可忍,下达最后通牒

掉了颗大白兔糖
2026-07-02 00:14:55
罗永浩为韩红发声:虽然我也捐过很多钱,但和她却完全比不了

罗永浩为韩红发声:虽然我也捐过很多钱,但和她却完全比不了

映射生活的身影
2026-06-30 16:37:05
假如俄罗斯这次战败了,世界将会发生什么?

假如俄罗斯这次战败了,世界将会发生什么?

阿芒娱乐说
2026-06-20 05:28:09
刚刚公布:天津千万资产、身价过亿富豪数量曝光!

刚刚公布:天津千万资产、身价过亿富豪数量曝光!

天津人
2026-07-01 15:16:37
2026-07-02 04:03:00
Ai学习的老章 incentive-icons
Ai学习的老章
Ai学习的老章
3450文章数 11169关注度
往期回顾 全部

科技要闻

Claude Code被曝“植入木马”识别中国用户

头条要闻

凯恩梅开二度 英格兰2-1逆转民主刚果将战墨西哥

头条要闻

凯恩梅开二度 英格兰2-1逆转民主刚果将战墨西哥

体育要闻

卖球衣救子的门将,把德国扑出了世界杯

娱乐要闻

77岁牛群公证裸捐全部财产,清贫独居坚持月捐

财经要闻

新氧贷款:宣传年化15%,实际顶格24%

汽车要闻

同比暴涨188.4% 方程豹6月热销35607台

态度原创

本地
游戏
手机
房产
公开课

本地新闻

强烈建议,全国高校都向这所大学看齐!

IGN 9分!任天堂第一方独占新游被吹爆:不容错过

手机要闻

TCL华星宣布独供REDMI K90至尊版屏幕:165Hz高刷 40+款游戏原生适配

房产要闻

洞察新局 | 2026年天河置业红盘图鉴

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版