File size: 3,895 Bytes
58cec34 2839144 d7f0eff 58cec34 d7f0eff 2839144 d7f0eff 2839144 d7f0eff 2839144 d7f0eff 2839144 d7f0eff 2839144 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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
#!/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 = """
<!DOCTYPE html>
<html>
<head>
<title>TEN Agent - Hugging Face Space</title>
<style>
body { font-family: Arial, sans-serif; line-height: 1.6; max-width: 800px; margin: 0 auto; padding: 20px; }
h1 { color: #333; }
.info { background: #f8f9fa; border-left: 4px solid #28a745; padding: 15px; margin-bottom: 20px; }
.endpoint { background: #e9ecef; padding: 10px; border-radius: 5px; font-family: monospace; }
</style>
</head>
<body>
<h1>TEN Agent запущен успешно!</h1>
<div class="info">
<p>TEN Agent API сервер работает на порту 8080.</p>
</div>
<h2>API эндпоинты:</h2>
<ul>
<li><span class="endpoint">GET /health</span> - проверка состояния сервера</li>
<li><span class="endpoint">GET /list</span> - список запущенных агентов</li>
<li><span class="endpoint">GET /graphs</span> - доступные графы</li>
</ul>
<p>См. <a href="https://github.com/TEN-framework/TEN-Agent" target="_blank">документацию TEN Agent</a> для получения дополнительной информации.</p>
</body>
</html>
"""
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()) |