|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
def check_dependencies():
|
|
"""Проверяет, установлены ли все необходимые зависимости"""
|
|
try:
|
|
import flask
|
|
import torch
|
|
import transformers
|
|
print("✅ Все необходимые зависимости установлены.")
|
|
return True
|
|
except ImportError as e:
|
|
print(f"❌ Отсутствуют зависимости: {e}")
|
|
return False
|
|
|
|
def install_dependencies():
|
|
"""Устанавливает необходимые зависимости из requirements.txt"""
|
|
print("📦 Установка зависимостей...")
|
|
try:
|
|
subprocess.check_call([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"])
|
|
print("✅ Зависимости успешно установлены!")
|
|
return True
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"❌ Ошибка при установке зависимостей: {e}")
|
|
return False
|
|
|
|
def run_app():
|
|
"""Запускает Flask-приложение"""
|
|
print("🚀 Запуск Mistral AI Assistant...")
|
|
print("⚠️ Первый запуск может занять некоторое время, пока загружается модель.")
|
|
try:
|
|
from app import app
|
|
app.run(debug=True, port=5000)
|
|
except Exception as e:
|
|
print(f"❌ Ошибка при запуске приложения: {e}")
|
|
|
|
def main():
|
|
print("="*50)
|
|
print("🤖 Mistral AI Assistant - Установка и запуск")
|
|
print("="*50)
|
|
|
|
|
|
if not check_dependencies():
|
|
print("\nНеобходимо установить зависимости.")
|
|
choice = input("Установить зависимости сейчас? (y/n): ").lower()
|
|
if choice == 'y':
|
|
if not install_dependencies():
|
|
print("❌ Не удалось установить зависимости. Пожалуйста, установите их вручную.")
|
|
return
|
|
else:
|
|
print("⚠️ Для работы приложения необходимо установить зависимости.")
|
|
print("Выполните: pip install -r requirements.txt")
|
|
return
|
|
|
|
|
|
run_app()
|
|
|
|
if __name__ == "__main__":
|
|
main() |