问题场景:
在Docker容器中运行Python服务,通过Nginx做反向代理进行访问。
问题描述:
Docker容器中搭建Python服务,通过Nginx做反向代理,宿主机通过代理进行访问出现下面类型错误:
问题分析:
通过错误提示可以看出是文件路径问题
问题解决:
添加root_path即可
import uvicorn
from fastapi import FastAPI
import numpy as np
app = FastAPI(root_path="/Nemo-asr")
@app.post("/nemo_asr/{filename}", tags=['test'])
def nemo_asr(filename):
print("Automatic Speech Recognition")
files = [filename]
transcript = app.asr.transcribe(paths2audio_files=files)[0]
print(transcript)
return transcript
@app.on_event("startup")
def startup():
import nemo.collections.asr as nemo_asr
print(f"Model loaded {nemo_asr}")
app.asr = nemo_asr.models.EncDecCTCModel.from_pretrained(model_name="QuartzNet15x5Base-En")
print("Model loaded successfully")
# 服务启动
if __name__ == '__main__':
uvicorn.run(app=app, host="0.0.0.0", port=6001, workers=1, root_path="/Nemo-asr")
nginx.conf配置文件
主要配置文件内容
server {
listen 6001;
location ^~/Nemo-asr/{
proxy_pass http://Nemo-asr/;
}
}
upstream Nemo-asr {
server 127.0.0.1:6002;
}
参考链接:
FastAPI: FastAPI.