多条 need 时 LLM 选相关 need_id
_llm_pick_need_if_ambiguous;app/chat_labeling_flow.py 亦有 pick_relevant_need_id_for_messageuser 块内拼对话与需求列表,工具 pick_relevant_need_for_message(实现见 llm_client)。
展开:system + user 块结构 · 修改备忘
system(LLMClient.pick_relevant_need_id_for_message):
你只负责调用工具 pick_relevant_need_for_message,不要输出自然语言。 须严格从用户文中的【允许的 need_id 列表】中选一条;不得编造列表外的 id。 用户明确讨论某条需求主题时,优先按 needs_desc 与近期带 need_id 的消息对齐该条。 若无法判断或与任一条均无关,need_id 填 -1。
user(chat_turn_mes._build_need_disambiguation_user_block 拼装,数据库查询结果代入):
【本轮用户消息】 … 【允许的 need_id 全集】(工具 need_id 只能填其中一条,或填 -1) … 【被征询方视角:仍活跃的候选 need(need_id|候选人 status|需求摘要)】 - need_id=…,status=…:… (无) 【提出方视角:collecting 的 need(need_id|需求摘要)】 - need_id=…:… (无) 【最近约 20 条本会话消息(含已标注 need_id,用于对齐话题)】 [need_id=…][mes_type][user|assistant] … 【输出】必须调用工具 pick_relevant_need_for_message。