В этой статье блога мы рассмотрим Rasa, популярную среду с открытым исходным кодом для создания диалоговых приложений искусственного интеллекта. Мы рассмотрим различные методы и предоставим примеры кода, которые помогут вам понять, как эффективно использовать возможности Rasa.
- Распознавание намерений.
Распознавание намерений — важнейший шаг в создании диалогового ИИ. Rasa предоставляет возможность определять намерения и обучать модели их точному распознаванию. Вот пример того, как определить намерения в Rasa:
## intent:greet
- Hi
- Hello
- Hey there
- Извлечение сущностей.
Сущности представляют собой важные фрагменты информации в сообщениях пользователя. Rasa позволяет вам определять сущности и извлекать их из вводимых пользователем данных. Вот пример:
## intent:book_flight
- Book a flight from [New York](source) to [San Francisco](destination) on [Friday](departure_date)
- Управление диалогами.
Rasa позволяет создавать интерактивные и динамичные разговоры. Вы можете определить потоки диалога, используя истории и правила. Вот пример истории на языке Раса:
## story_01
* greet
- utter_greet
* book_flight{"source": "New York", "destination": "San Francisco", "departure_date": "Friday"}
- action_book_flight
- Настраиваемые действия.
С помощью Rasa вы можете определять настраиваемые действия для выполнения определенных задач во время разговора. Вот пример специального действия по бронированию рейса:
class ActionBookFlight(Action):
def name(self) -> Text:
return "action_book_flight"
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
source = tracker.get_slot("source")
destination = tracker.get_slot("destination")
departure_date = tracker.get_slot("departure_date")
# Perform the flight booking logic here
dispatcher.utter_message("Your flight from {} to {} on {} has been booked.".format(source, destination, departure_date))
return []
- Действия с формой.
Rasa также поддерживает действия с формой, которые помогают пользователям задавать ряд вопросов для сбора всей необходимой информации. Вот пример:
class FlightBookingForm(FormAction):
def name(self) -> Text:
return "flight_booking_form"
@staticmethod
def required_slots(tracker: Tracker) -> List[Text]:
return ["source", "destination", "departure_date"]
def slot_mappings(self) -> Dict[Text, Union[Dict, List[Dict]]]:
return {
"source": self.from_entity(entity="source"),
"destination": self.from_entity(entity="destination"),
"departure_date": self.from_entity(entity="departure_date")
}
def submit(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
# Perform the flight booking logic here
dispatcher.utter_message("Your flight has been booked.")
return []
Rasa предоставляет полный набор методов и инструментов для создания диалоговых приложений искусственного интеллекта. В этой статье мы рассмотрели распознавание намерений, извлечение сущностей, управление диалогами с использованием историй и правил, настраиваемые действия и действия форм. Используя эти методы и примеры, вы сможете создавать мощные и интерактивные диалоговые возможности с помощью Rasa.