Nikolay Ponomarev commited on
Commit
bdae50a
·
1 Parent(s): e521542

Item Search

Browse files
Files changed (1) hide show
  1. app.py +35 -3
app.py CHANGED
@@ -11,7 +11,7 @@ from transformers import pipeline
11
  DEFAULT_INTENT_MODEL = os.getenv("INTENT_MODEL", "joeddav/xlm-roberta-large-xnli")
12
 
13
  # 2) Checklist generator
14
- DEFAULT_GEN_MODEL = os.getenv("GEN_MODEL", "google/mt5-small")
15
 
16
  # 3) QA over checklist
17
  DEFAULT_QA_MODEL = os.getenv("QA_MODEL", "deepset/xlm-roberta-base-squad2")
@@ -161,8 +161,40 @@ def generate_checklist(user_goal: str, category: str, style: str, constraints: s
161
  prompt,
162
  max_new_tokens=450,
163
  do_sample=False,
 
164
  )
165
- text = out[0]["generated_text"].strip()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
 
167
  # Store in state: checklist text + theme + original goal
168
  meta = {
@@ -271,7 +303,7 @@ with gr.Blocks(title="Умный чек-лист (3 Transformers)") as demo:
271
  gen_btn = gr.Button("Сгенерировать чек-лист", variant="primary")
272
 
273
  with gr.Column(scale=3):
274
- checklist_out = gr.Markdown(label="Чек-лист")
275
  intent_debug = gr.Textbox(label="Диагностика распознавания намерения", lines=10)
276
 
277
  theme_out = gr.Textbox(label="Выбранная/распознанная тема (если определилась)", interactive=False)
 
11
  DEFAULT_INTENT_MODEL = os.getenv("INTENT_MODEL", "joeddav/xlm-roberta-large-xnli")
12
 
13
  # 2) Checklist generator
14
+ DEFAULT_GEN_MODEL = os.getenv("GEN_MODEL", "cointegrated/rut5-base")
15
 
16
  # 3) QA over checklist
17
  DEFAULT_QA_MODEL = os.getenv("QA_MODEL", "deepset/xlm-roberta-base-squad2")
 
161
  prompt,
162
  max_new_tokens=450,
163
  do_sample=False,
164
+ num_beams=4,
165
  )
166
+ text = (out[0].get("generated_text") or "").strip()
167
+
168
+ # Если модель вернула пусто/слишком коротко — повторим с более "толкающими" параметрами
169
+ if len(text) < 80:
170
+ short_prompt = (
171
+ "Сделай практичный чек-лист на русском.\n"
172
+ "Формат строго:\n"
173
+ "- [ ] пункт\n"
174
+ "Подпункты: ' - ...'\n"
175
+ "В конце: 'Проверка готовности' (3–5 вопросов) и 'Риски и как снизить'.\n\n"
176
+ f"Цель: {user_goal}\n"
177
+ f"Контекст: {constraints}\n"
178
+ f"Тема: {chosen_theme}\n\n"
179
+ "Чек-лист:\n"
180
+ )
181
+ out2 = gen_pipe(
182
+ short_prompt,
183
+ max_new_tokens=500,
184
+ do_sample=True,
185
+ temperature=0.9,
186
+ top_p=0.9,
187
+ )
188
+ text2 = (out2[0].get("generated_text") or "").strip()
189
+ if len(text2) > len(text):
190
+ text = text2
191
+
192
+ # Если всё равно пусто — покажем явное сообщение (а не “как будто ничего нет”)
193
+ if len(text) < 20:
194
+ text = (
195
+ "- [ ] Не удалось сгенерировать чек-лист этой моделью.\n"
196
+ "- [ ] Попробуйте сменить GEN_MODEL (см. ниже) или сократить описание цели.\n"
197
+ )
198
 
199
  # Store in state: checklist text + theme + original goal
200
  meta = {
 
303
  gen_btn = gr.Button("Сгенерировать чек-лист", variant="primary")
304
 
305
  with gr.Column(scale=3):
306
+ checklist_out = gr.Code(label="Чек-лист", language="markdown")
307
  intent_debug = gr.Textbox(label="Диагностика распознавания намерения", lines=10)
308
 
309
  theme_out = gr.Textbox(label="Выбранная/распознанная тема (если определилась)", interactive=False)