import gradio as gr import requests import json API_KEY = "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" def chat_with_bot(user_input): headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json", } payload = { "model": "qwen/qwen3-14b:free", "messages": [{"role": "user", "content": user_input}] } response = requests.post("https://openrouter.ai/api/v1/chat/completions", headers=headers, data=json.dumps(payload)) if response.status_code == 200: try: return response.json()["choices"][0]["message"]["content"] except: return "Ошибка обработки ответа" else: return f"Ошибка: {response.status_code} — {response.text}" ### Интерфейс для WEB (как раньше) with gr.Blocks(css="style.css") as demo: with gr.Column(elem_id="main-container"): textbox = gr.Textbox(label="", placeholder="Введите ваш вопрос", lines=2) output = gr.Textbox(label="", lines=6) button = gr.Button("Отправить", elem_id="send-button") button.click(chat_with_bot, inputs=textbox, outputs=output) ### ДОБАВЛЕНО: интерфейс для API (вызовов с React) api = gr.Interface(fn=chat_with_bot, inputs=gr.Textbox(), outputs=gr.Textbox()) ### Запуск обоих интерфейсов demo.launch() # запускаем и demo, и API api.launch(share=False, inline=False) # обязательно `inline=False` иначе web UI будет конфликтовать