Spaces:
Paused
Paused
File size: 2,768 Bytes
ff7f049 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #Flask-APScheduler
from flask_basicauth import BasicAuth
from datetime import datetime
from flask_apscheduler import APScheduler
from flask import Flask
from flsak import request
model_name = "inclusionAI/Ring-mini-2.0"
print(f"load model {model_name}")
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto",
trust_remote_code=True
)
print(f"load tokenizer {model_name}")
tokenizer = AutoTokenizer.from_pretrained(model_name)
app = Flask(__name__)
# prompt = "Напиши стих про шинное обучение"
# print(response)
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"Qwen/Qwen3-ASR-1.7B",
dtype=torch.bfloat16,
device_map="cuda:0",
# device_map="cpu",
# attn_implementation="flash_attention_2",
max_inference_batch_size=32, # Batch size limit for inference. -1 means unlimited. Smaller values can help avoid OOM.
max_new_tokens=256, # Maximum number of tokens to generate. Set a larger value for long audio input.
)
import datetime
start=datetime.datetime.now()
results = model.transcribe(
audio="https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_en.wav",
language=None, # set "English" to force the language
)
# Чтобы защитить паролем конечную точку задания:
# @basic_auth.required
basic_auth = BasicAuth(app)
app.config['BASIC_AUTH_REALM'] = 'realm'
app.config['BASIC_AUTH_USERNAME'] = 'vova'
app.config['BASIC_AUTH_PASSWORD'] = 'vova'
print(f"Flask app")
# Главная страница
@app.route("/", methods=['POST', 'GET']) #
@basic_auth.required
def root():
if request.args.get('logs'): #logs=container ?logs=container&__theme=system
return f"<h1>Главная logs</h1>"
else:
return f"<h1>Главная страница</h1><p>Добро пожаловать!</p><p>current model {model_name}</p>"
# Страница "О нас"
@app.route("/about")
def about():
return "<h1>О нас</h1><p>Мы изучаем Flask!</p>"
# Страница "Контакты"
@app.route("/contact")
@basic_auth.required
def contact():
import datetime
start=datetime.datetime.now()
results = model.transcribe(
audio="https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-ASR-Repo/asr_en.wav",
language=None, # set "English" to force the language)
print(f'duration {datetime.datetime.now()-start}')
print(results[0].language)
print(results[0].text)
return f"<h1>Контакты</h1><p>duration {datetime.datetime.now()-start}</p><p>results[0].text</p>"
if __name__ == "__main__":
app.run(debug=False, host='0.0.0.0', port=7860) root@telebot1:/opt/HF/TruVlad/flaskapi# |