File size: 2,525 Bytes
58cec34 2839144 d7f0eff 3c7d3b0 9f18430 58cec34 9f18430 db0df50 9f18430 db0df50 3da93f6 db0df50 3da93f6 db0df50 3da93f6 db0df50 2839144 d7f0eff db0df50 2839144 9f18430 db0df50 d7f0eff db0df50 d7f0eff |
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 |
#!/usr/bin/env python3
import os
import subprocess
import sys
import time
from pathlib import Path
import signal
import threading
def main():
processes = []
try:
# Пути к исполняемым файлам
api_binary = Path("/app/server/bin/api")
playground_dir = Path("/app/playground")
# Проверяем существование файлов
if not api_binary.exists():
print(f"ERROR: API binary not found at {api_binary}", file=sys.stderr)
return 1
if not playground_dir.exists():
print(f"ERROR: Playground directory not found at {playground_dir}", file=sys.stderr)
return 1
# Запускаем API сервер
print("Starting TEN-Agent API server on port 8080...")
api_process = subprocess.Popen([str(api_binary)])
processes.append(api_process)
# Даем API серверу время на запуск
time.sleep(3)
# Запускаем Playground UI в режиме dev на порту 7860 (порт Hugging Face)
print("Starting Playground UI in development mode on port 7860...")
os.environ["PORT"] = "7860"
os.environ["AGENT_SERVER_URL"] = "http://localhost:8080"
os.environ["NEXT_PUBLIC_EDIT_GRAPH_MODE"] = "true" # Включаем расширенный режим редактирования
playground_process = subprocess.Popen(
["pnpm", "dev"],
cwd=str(playground_dir),
env=os.environ
)
processes.append(playground_process)
# Ожидаем завершения процессов
for proc in processes:
proc.wait()
except KeyboardInterrupt:
print("Shutting down...")
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
finally:
# Завершение процессов
for proc in processes:
if proc and proc.poll() is None:
proc.terminate()
try:
proc.wait(timeout=5)
except subprocess.TimeoutExpired:
proc.kill()
return 0
if __name__ == "__main__":
# Корректная обработка сигналов
signal.signal(signal.SIGINT, lambda sig, frame: sys.exit(0))
signal.signal(signal.SIGTERM, lambda sig, frame: sys.exit(0))
sys.exit(main()) |