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