vortex123 commited on
Commit
903a112
·
verified ·
1 Parent(s): dc2732a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -26
app.py CHANGED
@@ -3,7 +3,7 @@ from openai import OpenAI
3
 
4
  # Инициализация клиента DeepSeek
5
  client = OpenAI(
6
- api_key="sk-a02694cf3c8640c9ae60428ee2c5a62e", # <-- Замените на ваш ключ
7
  base_url="https://api.deepseek.com"
8
  )
9
 
@@ -42,7 +42,6 @@ def chat_with_deepseek(user_message, history):
42
  ]
43
  return new_history, new_history, "" # Третий выход очистит поле ввода
44
 
45
- # Создаём приложение Gradio
46
  with gr.Blocks(
47
  theme=gr.themes.Base(
48
  primary_hue="slate",
@@ -66,20 +65,19 @@ with gr.Blocks(
66
  #chatbot {
67
  background-color: #111111 !important;
68
  }
69
- """) as demo:
70
-
71
- gr.Markdown(
72
- """
73
- <h1 style="text-align:center; color:#ffffff;">Чат с deepseek-reasoner</h1>
74
- <p style="text-align:center; color:#cccccc;">
75
- <strong>Enter</strong> отправить сообщение;
76
- <strong>Ctrl+Enter</strong> — перенос строки
77
- </p>
78
- """,
79
- unsafe_allow_html=True
80
- )
81
-
82
- # Компонент Chatbot с открытым форматом "messages"
83
  chatbot = gr.Chatbot(
84
  label="Диалог",
85
  height=400,
@@ -87,7 +85,7 @@ with gr.Blocks(
87
  elem_id="chatbot"
88
  )
89
 
90
- # Поле ввода (2 строки по умолчанию)
91
  msg = gr.Textbox(
92
  label="Ваш вопрос",
93
  placeholder="Введите сообщение...",
@@ -95,13 +93,13 @@ with gr.Blocks(
95
  elem_id="user_input"
96
  )
97
 
98
- # Скрытая кнопка отправки (не будет отображаться в интерфейсе)
99
  hidden_send_btn = gr.Button("Скрытая кнопка", visible=False, elem_id="hidden_send_btn")
100
 
101
- # Храним историю сообщений
102
  state = gr.State([])
103
 
104
- # Логика при "клике" на скрытую кнопку
105
  hidden_send_btn.click(
106
  fn=chat_with_deepseek,
107
  inputs=[msg, state],
@@ -109,9 +107,7 @@ with gr.Blocks(
109
  scroll_to_output=True
110
  )
111
 
112
- # Подключаем кастомный JS, чтобы:
113
- # - Enter => клик по скрытой кнопке (отправка)
114
- # - Ctrl+Enter => вставка "\n"
115
  custom_js = """
116
  <script>
117
  document.addEventListener('DOMContentLoaded', function() {
@@ -122,15 +118,13 @@ with gr.Blocks(
122
  userInput.addEventListener('keydown', function(e) {
123
  if (e.key === 'Enter') {
124
  if (e.ctrlKey) {
125
- // Ctrl+Enter => перенос строки
126
  e.preventDefault();
127
  const start = userInput.selectionStart;
128
  const end = userInput.selectionEnd;
129
- userInput.value = userInput.value.substring(0, start) + "\\n"
130
  + userInput.value.substring(end);
131
  userInput.selectionStart = userInput.selectionEnd = start + 1;
132
  } else {
133
- // Enter => отправка
134
  e.preventDefault();
135
  sendButton.click();
136
  }
 
3
 
4
  # Инициализация клиента DeepSeek
5
  client = OpenAI(
6
+ api_key="sk-a02694cf3c8640c9ae60428ee2c5a62e", # <-- Замените на свой ключ
7
  base_url="https://api.deepseek.com"
8
  )
9
 
 
42
  ]
43
  return new_history, new_history, "" # Третий выход очистит поле ввода
44
 
 
45
  with gr.Blocks(
46
  theme=gr.themes.Base(
47
  primary_hue="slate",
 
65
  #chatbot {
66
  background-color: #111111 !important;
67
  }
68
+ """
69
+ ) as demo:
70
+
71
+ # HTML-блок с заголовком и подсказкой по Enter/Ctrl+Enter
72
+ gr.HTML("""
73
+ <h1 style="text-align:center; color:#ffffff;">Чат с deepseek-reasoner</h1>
74
+ <p style="text-align:center; color:#cccccc;">
75
+ <strong>Enter</strong> — отправить сообщение;
76
+ <strong>Ctrl+Enter</strong> — новая строка
77
+ </p>
78
+ """)
79
+
80
+ # Компонент Chatbot
 
81
  chatbot = gr.Chatbot(
82
  label="Диалог",
83
  height=400,
 
85
  elem_id="chatbot"
86
  )
87
 
88
+ # Поле ввода (2 строки)
89
  msg = gr.Textbox(
90
  label="Ваш вопрос",
91
  placeholder="Введите сообщение...",
 
93
  elem_id="user_input"
94
  )
95
 
96
+ # Скрытая кнопка, на которую будем «кликать» через JS
97
  hidden_send_btn = gr.Button("Скрытая кнопка", visible=False, elem_id="hidden_send_btn")
98
 
99
+ # Состояние с историей
100
  state = gr.State([])
101
 
102
+ # При клике на кнопку — вызываем chat_with_deepseek
103
  hidden_send_btn.click(
104
  fn=chat_with_deepseek,
105
  inputs=[msg, state],
 
107
  scroll_to_output=True
108
  )
109
 
110
+ # JS: Enter => отправка, Ctrl+Enter => перенос
 
 
111
  custom_js = """
112
  <script>
113
  document.addEventListener('DOMContentLoaded', function() {
 
118
  userInput.addEventListener('keydown', function(e) {
119
  if (e.key === 'Enter') {
120
  if (e.ctrlKey) {
 
121
  e.preventDefault();
122
  const start = userInput.selectionStart;
123
  const end = userInput.selectionEnd;
124
+ userInput.value = userInput.value.substring(0, start) + "\\n"
125
  + userInput.value.substring(end);
126
  userInput.selectionStart = userInput.selectionEnd = start + 1;
127
  } else {
 
128
  e.preventDefault();
129
  sendButton.click();
130
  }