an explicit 'draw it' request without topic words gets the whole diagram catalog (tutor-v8-asked-figure)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -177,6 +177,23 @@ def follow_up_hint_for(question: str, previous: str) -> str:
|
||||
return '\n'.join([FOLLOW_UP_HINT, _HEAD, *parts])
|
||||
|
||||
|
||||
# «شکلش رو بکش» بیهیچ کلمهی موضوعی (و بیسوالِ شکلدارِ قبلی): نمیدانیم کدام بخش،
|
||||
# پس کلِ کاتالوگ میرود (~۱٬۹۰۰ توکن). نادر است، چون بیشترِ درخواستها کلمهی موضوعی دارند.
|
||||
# مرزِ پیش از کلمه لازم است: «مشکل» و «بپرسم» نباید درخواستِ شکل شمرده شوند.
|
||||
_ASK_FIGURE = re.compile(r'(?<![\u0600-\u06FF])(?:شکل|رسم|بکش|تصویر)')
|
||||
ASKED_HINT = (
|
||||
'دانشآموز شکل خواسته: اگر مسئله شکلی دارد، در پایانِ پاسخ بلوکِ <diagram>…</diagram> را '
|
||||
'طبقِ این قالب بگذار؛ اگر ندارد، کوتاه بگو که این مسئله شکل ندارد.'
|
||||
)
|
||||
|
||||
|
||||
def asked_hint_for(question: str) -> str:
|
||||
"""درخواستِ صریحِ شکل وقتی هیچ بخشی از کاتالوگ با سوال (یا سوالِ قبلی) نخورد."""
|
||||
if not _ASK_FIGURE.search(question or ''):
|
||||
return ''
|
||||
return '\n'.join([ASKED_HINT, DIAGRAM_SPEC])
|
||||
|
||||
|
||||
def hint_for(question: str) -> str:
|
||||
"""یادآوری و فقط آن بخشهایی از کاتالوگ که به همین سوال میخورند؛ سوالِ بیشکل → ''."""
|
||||
text = question or ''
|
||||
|
||||
@@ -38,7 +38,7 @@ _RAW_MARKUP = re.compile(r'\\[A-Za-z(\[]|\$|\*\*|^\s*#{1,6}\s|^\s*\|\s*:?-{3,}',
|
||||
# بشود گفت «کدام نسخهی پرامپت جوابِ بهتری میداد» — بدونِ این، همهی فیدبکها
|
||||
# در یک کاسه میریزند و مقایسهی نسخهها ممکن نیست. کشِ پاسخ هم با همین نسخه
|
||||
# کلید میخورد، پس جوابِ نسخهی قبلی بعد از دیپلوی دوباره سرو نمیشود.
|
||||
PROMPT_VERSION = 'tutor-v7-diagram-kit'
|
||||
PROMPT_VERSION = 'tutor-v8-asked-figure'
|
||||
|
||||
_PRIMARY = {'اول', 'دوم', 'سوم', 'چهارم', 'پنجم', 'ششم'}
|
||||
_MIDDLE = {'هفتم', 'هشتم', 'نهم'}
|
||||
@@ -184,7 +184,8 @@ def _user_prompt(question: str, contexts: list[str], focus: str = '',
|
||||
asked = (f'{asked}\n(این ادامهی گفتگوست؛ سوالِ قبلیِ دانشآموز: «{previous[:300]}». '
|
||||
'اگر به آن مربوط است، همان مسئله را با تغییرِ خواستهشده حل کن.)')
|
||||
shape_hint = (diagram_mod.hint_for(f'{question}\n{focus}')
|
||||
or diagram_mod.follow_up_hint_for(question, previous))
|
||||
or diagram_mod.follow_up_hint_for(question, previous)
|
||||
or diagram_mod.asked_hint_for(question))
|
||||
if shape_hint:
|
||||
asked = f'{asked}\n\n{shape_hint}'
|
||||
slash_rule = primary and '/' in question
|
||||
|
||||
Reference in New Issue
Block a user