Spaces:
Running
Running
File size: 2,585 Bytes
fc396f9 649e9fd fc396f9 649e9fd fc396f9 649e9fd fc396f9 649e9fd fc396f9 649e9fd fc396f9 649e9fd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
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)
|