File size: 6,077 Bytes
58cec34
 
57b5794
 
58cec34
 
 
 
57b5794
 
58cec34
57b5794
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58cec34
57b5794
 
 
 
58cec34
57b5794
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58cec34
57b5794
 
 
 
58cec34
57b5794
 
 
 
58cec34
57b5794
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58cec34
57b5794
 
 
 
58cec34
57b5794
 
 
 
 
 
 
 
58cec34
57b5794
58cec34
57b5794
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/usr/bin/env python3
import os
import requests
from flask import Flask, render_template_string, send_from_directory, redirect, url_for, jsonify

# Порт для Hugging Face Spaces
HF_PORT = int(os.environ.get("PORT", 7860))

# Создаем Flask приложение
app = Flask(__name__, static_folder='info')

# HTML шаблон для главной страницы
index_html = """
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TEN Agent на Hugging Face</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            line-height: 1.6;
        }
        h1, h2 {
            color: #2563eb;
        }
        pre {
            background-color: #f1f5f9;
            padding: 15px;
            border-radius: 5px;
            overflow-x: auto;
        }
        .card {
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            padding: 15px;
            margin-bottom: 20px;
            background-color: #fff;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
        }
        .btn {
            display: inline-block;
            padding: 8px 16px;
            background-color: #2563eb;
            color: white;
            text-decoration: none;
            border-radius: 4px;
            margin-top: 10px;
        }
        .btn:hover {
            background-color: #1d4ed8;
        }
        .container {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
        }
        .feature {
            flex: 1 1 300px;
            border: 1px solid #e5e7eb;
            border-radius: 8px;
            padding: 15px;
            background-color: #f8fafc;
        }
    </style>
</head>
<body>
    <h1>TEN Agent на Hugging Face</h1>
    
    <div class="card">
        <h2>О проекте</h2>
        <p>TEN Agent - это разговорный голосовой ИИ-агент на базе TEN, интегрирующий Deepseek, Gemini, OpenAI, RTC и аппаратное обеспечение. Он обеспечивает возможности ИИ в реальном времени, такие как видение, слух и речь.</p>
    </div>
    
    <h2>Основные функции</h2>
    
    <div class="container">
        <div class="feature">
            <h3>Голосовой помощник</h3>
            <p>Создайте полнофункционального голосового помощника с возможностью реагировать на ваши запросы в реальном времени.</p>
        </div>
        
        <div class="feature">
            <h3>Интеграция с Dify и RAG</h3>
            <p>Интеграция с Dify для создания агентов с возможностями поиска и извлечения информации (RAG).</p>
        </div>
        
        <div class="feature">
            <h3>Gemini Multimodal</h3>
            <p>Поддержка Gemini Multimodal API с возможностями зрения и распознавания изображений экрана в реальном времени.</p>
        </div>
    </div>
    
    <h2>Документация</h2>
    <p>Для полноценной работы с TEN Agent, пожалуйста, обратитесь к официальной документации:</p>
    <ul>
        <li><a href="https://doc.theten.ai/ten-agent/overview" target="_blank">Обзор TEN Agent</a></li>
        <li><a href="https://doc.theten.ai/ten-agent/getting_started" target="_blank">Начало работы</a></li>
        <li><a href="https://github.com/TEN-framework/TEN-Agent" target="_blank">Репозиторий GitHub</a></li>
    </ul>
    
    <h2>API</h2>
    <p>Для взаимодействия с API TEN Agent через Hugging Face Spaces:</p>
    <pre>GET /api/info - Получить информацию о TEN Agent</pre>
    
    <a href="/api/info" class="btn">Проверить API</a>
</body>
</html>
"""

@app.route('/')
def index():
    """Главная страница"""
    return render_template_string(index_html)

@app.route('/api/info')
def api_info():
    """API для получения информации о TEN Agent"""
    return jsonify({
        "name": "TEN Agent",
        "version": "0.8.0",
        "description": "Разговорный голосовой ИИ-агент с возможностями видения, слуха и речи.",
        "documentation": "https://doc.theten.ai/ten-agent/overview",
        "repository": "https://github.com/TEN-framework/TEN-Agent",
        "features": [
            "Голосовой помощник",
            "Интеграция с Dify и RAG", 
            "Поддержка Gemini Multimodal API",
            "Рассказчик историй с генерацией изображений",
            "Интеграция с ESP32 для аппаратных решений"
        ]
    })

@app.route('/static/<path:path>')
def serve_static(path):
    """Обслуживание статических файлов"""
    return send_from_directory('info', path)

if __name__ == '__main__':
    # Получаем информацию о TEN Agent с GitHub для актуализации данных
    try:
        github_url = "https://api.github.com/repos/TEN-framework/TEN-Agent"
        repo_info = requests.get(github_url).json()
        print(f"TEN Agent на GitHub: {repo_info.get('stargazers_count', '?')} звезд")
    except Exception as e:
        print(f"Не удалось получить информацию с GitHub: {e}")
    
    # Запускаем веб-сервер
    print(f"Запуск веб-сервера на порту {HF_PORT}...")
    app.run(host='0.0.0.0', port=HF_PORT)