vlasdadsda commited on
Commit
f893731
·
verified ·
1 Parent(s): 27d3e06

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +85 -11
app.py CHANGED
@@ -96,9 +96,10 @@ def process_file(file):
96
  return None
97
 
98
  try:
 
99
  # Получаем расширение файла
100
  file_extension = file.name.lower().split('.')[-1] if hasattr(file, 'name') else ''
101
-
102
  # Список поддерживаемых форматов изображений
103
  image_extensions = {'png', 'jpg', 'jpeg', 'gif', 'bmp', 'webp'}
104
 
@@ -278,7 +279,7 @@ def chat_response(message, history, model_name, direct_mode, thinking_depth=1.0,
278
  for link in results:
279
  info_text += f"Ссылка: {link}\n"
280
  page_text = get_page_text(link)
281
- info_text += f"Текст: {page_text}...\n\n"
282
 
283
  search_response_prompt = f"""Вот информация по запросу "{prompt}":
284
 
@@ -297,8 +298,36 @@ def chat_response(message, history, model_name, direct_mode, thinking_depth=1.0,
297
  final_response = final_response.replace(f"[SEARCH: {prompt}]", "").strip()
298
  history.append({"role": "assistant", "content": final_response})
299
  yield history, *[gr.update(visible=False) for _ in range(6)]
300
- return
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
 
 
302
  history[-1]["content"] = partial_message.strip()
303
  yield history, *[gr.update(visible=True) for _ in range(6)]
304
 
@@ -344,7 +373,12 @@ def chat_response(message, history, model_name, direct_mode, thinking_depth=1.0,
344
 
345
  partial_message = ""
346
  code_block = None
347
-
 
 
 
 
 
348
 
349
  if response and isinstance(response, str):
350
  partial_message += response
@@ -803,12 +837,53 @@ def create_interface():
803
  from {
804
  opacity: 0;
805
  transform: translateX(-10px);
806
- }
807
  to {
808
  opacity: 1;
809
  transform: translateX(0);
810
  }
811
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
812
  """
813
 
814
  # Добавте этот скрипт в create_interface()
@@ -849,7 +924,7 @@ def create_interface():
849
  scale=1,
850
  elem_classes="submit-btn"
851
  )
852
- clear = gr.Button("Очистить", scale=1)
853
 
854
  with gr.Column(scale=1, visible=True) as sidebar:
855
  model = gr.Dropdown(
@@ -917,11 +992,10 @@ def create_interface():
917
  )
918
 
919
 
920
-
921
- clear.click(
922
- fn=lambda: (None, "", "", False, ""),
923
- outputs=[chatbot, current_code]
924
- )
925
 
926
  # Добавляем обработчик изменения модели
927
  def update_thinking_depth_visibility(model_name):
 
96
  return None
97
 
98
  try:
99
+ # print()
100
  # Получаем расширение файла
101
  file_extension = file.name.lower().split('.')[-1] if hasattr(file, 'name') else ''
102
+ print(file_extension)
103
  # Список поддерживаемых форматов изображений
104
  image_extensions = {'png', 'jpg', 'jpeg', 'gif', 'bmp', 'webp'}
105
 
 
279
  for link in results:
280
  info_text += f"Ссылка: {link}\n"
281
  page_text = get_page_text(link)
282
+ info_text += f"Текст: {page_text[:500]}...\n\n"
283
 
284
  search_response_prompt = f"""Вот информация по запросу "{prompt}":
285
 
 
298
  final_response = final_response.replace(f"[SEARCH: {prompt}]", "").strip()
299
  history.append({"role": "assistant", "content": final_response})
300
  yield history, *[gr.update(visible=False) for _ in range(6)]
301
+
302
+ if response and isinstance(response, str):
303
+ steps = response.split("[THINKING_STEP]")
304
+ final_answer = ""
305
+
306
+ for i, step in enumerate(steps):
307
+ if "[FINAL_ANSWER]" in step:
308
+ final_answer = step.split("[FINAL_ANSWER]")[1].strip()
309
+ step = step.split("[FINAL_ANSWER]")[0]
310
+
311
+ step_html = f"""
312
+ <div class="thinking-step-block">
313
+ <span class="thinking-step">Шаг {i + 1}: {step.strip()}</span>
314
+ </div>
315
+ """
316
+ history[-1]["content"] += step_html
317
+
318
+ yield history, gr.update(visible=False)
319
+
320
+ # Добавляем финальный блок с заключением
321
+ final_html = f"""
322
+ <div class="final-answer-block">
323
+ <span class="thinking-conclusion">Ответ: {final_answer}</span>
324
+ </div>
325
+ """
326
+ history[-1]["content"] += final_html
327
+ yield history, gr.update(visible=True)
328
+ return
329
 
330
+
331
  history[-1]["content"] = partial_message.strip()
332
  yield history, *[gr.update(visible=True) for _ in range(6)]
333
 
 
373
 
374
  partial_message = ""
375
  code_block = None
376
+ # response = g4f.ChatCompletion.create(
377
+ # model=AVAILABLE_MODELS.get(model_name, "O3"),
378
+ # messages=messages,
379
+ # stream=False,
380
+ # provider="PollinationsAI"
381
+ # )
382
 
383
  if response and isinstance(response, str):
384
  partial_message += response
 
837
  from {
838
  opacity: 0;
839
  transform: translateX(-10px);
840
+ }
841
  to {
842
  opacity: 1;
843
  transform: translateX(0);
844
  }
845
  }
846
+ .thinking-animation {
847
+ position: relative;
848
+ width: 100%;
849
+ min-height: 100px;
850
+ background: linear-gradient(45deg, #1a1a1a, #2d2d2d);
851
+ border-radius: 15px;
852
+ overflow: hidden;
853
+ margin: 10px 0;
854
+ padding: 20px;
855
+ border-left: 4px solid #4a90e2;
856
+ transition: all 0.3s ease;
857
+ }
858
+
859
+ .thinking-step {
860
+ color: #b0b0b0;
861
+ font-style: italic;
862
+ margin-bottom: 10px;
863
+ padding-left: 20px;
864
+ border-left: 2px solid #4a90e2;
865
+ opacity: 0;
866
+ transform: translateY(10px);
867
+ animation: fadeInStep 0.5s ease-in-out forwards;
868
+ }
869
+
870
+ .thinking-conclusion {
871
+ color: white;
872
+ font-weight: bold;
873
+ margin-top: 15px;
874
+ padding: 10px;
875
+ background: rgba(74, 144, 226, 0.1);
876
+ border-radius: 8px;
877
+ border-left: 4px solid #4a90e2;
878
+ }
879
+
880
+ @keyframes fadeInStep {
881
+ to {
882
+ opacity: 1;
883
+ transform: translateY(0);
884
+ }
885
+ }
886
+
887
  """
888
 
889
  # Добавте этот скрипт в create_interface()
 
924
  scale=1,
925
  elem_classes="submit-btn"
926
  )
927
+ # clear = gr.Button("Очистить", scale=1)
928
 
929
  with gr.Column(scale=1, visible=True) as sidebar:
930
  model = gr.Dropdown(
 
992
  )
993
 
994
 
995
+ # clear.click(
996
+ # fn=lambda: (None, ""),
997
+ # outputs=[chatbot, current_code]
998
+ # )
 
999
 
1000
  # Добавляем обработчик изменения модели
1001
  def update_thinking_depth_visibility(model_name):