| 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() |