40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from app.schemas.agent_api import (
|
|
BindRagSessionRequest,
|
|
BindRagSessionResponse,
|
|
CreateAgentSessionResponse,
|
|
ResetAgentSessionResponse,
|
|
)
|
|
from app.modules.agent_api.application.session_service import SessionService
|
|
|
|
|
|
class SessionController:
|
|
def __init__(self, service: SessionService) -> None:
|
|
self._service = service
|
|
|
|
def create_session(self) -> CreateAgentSessionResponse:
|
|
session = self._service.create()
|
|
return CreateAgentSessionResponse(
|
|
session_id=session.session_id,
|
|
active_rag_session_id=session.active_rag_session_id,
|
|
created_at=session.created_at,
|
|
)
|
|
|
|
def bind_rag_session(self, session_id: str, request: BindRagSessionRequest) -> BindRagSessionResponse:
|
|
session = self._service.bind_rag_session(session_id, request.rag_session_id)
|
|
return BindRagSessionResponse(
|
|
session_id=session.session_id,
|
|
active_rag_session_id=session.active_rag_session_id,
|
|
updated_at=session.updated_at,
|
|
)
|
|
|
|
def reset_session(self, session_id: str) -> ResetAgentSessionResponse:
|
|
session = self._service.reset(session_id)
|
|
return ResetAgentSessionResponse(
|
|
session_id=session.session_id,
|
|
active_rag_session_id=session.active_rag_session_id,
|
|
status="reset",
|
|
updated_at=session.updated_at,
|
|
)
|