1. 建立问题库大纲,对应每个人生阶段槽位
2. 鼓励使用更生活化的交流语言共情与总结
3. 降低评审模型可能发生截断的概率
4. 成稿质量维度强化情感表达和上下文连贯性
This commit is contained in:
yangshilin
2026-04-09 15:32:35 +08:00
parent 064ad2161d
commit e1341c6d18
49 changed files with 938 additions and 271 deletions

View File

@@ -98,7 +98,9 @@ def _dialogue_lineage_dict_for_segment_ids(
)
def _evidence_link_ids(evidence: dict) -> tuple[list[str], list[str], list[str], list[str]]:
def _evidence_link_ids(
evidence: dict,
) -> tuple[list[str], list[str], list[str], list[str]]:
"""从 retrieve_evidence_sync 结果提取稳定 ID 列表。"""
chunks: list[str] = []
for c in evidence.get("relevant_chunks") or []:
@@ -661,9 +663,7 @@ def _resolve_append_target(
and len(oral_norm)
<= int(settings.memoir_story_route_append_guardrail_oral_chars)
):
tid_g = default_append_target_story_id(
candidate_stories, story_meta, settings
)
tid_g = default_append_target_story_id(candidate_stories, story_meta, settings)
if tid_g:
st = session.get(Story, tid_g)
if st and st.user_id == user_id:
@@ -880,17 +880,19 @@ def _run_batch_plan_writes(
unit_text = _ordered_text_for_segment_ids(category_segments, unit.segment_ids)
oral_unit = normalize_oral_for_memoir(unit_text, llm=llm)
target_story_id, existing_for_narrative, decision_source = _resolve_append_target(
session,
route_decision=unit.decision,
route_target_story_id=unit.target_story_id,
user_id=user_id,
chapter_category=chapter_category,
oral_norm=(oral_unit or "").strip(),
candidate_stories=candidate_stories,
story_meta=story_meta,
decision_source="batch_plan",
memoir_correlation_id=memoir_correlation_id,
target_story_id, existing_for_narrative, decision_source = (
_resolve_append_target(
session,
route_decision=unit.decision,
route_target_story_id=unit.target_story_id,
user_id=user_id,
chapter_category=chapter_category,
oral_norm=(oral_unit or "").strip(),
candidate_stories=candidate_stories,
story_meta=story_meta,
decision_source="batch_plan",
memoir_correlation_id=memoir_correlation_id,
)
)
sid, _ = _execute_narrative_unit(
@@ -1104,17 +1106,19 @@ def run_story_pipeline_for_category_batch(
)
decision_source = "fallback_no_llm" if not llm else "single_decide"
target_story_id, existing_for_narrative, decision_source = _resolve_append_target(
session,
route_decision=route.decision,
route_target_story_id=route.target_story_id,
user_id=user_id,
chapter_category=chapter_category,
oral_norm=om_norm,
candidate_stories=candidates,
story_meta=story_meta,
decision_source=decision_source,
memoir_correlation_id=memoir_correlation_id,
target_story_id, existing_for_narrative, decision_source = (
_resolve_append_target(
session,
route_decision=route.decision,
route_target_story_id=route.target_story_id,
user_id=user_id,
chapter_category=chapter_category,
oral_norm=om_norm,
candidate_stories=candidates,
story_meta=story_meta,
decision_source=decision_source,
memoir_correlation_id=memoir_correlation_id,
)
)
sid, _ = _execute_narrative_unit(