dialogflowAPI / common /response /respone_dialogflow.py
OnlyBiggg
'refactor'
5564ecb
raw
history blame
1.09 kB
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: Optional[MessageText] = None
payload: Optional[Dict[str, Any]] = None
class FulfillmentResponse(BaseModel):
messages: List[Message]
class SessionInfo(BaseModel):
parameters: Dict[str, Any]
class DialogflowResponse(BaseModel):
fulfillment_response: FulfillmentResponse
sessionInfo: Optional[SessionInfo] = None
def DialogFlowResponseAPI(text: List[str] = None, payload: Optional[Dict[str, Any]] = None, parameters: Optional[Dict[str, Any]] = None):
messages = []
if text:
messages.append(Message(text=MessageText(text=text)))
if payload:
messages.append(Message(payload=payload))
response_data = DialogflowResponse(
fulfillment_response=FulfillmentResponse(messages=messages),
sessionInfo=SessionInfo(parameters=parameters or {})
)
return JSONResponse(content=response_data.model_dump())