gradiogpt / app.py
Serg4451D's picture
Update app.py
3efe291 verified
import gradio as gr
from g4f.Provider import Blackbox
from g4f import ChatCompletion
import g4f
# История сообщений для каждого чата
def create_chat():
return []
def chat_with_claude(message, history):
try:
# Формируем контекст из истории
messages = []
for human, assistant in history:
messages.append({"role": "user", "content": human})
messages.append({"role": "assistant", "content": assistant})
messages.append({"role": "user", "content": message})
# Получаем ответ от Claude
response = ChatCompletion.create(
model="claude-3.5-sonnet",
provider=Blackbox,
messages=messages,
stream=False
)
return str(response)
except Exception as e:
return f"Произошла ошибка: {str(e)}"
# Создаем интерфейс Gradio
def create_interface():
with gr.Blocks(css="footer {display: none}") as demo:
gr.Markdown("""
# Чат с Claude AI
Введите ваше сообщение и получите ответ от AI ассистента.
""")
chatbot = gr.Chatbot(
height=600,
show_label=False,
container=True,
bubble_full_width=False,
)
with gr.Row():
txt = gr.Textbox(
scale=4,
show_label=False,
placeholder="Введите ваше сообщение здесь...",
container=False,
)
submit_btn = gr.Button("Отправить", scale=1)
clear_btn = gr.Button("Очистить", scale=1)
txt.submit(
chat_with_claude,
[txt, chatbot],
[chatbot],
clear_input=True,
)
submit_btn.click(
chat_with_claude,
[txt, chatbot],
[chatbot],
clear_input=True,
)
clear_btn.click(lambda: None, None, chatbot, queue=False)
return demo
# Запускаем интерфейс
if __name__ == "__main__":
demo = create_interface()
demo.launch(
server_name="0.0.0.0", # Доступ с любого IP
server_port=7860, # Порт по умолчанию для Gradio
share=True, # Создание публичной ссылки
)