File size: 1,850 Bytes
fd5930b 3f252cd d213bdd 812e3b0 e759fdd d213bdd fd5930b 3f193b0 3f252cd 41187d8 d213bdd 3f252cd d213bdd fd5930b 3785c13 d213bdd 3785c13 fd5930b 3371e44 fd5930b |
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 |
from transformers import AutoModelForCausalLM, AutoTokenizer
#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__)
scheduler = APScheduler()
def scheduleTask():
print(f"This test runs every 30 seconds {datetime.now()}")
scheduler.add_job(id = 'Scheduled Task', func=scheduleTask, trigger="interval", seconds=30)
scheduler.start()
# Чтобы защитить паролем конечную точку задания:
# @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")
def contact():
return "<h1>Контакты</h1><p>Свяжитесь с нами: email@example.com</p>"
if __name__ == "__main__":
app.run(debug=False, host='0.0.0.0', port=7860) |