解读FastAPI异步化为transformers模型打造高性能接口解析

bash 复制代码
from fastapi import FastAPI
from transformers import AutoModel, AutoTokenizer
import numpy as np
from starlette.responses import JSONResponse
 
 app = FastAPI()

加载模型和分词器

bash 复制代码
model = AutoModel.from_pretrained("distilbert-base-uncased")
  tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")

异步函数用于将输入文本转换为模型需要的格式

bash 复制代码
  async def prepare_input_for_model(text: str):
       inputs = tokenizer.encode(text, return_tensors='pt')
           return inputs

异步函数用于模型预测

bash 复制代码
 async def get_prediction(inputs):
        outputs = model(inputs)
        return outputs.logits

异步接口用于处理HTTP请求并返回预测结果

bash 复制代码
   @app.post("/predict")
   async def predict(text: str):
             inputs = await prepare_input_for_model(text)
             outputs = await get_prediction(inputs)
             predictions = np.argmax(outputs.numpy(), axis=-1)
             return JSONResponse(content={"prediction": predictions[0]})

这段代码展示了如何使用FastAPI框架的异步功能来提高性能。通过异步函数prepare_input_for_model和get_prediction,我们能够处理并行任务,有效利用服务器资源。这样的设计模式对于需要处理大量并发请求的应用程序非常有用。

相关推荐
CodeCraft Studio17 分钟前
国产化Excel开发组件Spire.XLS教程:Python 将 CSV 转换为 Excel(.XLSX)
windows·python·excel·csv转excel·spire·excel开发
大神薯条老师18 分钟前
Python从入门到高手9.4节-基于字典树的敏感词识别算法
爬虫·python·深度学习·机器学习·数据分析
一袋米扛几楼9823 分钟前
【物联网】BLE 系统架构全景图
python·物联网·aws
hvinsion30 分钟前
【开源工具】基于Flask与Socket.IO的跨平台屏幕监控系统实战(附完整源码)
javascript·python·flask·开源·socket.io·屏幕监控·web实战
李昊哲小课1 小时前
「从 0 到 1」的 Python-requests 爬虫完整教程
爬虫·python
yzx9910132 小时前
使用Python和GitHub构建京东数据自动化采集项目
c语言·开发语言·人工智能·python
yannan201903132 小时前
【Python】QT(PySide2、PyQt5):Qt Designer,VS Code使用designer,可能的报错
开发语言·python·qt
乔公子搬砖4 小时前
构建企业级RAG系统:基于Milvus的模块化实现与全流程解析
大数据·人工智能·python·ai·milvus·rag·向量库
程序员小杰@4 小时前
【MCP系列教程】 Python 实现 FastMCP StreamableHTTP MCP:在通义灵码 IDE 开发并部署至阿里云百炼
开发语言·python·阿里云
摘星编程4 小时前
Python 多线程日志错乱:logging.Handler 的并发问题
java·开发语言·python·python多线程·queuehandler