|
|
|
import os |
|
import requests |
|
from flask import Flask, render_template_string, send_from_directory, redirect, url_for, jsonify |
|
|
|
|
|
HF_PORT = int(os.environ.get("PORT", 7860)) |
|
|
|
|
|
app = Flask(__name__, static_folder='info') |
|
|
|
|
|
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__': |
|
|
|
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) |