Spaces:
Running
Running
import os | |
import random | |
import requests | |
import gradio as gr | |
# Загрузка CSS стилей | |
css_url = "https://neurixyufi-aihub.static.hf.space/style.css" | |
try: | |
response = requests.get(css_url) | |
response.raise_for_status() # Поднимаем исключение, если статус ответа не 200 | |
css = response.text + " h1{text-align:center} /* Дополнительные стили, если нужны */" | |
except requests.exceptions.RequestException as e: | |
print(f"Ошибка при загрузке CSS: {e}") | |
css = " h1{text-align:center} /* Дополнительные стили, если нужны */" # Используем базовый стиль, если загрузка CSS не удалась | |
# Функция для отправки запроса к API searchgpt | |
def chat_with_searchgpt(user_message, history): | |
api_url = "https://text.pollinations.ai/searchgpt" | |
headers = { | |
"Content-Type": "application/json" | |
} | |
# Формируем массив сообщений | |
messages = [] | |
for msg in history: | |
messages.append({"role": "user", "content": msg[0]}) | |
messages.append({"role": "assistant", "content": msg[1]}) | |
messages.append({"role": "user", "content": user_message}) | |
data = { | |
"messages": messages | |
} | |
try: | |
response = requests.post(api_url, headers=headers, json=data) | |
response.raise_for_status() # Поднимаем исключение, если статус ответа не 200 | |
response_data = response.json() | |
bot_reply = response_data.get("response", "Извините, не удалось получить ответ.") | |
except requests.exceptions.RequestException as e: | |
bot_reply = f"Ошибка при запросе к API: {e}" | |
history.append((user_message, bot_reply)) | |
return history, "" | |
# Определение интерфейса | |
with gr.Blocks(css=css) as demo: | |
gr.Markdown("# Чат с SearchGPT") | |
chatbot = gr.Chatbot(label="Чат") | |
msg = gr.Textbox(label="Введите ваш запрос") | |
clear = gr.Button("Очистить чат") | |
# Функция для очистки чата | |
def clear_chat(): | |
return [], "" | |
# Обработка отправки сообщения | |
msg.submit(chat_with_searchgpt, [msg, chatbot], [chatbot, msg], concurrency_limit=250) | |
clear.click(clear_chat, None, [chatbot, msg], concurrency_limit=250) | |
# Запуск интерфейса | |
demo.launch(show_api=False, share=False) | |