develop #2

Merged
roberto merged 160 commits from develop into main 2026-06-12 15:27:23 +00:00
Showing only changes of commit f07580574b - Show all commits

View File

@@ -43,8 +43,10 @@ _SESSION_TTL_SECONDS: int = 1800 # 30 minutes
_TEMPLATE_START = "PROMPT_TEMPLATE_START" _TEMPLATE_START = "PROMPT_TEMPLATE_START"
_TEMPLATE_END = "PROMPT_TEMPLATE_END" _TEMPLATE_END = "PROMPT_TEMPLATE_END"
# Maximum number of conversation turns before the LLM is nudged to wrap up. # Minimum turns before we consider nudging the LLM to wrap up.
_MAX_TURNS: int = 5 _MIN_TURNS_BEFORE_NUDGE: int = 3
# Hard cap to avoid infinite loops (safety net, not the primary stopping criterion).
_MAX_TURNS: int = 15
# Max tool-calling steps per LLM invocation. # Max tool-calling steps per LLM invocation.
_MAX_TOOL_STEPS: int = 6 _MAX_TOOL_STEPS: int = 6
@@ -128,8 +130,10 @@ and must perform CRUD operations using tools to create records. It should speci
- Concrete examples of mappings based on what you discovered in the directory. - Concrete examples of mappings based on what you discovered in the directory.
{existing_section}\ {existing_section}\
Do not ask more than {max_turns} questions total. Begin by exploring the directory, Keep asking clarifying questions until you are at least 90% confident you have
then ask your first question.\ enough information to generate an accurate prompt_template. Once you reach that
confidence level, stop asking and produce the final template immediately.
Begin by exploring the directory, then ask your first question.\
""" """
@@ -150,7 +154,6 @@ def _build_system_prompt(
template_start=_TEMPLATE_START, template_start=_TEMPLATE_START,
template_end=_TEMPLATE_END, template_end=_TEMPLATE_END,
existing_section=existing_section, existing_section=existing_section,
max_turns=_MAX_TURNS,
) )
@@ -356,8 +359,8 @@ async def handle_journey_message(
prompt_template = _extract_template(ai_reply) prompt_template = _extract_template(ai_reply)
done = prompt_template is not None done = prompt_template is not None
# If the LLM didn't produce a template but we've hit max turns, nudge it # If the LLM didn't produce a template, nudge it once it has asked enough
# and call the LLM one more time to force template generation. # questions (>= _MIN_TURNS_BEFORE_NUDGE) or hits the hard safety cap.
if not done: if not done:
turns = sum(1 for t in session.history if t["role"] == "user") turns = sum(1 for t in session.history if t["role"] == "user")
if turns >= _MAX_TURNS: if turns >= _MAX_TURNS: