Spaces:
Running
Running
File size: 975 Bytes
e2b74e4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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())
|