Rooni commited on
Commit
2069a78
·
verified ·
1 Parent(s): 3b3f0ef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -1
app.py CHANGED
@@ -5,6 +5,7 @@ import base64
5
  from PIL import Image
6
  import io
7
  import random
 
8
 
9
  # Функция для кодирования изображения в base64
10
  def encode_image_to_base64(image):
@@ -25,7 +26,12 @@ def ask_openai_with_image(instruction, image):
25
  emj = random.choice(emojis)
26
  raise gr.Error(f"{emj} Заполни пожалуйста хотя бы одно поле")
27
 
28
-
 
 
 
 
 
29
  if image is not None:
30
  # Кодируем загруженное изображение в base64
31
  base64_image = encode_image_to_base64(image)
@@ -108,6 +114,7 @@ with gr.Blocks(css=css, theme='YTheme/SmartLearn') as demo:
108
  image_input = gr.Image(label="Фото", type="pil")
109
  instructions = gr.Textbox(label="Сообщение", lines=3, placeholder="Привет!) ...")
110
  submit_button = gr.Button("Отправить", variant='primary')
 
111
  gr.Markdown("🔗 Доступ предоставлен [ЭТИМ](https://ai-hub.rf.gd) сайтом!")
112
  with gr.Column():
113
  output_markdown = gr.Markdown(label="AI Response")
@@ -119,4 +126,20 @@ with gr.Blocks(css=css, theme='YTheme/SmartLearn') as demo:
119
  concurrency_limit=200
120
  )
121
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  demo.launch()
 
5
  from PIL import Image
6
  import io
7
  import random
8
+ import re
9
 
10
  # Функция для кодирования изображения в base64
11
  def encode_image_to_base64(image):
 
26
  emj = random.choice(emojis)
27
  raise gr.Error(f"{emj} Заполни пожалуйста хотя бы одно поле")
28
 
29
+ # Удаляем лишние пробелы и новые строки и проверяем длину
30
+ instruction = re.sub(r'\s+', ' ', instruction.strip())
31
+ char_count = len(re.sub(r'[\s+]', '', instruction))
32
+ if char_count > 250:
33
+ raise gr.Error("Текст сообщения превышает максимально допустимый лимит символов. Пожалуйста, сократите его до 250 символов.")
34
+
35
  if image is not None:
36
  # Кодируем загруженное изображение в base64
37
  base64_image = encode_image_to_base64(image)
 
114
  image_input = gr.Image(label="Фото", type="pil")
115
  instructions = gr.Textbox(label="Сообщение", lines=3, placeholder="Привет!) ...")
116
  submit_button = gr.Button("Отправить", variant='primary')
117
+ char_counter = gr.Label("0/250")
118
  gr.Markdown("🔗 Доступ предоставлен [ЭТИМ](https://ai-hub.rf.gd) сайтом!")
119
  with gr.Column():
120
  output_markdown = gr.Markdown(label="AI Response")
 
126
  concurrency_limit=200
127
  )
128
 
129
+ # Добавляем JavaScript для обработки ввода символов в текстовое поле
130
+ demo.add_js("""
131
+ document.addEventListener('DOMContentLoaded', function() {
132
+ const instructionElement = document.querySelector('textarea');
133
+ const charCounterElement = document.querySelector('label[for="textbox"]');
134
+
135
+ function updateCharCount() {
136
+ const text = instructionElement.value.replace(/\\s+/g, '');
137
+ const charCount = text.length;
138
+ charCounterElement.textContent = `${charCount}/250`;
139
+ }
140
+
141
+ instructionElement.addEventListener('input', updateCharCount);
142
+ });
143
+ """)
144
+
145
  demo.launch()