root39058 commited on
Commit
e4e347b
·
verified ·
1 Parent(s): 80944fe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -40
app.py CHANGED
@@ -54,7 +54,7 @@ def check_if_pro(token):
54
  # === ГЕНЕРАЦИЯ ОТВЕТА ===
55
  def generate_response(message, history, username, current_chat_id):
56
  if not username:
57
- gr.Warning("Сначала введите имя пользователя на экране входа!")
58
  return history, gr.update(), current_chat_id
59
 
60
  if not message.strip():
@@ -185,25 +185,18 @@ CUSTOM_CSS = """
185
  font-size: 0.95em;
186
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
187
  }
188
- .privacy-banner .icon {
189
- font-size: 1.8em;
190
- }
191
- .privacy-banner strong {
192
- display: block;
193
- font-size: 1.1em;
194
- margin-bottom: 4px;
195
- }
196
  """
197
 
198
- # === БАННЕР ПРИВАТНОСТИ (HTML) ===
199
  PRIVACY_BANNER = """
200
  <div class="privacy-banner">
201
  <div class="icon">🔒</div>
202
  <div>
203
  <strong>Ваши данные в безопасности</strong>
204
- Все сообщения обрабатываются локально в этом Space.
205
- <b>Данные НЕ передаются в OpenRussianAI</b> или третьим лицам.
206
- История чатов хранится только внутри контейнера.
207
  </div>
208
  </div>
209
  """
@@ -215,14 +208,7 @@ with gr.Blocks(title="OpenAirAI-X Chat") as demo:
215
  current_chat_id_state = gr.State(None)
216
 
217
  with gr.Column(visible=False) as main_interface:
218
- gr.HTML("""
219
- <div class="main-header">
220
- <h1>🤖 OpenAirAI-X Chat</h1>
221
- <p>Русскоязычный AI-ассистент</p>
222
- </div>
223
- """)
224
-
225
- # Баннер приватности в главном интерфейсе
226
  gr.HTML(PRIVACY_BANNER)
227
 
228
  with gr.Row():
@@ -231,7 +217,8 @@ with gr.Blocks(title="OpenAirAI-X Chat") as demo:
231
  pro_badge = gr.HTML('<div class="pro-badge">👑 PRO</div>', visible=False)
232
  new_chat_btn = gr.Button("➕ Новый чат", variant="primary")
233
  gr.Markdown("### 📚 История чатов")
234
- chat_list = gr.Radio(choices=[], label="Ваши чаты", interactive=True)
 
235
  delete_chat_btn = gr.Button("🗑️ Удалить выбранный чат", variant="stop", size="sm")
236
  logout_btn = gr.Button("🚪 Выйти", size="sm")
237
 
@@ -241,27 +228,13 @@ with gr.Blocks(title="OpenAirAI-X Chat") as demo:
241
  msg_input = gr.Textbox(placeholder="Напишите сообщение...", lines=2, scale=5, show_label=False)
242
  send_btn = gr.Button("📤 Отправить", variant="primary", scale=1)
243
 
244
- # Экран входа
245
  with gr.Column(visible=True) as login_screen:
246
- gr.HTML("""
247
- <div class="main-header">
248
- <h1>🤖 OpenAirAI-X Chat</h1>
249
- <p>Введите данные для входа</p>
250
- </div>
251
- """)
252
-
253
- # Баннер приватности на экране входа
254
  gr.HTML(PRIVACY_BANNER)
255
-
256
- gr.Markdown("""
257
- ### 🔐 Вход в систему
258
-
259
- Введите ваше имя пользователя. История чатов будет привязана к этому имени и сохранена **только внутри этого Space**.
260
- """)
261
  username_input = gr.Textbox(label="Имя пользователя (HF Username)", placeholder="Например: RootLinux21")
262
- token_input = gr.Textbox(label="HF Token (необязательно, только для проверки PRO)", placeholder="hf_...")
263
  login_btn = gr.Button("🔑 Войти", variant="primary")
264
- gr.Markdown("*Если у вас есть PRO-подписка, вставьте ваш токен (Settings -> Access Tokens), чтобы увидеть значок 👑*")
265
 
266
  # === ОБРАБОТЧИКИ ===
267
 
@@ -362,5 +335,4 @@ with gr.Blocks(title="OpenAirAI-X Chat") as demo:
362
  outputs=[main_interface, login_screen, user_info, username_state, history_state, current_chat_id_state, chat_list, pro_badge]
363
  )
364
 
365
- # Запуск с CSS в launch() (как требует Gradio 6.0)
366
  demo.launch(server_name="0.0.0.0", server_port=7860, css=CUSTOM_CSS)
 
54
  # === ГЕНЕРАЦИЯ ОТВЕТА ===
55
  def generate_response(message, history, username, current_chat_id):
56
  if not username:
57
+ gr.Warning("Сначала введите имя пользователя!")
58
  return history, gr.update(), current_chat_id
59
 
60
  if not message.strip():
 
185
  font-size: 0.95em;
186
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
187
  }
188
+ .privacy-banner .icon { font-size: 1.8em; }
189
+ .privacy-banner strong { display: block; font-size: 1.1em; margin-bottom: 4px; }
 
 
 
 
 
 
190
  """
191
 
 
192
  PRIVACY_BANNER = """
193
  <div class="privacy-banner">
194
  <div class="icon">🔒</div>
195
  <div>
196
  <strong>Ваши данные в безопасности</strong>
197
+ Все сообщения обрабатываются локально.
198
+ <b>Данные НЕ передаются в OpenRussianAI</b>.
199
+ История хранится только внутри контейнера.
200
  </div>
201
  </div>
202
  """
 
208
  current_chat_id_state = gr.State(None)
209
 
210
  with gr.Column(visible=False) as main_interface:
211
+ gr.HTML("<div class='main-header'><h1>🤖 OpenAirAI-X Chat</h1><p>Русскоязычный AI-ассистент</p></div>")
 
 
 
 
 
 
 
212
  gr.HTML(PRIVACY_BANNER)
213
 
214
  with gr.Row():
 
217
  pro_badge = gr.HTML('<div class="pro-badge">👑 PRO</div>', visible=False)
218
  new_chat_btn = gr.Button("➕ Новый чат", variant="primary")
219
  gr.Markdown("### 📚 История чатов")
220
+ # Инициализируем Radio с пустыми choices и value=None
221
+ chat_list = gr.Radio(choices=[], label="Ваши чаты", interactive=True, value=None)
222
  delete_chat_btn = gr.Button("🗑️ Удалить выбранный чат", variant="stop", size="sm")
223
  logout_btn = gr.Button("🚪 Выйти", size="sm")
224
 
 
228
  msg_input = gr.Textbox(placeholder="Напишите сообщение...", lines=2, scale=5, show_label=False)
229
  send_btn = gr.Button("📤 Отправить", variant="primary", scale=1)
230
 
 
231
  with gr.Column(visible=True) as login_screen:
232
+ gr.HTML("<div class='main-header'><h1>🤖 OpenAirAI-X Chat</h1><p>Введите данные для входа</p></div>")
 
 
 
 
 
 
 
233
  gr.HTML(PRIVACY_BANNER)
234
+ gr.Markdown("### 🔐 Вход в систему\nВведите ваше имя пользователя. История чатов будет привязана к этому имени.")
 
 
 
 
 
235
  username_input = gr.Textbox(label="Имя пользователя (HF Username)", placeholder="Например: RootLinux21")
236
+ token_input = gr.Textbox(label="HF Token (необязательно, для PRO)", placeholder="hf_...")
237
  login_btn = gr.Button("🔑 Войти", variant="primary")
 
238
 
239
  # === ОБРАБОТЧИКИ ===
240
 
 
335
  outputs=[main_interface, login_screen, user_info, username_state, history_state, current_chat_id_state, chat_list, pro_badge]
336
  )
337
 
 
338
  demo.launch(server_name="0.0.0.0", server_port=7860, css=CUSTOM_CSS)