refactor(backend): update orchestrator endpoint and services

- endpoints/orchestrator.py: update orchestrator API endpoint
- services/agent_conversations.py: update agent conversations service
- services/orchestrator.py: update orchestrator service
- services/user_agent.py: update user agent service
This commit is contained in:
caoxiaozhu
2026-05-13 13:06:52 +00:00
parent 0f7bd43ce3
commit 70cff69b7f
4 changed files with 359 additions and 20 deletions

View File

@@ -48,9 +48,14 @@ def run_orchestrator(payload: OrchestratorRequest, db: DbSession) -> Orchestrato
def get_latest_conversation(
user_id: Annotated[str, Query(min_length=1, description="当前用户 ID。")],
db: DbSession,
session_type: Annotated[str | None, Query(description="会话类型,例如 expense / knowledge。")] = None,
) -> ConversationLookupResponse:
service = AgentConversationService(db)
conversation = service.get_latest_conversation_for_user(user_id=user_id, source="user_message")
conversation = service.get_latest_conversation_for_user(
user_id=user_id,
source="user_message",
session_type=session_type,
)
if conversation is None:
return ConversationLookupResponse(found=False, conversation=None)
@@ -60,6 +65,25 @@ def get_latest_conversation(
)
@router.delete(
"/conversations/{conversation_id}",
response_model=ConversationDeleteResponse,
summary="删除当前用户单个会话",
description="删除当前用户在智能体工作台中的单个会话,用于清空当前 session 内容。",
)
def delete_single_conversation(
conversation_id: str,
user_id: Annotated[str, Query(min_length=1, description="当前用户 ID。")],
db: DbSession,
) -> ConversationDeleteResponse:
deleted_count = AgentConversationService(db).delete_conversation(
conversation_id=conversation_id,
user_id=user_id,
source="user_message",
)
return ConversationDeleteResponse(deleted_count=deleted_count)
@router.delete(
"/conversations",
response_model=ConversationDeleteResponse,
@@ -69,9 +93,11 @@ def get_latest_conversation(
def delete_user_conversations(
user_id: Annotated[str, Query(min_length=1, description="当前用户 ID。")],
db: DbSession,
session_type: Annotated[str | None, Query(description="可选,会话类型,例如 expense / knowledge。")] = None,
) -> ConversationDeleteResponse:
deleted_count = AgentConversationService(db).delete_user_conversations(
user_id=user_id,
source="user_message",
session_type=session_type,
)
return ConversationDeleteResponse(deleted_count=deleted_count)