feat(api+app): 对话阶段化、回忆录流水线与客户端会话体验
- DB: segments 用户输入文本(Alembic 0002) - Chat: 阶段检测/阶段提示/回复限制,编排与访谈/画像 prompts 调整 - Memoir: 忠实度检查 agent,叙事与分类等链路更新 - Core: agent 日志、Alembic 启动、LangChain/日志/配置等 - Story: time_hints;Memory 检索与相关测试 - Expo: 助手头像、会话页与消息拆分、实时会话与文案/i18n - Docs/scripts/tests: 迁移脚本、LLM JSON/记忆检索文档、新增单测
This commit is contained in:
@@ -5,6 +5,7 @@ import pytest
|
||||
from app.agents.memoir.classification_agent import (
|
||||
ClassificationAgent,
|
||||
_looks_like_fragment_only,
|
||||
_parse_category_from_llm_response,
|
||||
)
|
||||
|
||||
|
||||
@@ -32,6 +33,19 @@ def test_classify_skips_story_for_birth_year_without_llm() -> None:
|
||||
assert agent.classify("1999年出生", fallback_stage="childhood", llm=None) is None
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"raw,expected",
|
||||
[
|
||||
('{"category": "childhood"}', "childhood"),
|
||||
('```json\n{"category": "none"}\n```', "none"),
|
||||
("childhood", "childhood"),
|
||||
('"education"', "education"),
|
||||
],
|
||||
)
|
||||
def test_parse_category_from_llm_response(raw: str, expected: str) -> None:
|
||||
assert _parse_category_from_llm_response(raw) == expected
|
||||
|
||||
|
||||
def test_classify_fallback_when_no_llm_and_narrative_snippet() -> None:
|
||||
agent = ClassificationAgent()
|
||||
out = agent.classify(
|
||||
|
||||
Reference in New Issue
Block a user