models
Pydantic-модели для запросов и ответов Яндекс Диалогов.
Определяет структуры данных, используемые для валидации входящих запросов от Алисы и формирования ответов навыка.
1""" 2Pydantic-модели для запросов и ответов Яндекс Диалогов. 3 4Определяет структуры данных, используемые для валидации входящих 5запросов от Алисы и формирования ответов навыка. 6""" 7 8from typing import Any, Dict, List 9from pydantic import BaseModel 10 11 12class Meta(BaseModel): 13 """Мета-информация о запросе: локаль, часовой пояс, идентификатор клиента.""" 14 15 locale: str 16 timezone: str 17 client_id: str 18 interfaces: Dict[str, Any] 19 20 21class User(BaseModel): 22 """Информация о пользователе Яндекс Диалогов.""" 23 24 user_id: str 25 26 27class Application(BaseModel): 28 """Информация о приложении, с которого отправлен запрос.""" 29 30 application_id: str 31 32 33class Session(BaseModel): 34 """Данные сессии запроса: идентификаторы сообщения, сессии, навыка и пользователя.""" 35 36 message_id: int 37 session_id: str 38 skill_id: str 39 user: User 40 application: Application 41 user_id: str 42 new: bool 43 44 45class Nlu(BaseModel): 46 """NLU-составляющая запроса: токены, сущности и интенты.""" 47 48 tokens: List[str] 49 entities: List 50 intents: Dict 51 52 53class Markup(BaseModel): 54 """Разметка запроса, указывающая на опасный контекст.""" 55 56 dangerous_context: bool 57 58 59class Request(BaseModel): 60 """Тело запроса от Яндекс Алисы: команда, оригинальная фраза, NLU и разметка.""" 61 62 command: str 63 original_utterance: str 64 nlu: Nlu 65 markup: Markup 66 type: str 67 68 69class AliceRequest(BaseModel): 70 """ 71 Полный входящий запрос от Яндекс Алисы. 72 73 Содержит мета-информацию, данные сессии, тело запроса и версию протокола. 74 """ 75 76 meta: Meta 77 session: Session 78 request: Request 79 version: str 80 81 82class AliceResponse(BaseModel): 83 """ 84 Модель ответа навыка Яндекс Алисы. 85 86 Включает текст ответа, данные сессии и версию протокола. 87 """ 88 89 response: Dict[str, Any] 90 session: Dict[str, Any] 91 version: str = "1.0"
13class Meta(BaseModel): 14 """Мета-информация о запросе: локаль, часовой пояс, идентификатор клиента.""" 15 16 locale: str 17 timezone: str 18 client_id: str 19 interfaces: Dict[str, Any]
Мета-информация о запросе: локаль, часовой пояс, идентификатор клиента.
Информация о пользователе Яндекс Диалогов.
28class Application(BaseModel): 29 """Информация о приложении, с которого отправлен запрос.""" 30 31 application_id: str
Информация о приложении, с которого отправлен запрос.
34class Session(BaseModel): 35 """Данные сессии запроса: идентификаторы сообщения, сессии, навыка и пользователя.""" 36 37 message_id: int 38 session_id: str 39 skill_id: str 40 user: User 41 application: Application 42 user_id: str 43 new: bool
Данные сессии запроса: идентификаторы сообщения, сессии, навыка и пользователя.
46class Nlu(BaseModel): 47 """NLU-составляющая запроса: токены, сущности и интенты.""" 48 49 tokens: List[str] 50 entities: List 51 intents: Dict
NLU-составляющая запроса: токены, сущности и интенты.
54class Markup(BaseModel): 55 """Разметка запроса, указывающая на опасный контекст.""" 56 57 dangerous_context: bool
Разметка запроса, указывающая на опасный контекст.
60class Request(BaseModel): 61 """Тело запроса от Яндекс Алисы: команда, оригинальная фраза, NLU и разметка.""" 62 63 command: str 64 original_utterance: str 65 nlu: Nlu 66 markup: Markup 67 type: str
Тело запроса от Яндекс Алисы: команда, оригинальная фраза, NLU и разметка.
70class AliceRequest(BaseModel): 71 """ 72 Полный входящий запрос от Яндекс Алисы. 73 74 Содержит мета-информацию, данные сессии, тело запроса и версию протокола. 75 """ 76 77 meta: Meta 78 session: Session 79 request: Request 80 version: str
Полный входящий запрос от Яндекс Алисы.
Содержит мета-информацию, данные сессии, тело запроса и версию протокола.
83class AliceResponse(BaseModel): 84 """ 85 Модель ответа навыка Яндекс Алисы. 86 87 Включает текст ответа, данные сессии и версию протокола. 88 """ 89 90 response: Dict[str, Any] 91 session: Dict[str, Any] 92 version: str = "1.0"
Модель ответа навыка Яндекс Алисы.
Включает текст ответа, данные сессии и версию протокола.