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