import gradio as gr import requests import os # Функция диагностики def diagnose(): token = os.environ.get("HF_TOKEN", "") lines = ["🔍 Диагностика HF API", "="*40] # Проверка токена lines.append(f"Токен: {'✅ Есть' if token else '❌ Нет'}") # Проверка моделей models = ["gpt2", "microsoft/phi-2"] for model in models: try: headers = {"Authorization": f"Bearer {token}"} if token else {} response = requests.post( f"https://api-inference.huggingface.co/models/{model}", headers=headers, json={"inputs": "test", "parameters": {"max_length": 1}}, timeout=10 ) status = f"{model}: {'✅' if response.status_code == 200 else '❌ ' + str(response.status_code)}" except: status = f"{model}: ❌ Ошибка" lines.append(status) return "\n".join(lines) # Функция генерации def generate(prompt): try: response = requests.post( "https://api-inference.huggingface.co/models/gpt2", json={"inputs": prompt, "parameters": {"max_length": 100}}, timeout=30 ) if response.status_code == 200: return response.json()[0]['generated_text'] return f"Ошибка {response.status_code}" except: return "Ошибка соединения" # Интерфейс with gr.Blocks() as demo: gr.Markdown("# ИИ для игры") with gr.Tab("🤖 Генерация"): prompt = gr.Textbox(label="Промпт") generate_btn = gr.Button("Сгенерировать") output = gr.Textbox(label="Ответ") generate_btn.click(generate, prompt, output) with gr.Tab("🩺 Диагностика"): diagnose_btn = gr.Button("Запустить диагностику") diagnose_output = gr.Textbox(label="Результат", lines=10) diagnose_btn.click(diagnose, outputs=diagnose_output) demo.launch()