chore/ 删除无用文件
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
回忆录状态服务:get_or_create_state、update_slot、mark_stage_complete 等。
|
||||
供 memoir service、conversation ws 使用;Celery 任务内使用同步版本(见 tasks/memoir_tasks)。
|
||||
"""
|
||||
|
||||
import uuid
|
||||
from typing import Dict, List
|
||||
|
||||
@@ -18,7 +19,9 @@ def _coerce_state(model: MemoirStateModel) -> MemoirStateSchema:
|
||||
"stage_order": model.stage_order or default_state().stage_order,
|
||||
"current_stage": model.current_stage,
|
||||
"covered_stages": model.covered_stages or [],
|
||||
"slots": model.slots if isinstance(model.slots, dict) else default_state().slots,
|
||||
"slots": model.slots
|
||||
if isinstance(model.slots, dict)
|
||||
else default_state().slots,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -37,7 +40,10 @@ async def get_or_create_state(user_id: str, db: AsyncSession) -> MemoirStateSche
|
||||
stage_order=default.stage_order,
|
||||
current_stage=default.current_stage,
|
||||
covered_stages=default.covered_stages,
|
||||
slots={k: {sk: sv.model_dump() for sk, sv in v.items()} for k, v in default.slots.items()},
|
||||
slots={
|
||||
k: {sk: sv.model_dump() for sk, sv in v.items()}
|
||||
for k, v in default.slots.items()
|
||||
},
|
||||
)
|
||||
db.add(state)
|
||||
await db.commit()
|
||||
@@ -66,7 +72,9 @@ async def update_slot(
|
||||
existing = stage_slots.get(slot_name, {})
|
||||
|
||||
merged_segment_ids = list({*(existing.get("segment_ids") or []), *segment_ids})
|
||||
stage_slots[slot_name] = SlotData(snippet=snippet, segment_ids=merged_segment_ids).model_dump()
|
||||
stage_slots[slot_name] = SlotData(
|
||||
snippet=snippet, segment_ids=merged_segment_ids
|
||||
).model_dump()
|
||||
slots[stage] = stage_slots
|
||||
state.slots = slots
|
||||
state.current_stage = state.current_stage or stage
|
||||
@@ -75,7 +83,9 @@ async def update_slot(
|
||||
return _coerce_state(state)
|
||||
|
||||
|
||||
async def mark_stage_complete(user_id: str, stage: str, db: AsyncSession) -> MemoirStateSchema:
|
||||
async def mark_stage_complete(
|
||||
user_id: str, stage: str, db: AsyncSession
|
||||
) -> MemoirStateSchema:
|
||||
stmt = select(MemoirStateModel).where(MemoirStateModel.user_id == user_id)
|
||||
result = await db.execute(stmt)
|
||||
state = result.scalar_one_or_none()
|
||||
@@ -104,7 +114,9 @@ async def get_empty_slots(user_id: str, db: AsyncSession) -> List[str]:
|
||||
return state.empty_slots_for_current_stage()
|
||||
|
||||
|
||||
async def switch_stage(user_id: str, new_stage: str, db: AsyncSession) -> MemoirStateSchema:
|
||||
async def switch_stage(
|
||||
user_id: str, new_stage: str, db: AsyncSession
|
||||
) -> MemoirStateSchema:
|
||||
stmt = select(MemoirStateModel).where(MemoirStateModel.user_id == user_id)
|
||||
result = await db.execute(stmt)
|
||||
state = result.scalar_one_or_none()
|
||||
|
||||
Reference in New Issue
Block a user