Rasa Nedir?

Rümeysa Aktop
Turk Telekom Bulut Teknolojileri
3 min readJan 24, 2024

Rasa, diyalog tabanlı chatbot oluşturmak için makine öğrenimi ve yapay zeka gibi bir dizi kaynaktan ilham alan açık kaynak framework’tür. Ayrıca bir dizi parametreyi değiştirebilmek ve kendi özel bileşenlerinizi kolayca ekleyebilmek için esneklik sunar.

Rasa, Nlu(Natural Language Understanding) ve Core olmak üzere 2 ana bileşeden oluşur.

Rasa Nlu (Natural Language Understanding)

NLU (Natural Language Understanding), doğal dil anlama görevlerini gerçekleştiren ve Rasa Chatbot’un kullanıcı girişlerini anlamasına yardımcı olan bir açık kaynaklı doğal dil işleme (NLP) kütüphanesidir. Amacı kullanıcı mesajlarından yapılandırılmış bilgi çıkarmaktır. Bu bilgi, niyetleri (intents) ve varlıkları (entities) içerir. Modelin, intents ve entities’lerin doğru şekilde tanımlamasına yardımcı olmak için eğitim verilerinize arama tabloları gibi ekstra bilgiler de ekleyebilirsiniz .

Nlu (Natural Language Understanding) Bileşenleri:

Model Initializer: Bir model başlatıcıdır, SpaCy veya MITIE gibi doğal dil işleme kütüphanelerinin önceden eğitilmiş modellerini yükleyebilir.

Tokenizer: Giriş metnini kelimelere bölmek için bir belirteç kullanılır. Bu, metni küçük parçalara bölerek her bir kelimenin ayrı ele alınmasına ve cümleyi anlamlandırmaya olanak sağlar.

Featurizer: Metindeki kelimeleri makine öğrenimi algoritmalarının anlayabileceği sayısal özelliklere dönüştürür.

Named Entity Recognizer (ner): Girilen metinde tanımlanan varlıkları (isim, tarih, miktar) çıkarır.

Intent Classifier: Kullanıcının girdisini analiz ederek bir niyet eşleştirmeye yarar. Bu niyet bilgi talep etmek, özel action çalıştırmak olabilir.

Şekil-1: Nlu Bileşenleri

Rasa Core

Konuşmanın mevcut durumunu yönetmekten ve bir konuşma bağlamında yapılması gereken bir sonraki eylemin ne olması gerektiğine karar vermekten sorumludur. Bu eylem basit bir mesaj döndürmek veya custom action olabilir.

Rasa Core Bileşenleri:

Intent: Kullanıcının niyeti ile ifade edilmek istenen veriyi ifade eder.

Entity: Kullanıcının girdisinden çıkarılan özel varlığı ifade eder.

Story: Kullanıcı tarafından girilen mesajların, ilgili intent’ler ile eşleştirilmesi ile bot’un vereceği cevapları içeren sohbet akışını yönetir.

Template: Botun vereceği cevaplar, rasa da akışlar içerisinde direkt olarak yazılmamaktadır. Bunun için ayrıca template’ler tanımlanıp, bu template’lerin isimleri akışların içerisine yazılması gerekmektedir.

Action: Sabit bir cevaptan ziyade, veri tabanından veya herhangi bir başka yerden bir sonuç alınıp kullanıcıya gönderilmek isteniyorsa, bu durumlarda action lar kullanılmaktadır. Action aslında python ile yazılmış birer fonksiyondur.

Şekil-2: Rasa Core

Rasa Core ve NLU bağımsız kütüphanelerdir. Birlikte çalışmaları aşağıdaki şekilden inceleyebilirsiniz.

Şekil-3: Nlu ve Core Çalışmaları

Rasa AI Kullanmanız İçin Bazı Sebepler:

  • Rasa AI, açık kaynaklı bir platformdur ve ücretsiz olarak kullanılabilir.
  • Rasa AI, doğal dil işleme (NLP) yetenekleri ile etkileşimli sohbetlerin gerçekleştirilmesine olanak tanır.
  • Rasa, topluluk forumları ve kapsamlı dokümantasyon sunar.
  • Rasa, bulut tabanlı çözümlerle entegre edilebilir ve bu sayede ihtiyaç doğrultusunda kolayca ölçeklenebilir.
  • Çoklu platform desteği ile Slack, Facebook Messenger, WhatsApp gibi farklı sohbet platformlarına kolayca entegre edilebilir.

Belirli iş sektörleri veya kullanıcı ihtiyaçlarına daha iyi uyum sağlamak için şekil-4' teki adımları takip ederek Rasa chatbotunuzu özelleştirebilirsiniz.

Şekil-4: Özelleştirilmiş Adımlar

İlk adımda, eğitim verilerinizi kullanıcı kitlesi ve senaryolara uygun hale getirebilirsiniz.

İkinci adımda, daha iyi performans ve tutarlılık sağlaması için belirli bir sektöre uygun modelleri değerlendirebilirsiniz.

Üçüncü adım, özel actionlar ile botun hedefinize uygun görevleri gerçekleştirmesini sağlayabilirsiniz.

Dördüncü adım, özel şablon yanıtları oluşturarak botun amacınıza özgü yanıtlar vermesini sağlayabilirsiniz.

Son olarak, beşinci adımda, botun sistemlerinizle daha iyi uyum sağlaması için entegrasyonları özelleştirebilirsiniz.

Kaynaklar:

https://rasa.com/docs/rasa/2.x/

--

--