Nurisslam's picture
Update app.py
75968f7 verified
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 будет конфликтовать