This commit is contained in:
2026-02-19 17:50:14 +00:00
parent da95a64fb7
commit 6f629c53a6
171 changed files with 7281 additions and 1144 deletions

View File

@@ -0,0 +1,49 @@
"""
Copyright 2025 Google. This software is provided as-is, without warranty or
representation for any use or purpose. Your use of it is subject to your
agreement with Google.
Conversation API endpoints.
"""
import logging
from fastapi import APIRouter, Depends, HTTPException
from ..models import ExternalConvRequestDTO, DetectIntentResponseDTO
from ..services import ConversationManagerService
from ..dependencies import get_conversation_manager
logger = logging.getLogger(__name__)
router = APIRouter(prefix="/api/v1/dialogflow", tags=["conversation"])
@router.post("/detect-intent", response_model=DetectIntentResponseDTO)
async def detect_intent(
request: ExternalConvRequestDTO,
conversation_manager: ConversationManagerService = Depends(
get_conversation_manager
),
) -> DetectIntentResponseDTO:
"""
Detect user intent and manage conversation.
Args:
request: External conversation request from client
Returns:
Dialogflow detect intent response
"""
try:
logger.info("Received detect-intent request")
response = await conversation_manager.manage_conversation(request)
logger.info("Successfully processed detect-intent request")
return response
except ValueError as e:
logger.error(f"Validation error: {str(e)}", exc_info=True)
raise HTTPException(status_code=400, detail=str(e))
except Exception as e:
logger.error(f"Error processing detect-intent: {str(e)}", exc_info=True)
raise HTTPException(status_code=500, detail="Internal server error")