#!/usr/bin/env python3 import os import subprocess import sys import time from pathlib import Path def main(): # Запустить TEN-Agent server_process = None try: # Путь к исполняемому файлу API сервера api_binary = Path("/app/server/bin/api") # Проверяем существование файла if not api_binary.exists(): print(f"ERROR: API binary not found at {api_binary}", file=sys.stderr) return 1 # Запускаем API сервер print("Starting TEN-Agent server...") server_process = subprocess.Popen([str(api_binary)]) # Запускаем простой HTTP сервер для отображения информации from http.server import HTTPServer, SimpleHTTPRequestHandler class CustomHandler(SimpleHTTPRequestHandler): def do_GET(self): if self.path == '/': self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers() html_content = """
TEN Agent API сервер работает на порту 8080.
См. документацию TEN Agent для получения дополнительной информации.
""" self.wfile.write(html_content.encode()) else: self.send_response(404) self.send_header('Content-type', 'text/plain') self.end_headers() self.wfile.write(b'Not Found') # Запускаем HTTP сервер port = 7860 # Hugging Face Space обычно ожидает сервер на порту 7860 print(f"Starting HTTP server on port {port}...") httpd = HTTPServer(('0.0.0.0', port), CustomHandler) httpd.serve_forever() except KeyboardInterrupt: print("Shutting down...") finally: # Завершаем API сервер при выходе if server_process: server_process.terminate() server_process.wait() return 0 if __name__ == "__main__": sys.exit(main())