refactor(chat): AI-native prompts, remove interview heuristics

- Drop interview_reply_length and utterance_substance; always run stage LLM
  and memory retrieval when enabled; trim Settings fields and .env.example.
- Replace guided/opening prompts with compact fact blocks plus unified
  behavior guidance; slim background_voice and persona to tone hints.
- InterviewAgent uses fixed chat_interview max_tokens/chars/segments.

Also includes stacked work: profile followup/extract path, evaluation rubric
and judge schema updates, transcript SPLIT handling in execution service,
user export markdown split tests, and golden case fixture.
This commit is contained in:
Kevin
2026-04-06 22:22:50 +08:00
parent ca8bcc8489
commit 2fded6fbd9
27 changed files with 426 additions and 1349 deletions

View File

@@ -6,17 +6,13 @@ from app.agents.chat.background_voice import normalize_background_voice
def get_occupation_chat_hint(occupation: str | None, background_voice: str) -> str:
"""default 路径的通用职业上下文cadre/military 已有专属块,返回空串"""
"""一句职业事实(仅 default 路径cadre/military 语气由 background_voice 覆盖"""
if normalize_background_voice(background_voice) != "default":
return ""
occ = (occupation or "").strip()
if not occ:
return ""
return (
f"## 用户职业背景\n"
f"用户从事过「{occ}」相关工作。聊天时自然贴合这一背景,"
f"在用语和追问方向上适度靠近用户的职业经历与知识面,但不要刻意。"
)
return f"从事过「{occ}」相关工作,聊天可自然贴近其经历,不要刻意。"
def get_occupation_narrative_hint(occupation: str | None, background_voice: str) -> str: