Spaces:
Running
Running
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()) | |