File size: 2,118 Bytes
8a6ff9d
55d1e22
837726c
d397212
55d1e22
 
 
 
d397212
55d1e22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
837726c
55d1e22
 
 
 
837726c
55d1e22
 
 
8a6ff9d
55d1e22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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()