Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
#
|
| 147 |
-
from advice import _gen as advice_gen2, _to_bullets as to_bullets2
|
| 148 |
-
|
| 149 |
if text.count("\n") + 1 < 3:
|
| 150 |
-
raw2 =
|
| 151 |
-
text2 =
|
| 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 |
|