minstradamus commited on
Commit
0199204
·
verified ·
1 Parent(s): 3e54e68

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -6
app.py CHANGED
@@ -135,23 +135,30 @@ def advice(req: AdviceRequest):
135
  "role": "user",
136
  "content": (
137
  f"Мои данные за текущий месяц:\n{context}\n\nВопрос: {question}\n"
138
- 'Начни ответ сразу со строки, которая начинается с "- ". Верни только список.'
139
  ),
140
  },
141
  ]
142
 
 
143
  raw = advice_gen(messages, advice_tokenizer, advice_model, det=True)
144
  text = _to_bullets(clean_ru(raw))
145
 
146
- # fallback на стохастический прогон, если мало пунктов
147
- from advice import _gen as advice_gen2, _to_bullets as to_bullets2
148
-
149
  if text.count("\n") + 1 < 3:
150
- raw2 = advice_gen2(messages, advice_tokenizer, advice_model, det=False)
151
- text2 = to_bullets2(clean_ru(raw2))
152
  if text2:
153
  text = text2
154
 
 
 
 
 
 
 
 
 
155
  return AdviceResponse(advice=text)
156
 
157
 
 
135
  "role": "user",
136
  "content": (
137
  f"Мои данные за текущий месяц:\n{context}\n\nВопрос: {question}\n"
138
+ "Начни ответ сразу со строки, которая начинается с \"- \". Верни только список."
139
  ),
140
  },
141
  ]
142
 
143
+ # детерминированный прогон
144
  raw = advice_gen(messages, advice_tokenizer, advice_model, det=True)
145
  text = _to_bullets(clean_ru(raw))
146
 
147
+ # если мало пунктов пробуем стохастический прогон
 
 
148
  if text.count("\n") + 1 < 3:
149
+ raw2 = advice_gen(messages, advice_tokenizer, advice_model, det=False)
150
+ text2 = _to_bullets(clean_ru(raw2))
151
  if text2:
152
  text = text2
153
 
154
+ # --- Fallback: если всё равно пусто, хоть что-то вернуть ---
155
+ if not text.strip():
156
+ cleaned = clean_ru(raw) or question or "Нет достаточных данных для совета."
157
+ # берём первые 3–5 осмысленных строк и делаем буллеты
158
+ lines = [ln.strip("-• ").strip() for ln in cleaned.split("\n") if ln.strip()]
159
+ lines = lines[:5] if lines else ["Попробуйте задать вопрос подробнее или загрузить больше транзакций."]
160
+ text = "\n".join("• " + ln for ln in lines)
161
+
162
  return AdviceResponse(advice=text)
163
 
164