def build_messages(user_message):
return [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": user_message},
]
def route_decision(decision):
next_step = decision["next_step"]
if next_step in ("final_answer", "need_user_data"):
return decision["message"]
if next_step == "need_tool":
return TOOL_UNAVAILABLE_MESSAGE
return UNKNOWN_STEP_MESSAGE
def handle_request(client, model, user_message):
messages = build_messages(user_message)
decision = request_decision(client, model, messages)
if decision is None:
return TECHNICAL_ERROR_MESSAGE
return route_decision(decision)