Я никогда не использовал DynamodB, поэтому я немного запутался в том, как мне следует проектировать ключи разделов.
Я должен хранить некоторые данные в DynamodB.Данные о намерениях и сущностях чат-бота.
В соответствии с каждым намерением и их сущностями существует конкретный ответ.
Например,
What is the capital of **India**?
intent: {capital_of_intent}
entityName: {country_name}
entityValue: "India"
answer: "New Delhi is the capital of India"
Я пишу лямбда-функцию, которая выбирает ответ на основенамерение и сущность, которые я нашел в вопросе, заданном пользователем.
Но если пользователь спросит,
Is **october** a good time to visit **India**?
intent: {visit-intent}
entityname: {country_name}
entityValue: "India"
entityName: {month}
entityValue: "october"
answer: "Yes, Weather in India during October is pleasant."
Этот первый пример довольно прост в обращении, но второй пример становится сложнымкогда в вопросе есть две сущности.
Теперь я хочу сохранить данные такого рода в DynamodB, я не могу понять, какое поле должно быть ключами моего раздела.Потому что, если у меня есть 2 объекта в вопросе, это означает, что у меня есть 2 объекта, который является массивом.У меня не может быть ключа раздела в виде массива.
Я пишу лямбда-функцию, которая будет извлекать данные на основе намерения и сущностей, но если я не использую намерение и сущности в качестве ключей секционирования, она не сможет ничего извлечь.
Должно быть что-то, что однозначно идентифицирует строки.
Может кто-нибудь помочь?