from fastapi.responses import JSONResponse from pydantic import BaseModel from typing import List, Dict, Any, Optional class MessageText(BaseModel): text: List[str] class Message(BaseModel): text: MessageText = None payload: Optional[Dict[str, Any]] = None # Thêm trường payload tùy chọn class FulfillmentResponse(BaseModel): messages: List[Message] class DialogflowResponse(BaseModel): fulfillment_response: FulfillmentResponse def DialogFlowResponseAPI(text: List[str], payload: Optional[Dict[str, Any]] = None): """ Hàm tạo JSON response cho Dialogflow CX, hỗ trợ payload tùy chỉnh. """ messages = [] messages.append(Message(text=MessageText(text=text))) if payload: messages.append(Message(payload=payload)) response_data = DialogflowResponse( fulfillment_response=FulfillmentResponse(messages=messages) ) return JSONResponse(content=response_data.model_dump())