TestTesting123's picture
Upload app.py
fdd259d verified
raw
history blame
1.68 kB
import os
import gradio as gr
from openai import OpenAI
# Проверяем API ключ
api_key = os.getenv("OPENROUTER_API_KEY")
if not api_key:
raise ValueError("OPENROUTER_API_KEY не найден в Secrets!")
# Создаём клиента OpenRouter
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=api_key
)
# Функция обработки сообщений чата
def ask_ai(user_input, history=[]):
if not user_input.strip():
return history, "Введите сообщение!"
try:
messages = [{"role": "system", "content": "Ты HR-бот, задавай вопросы."}]
# Добавляем историю чата
for h in history:
messages.append({"role": "user", "content": h[0]})
messages.append({"role": "assistant", "content": h[1]})
# Текущий пользовательский ввод
messages.append({"role": "user", "content": user_input})
# Вызов LLM
response = client.chat.completions.create(
model="anthropic/claude-3.5-sonnet",
messages=messages
)
answer = response.choices[0].message.content
history.append((user_input, answer))
return history, ""
except Exception as e:
return history, f"Ошибка при вызове AI: {e}"
# Интерфейс Gradio
with gr.Blocks() as demo:
chat = gr.Chatbot()
msg = gr.Textbox(placeholder="Напишите сообщение...")
state = gr.State([]) # история чата
msg.submit(ask_ai, inputs=[msg, state], outputs=[chat, msg])
# Запуск
demo.launch()