mirror of https://github.com/leafspark/AutoGGUF
62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
import os
|
|
import sys
|
|
import threading
|
|
|
|
from PySide6.QtCore import QTimer
|
|
from PySide6.QtWidgets import QApplication
|
|
from AutoGGUF import AutoGGUF
|
|
from flask import Flask, jsonify
|
|
|
|
server = Flask(__name__)
|
|
|
|
|
|
@server.route("/v1/models", methods=["GET"])
|
|
def models():
|
|
if window:
|
|
return jsonify({"models": window.get_models_data()})
|
|
return jsonify({"models": []})
|
|
|
|
|
|
@server.route("/v1/tasks", methods=["GET"])
|
|
def tasks():
|
|
if window:
|
|
return jsonify({"tasks": window.get_tasks_data()})
|
|
return jsonify({"tasks": []})
|
|
|
|
|
|
@server.route("/v1/health", methods=["GET"])
|
|
def ping():
|
|
return jsonify({"status": "alive"})
|
|
|
|
|
|
@server.route("/v1/backends", methods=["GET"])
|
|
def get_backends():
|
|
backends = []
|
|
for i in range(window.backend_combo.count()):
|
|
backends.append(
|
|
{
|
|
"name": window.backend_combo.itemText(i),
|
|
"path": window.backend_combo.itemData(i),
|
|
}
|
|
)
|
|
return jsonify({"backends": backends})
|
|
|
|
|
|
def run_flask():
|
|
if os.environ.get("AUTOGGUF_SERVER", "").lower() == "true":
|
|
server.run(
|
|
host="0.0.0.0",
|
|
port=int(os.environ.get("AUTOGGUF_SERVER_PORT", 5000)),
|
|
debug=False,
|
|
use_reloader=False,
|
|
)
|
|
|
|
|
|
app = QApplication(sys.argv)
|
|
window = AutoGGUF()
|
|
window.show()
|
|
# Start Flask in a separate thread after a short delay
|
|
timer = QTimer()
|
|
timer.singleShot(100, lambda: threading.Thread(target=run_flask, daemon=True).start())
|
|
sys.exit(app.exec())
|