TestTesting123 commited on
Commit
6fd52e8
·
verified ·
1 Parent(s): 54b3f9f

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ from openai import OpenAI
4
+
5
+ # Проверка API ключа
6
+ api_key = os.getenv("OPENROUTER_API_KEY")
7
+ if not api_key:
8
+ raise ValueError("OPENROUTER_API_KEY не найден в Secrets!")
9
+
10
+ # Создаем клиента OpenRouter
11
+ client = OpenAI(
12
+ base_url="https://openrouter.ai/api/v1",
13
+ api_key=api_key
14
+ )
15
+
16
+ # Функция обработки сообщений чата
17
+ def ask_ai(user_input, history=[]):
18
+ if not user_input.strip():
19
+ return history, "Введите сообщение!"
20
+ try:
21
+ # Системный промпт
22
+ messages = [{"role": "system", "content": "Ты HR-бот, задавай вопросы."}]
23
+ # Добавляем только последние 6 сообщений истории
24
+ for h in history[-6:]:
25
+ messages.append({"role": "user", "content": h[0]})
26
+ messages.append({"role": "assistant", "content": h[1]})
27
+ # Добавляем текущее сообщение пользователя
28
+ messages.append({"role": "user", "content": user_input})
29
+
30
+ # Вызов LLM с ограничением токенов
31
+ response = client.chat.completions.create(
32
+ model="anthropic/claude-3.5-sonnet",
33
+ messages=messages,
34
+ max_tokens=1000 # ограничение токенов для вашего ключа
35
+ )
36
+
37
+ # Получаем ответ
38
+ answer = response.choices[0].message.content
39
+ history.append((user_input, answer))
40
+ return history, ""
41
+ except Exception as e:
42
+ return history, f"Ошибка при вызове AI: {e}"
43
+
44
+ # Интерфейс Gradio
45
+ with gr.Blocks() as demo:
46
+ chat = gr.Chatbot()
47
+ msg = gr.Textbox(placeholder="Напишите сообщение...")
48
+ state = gr.State([]) # история чата
49
+ msg.submit(ask_ai, inputs=[msg, state], outputs=[chat, msg])
50
+
51
+ # Запуск
52
+ demo.launch()