שילוב Rasa NLP עבור צ'אטבוטים ניידים

פתרונות NLP סטנדרטיים מתקשים לעיתים קרובות עם השפה הרוסית, ושירותי ענן אינם מתאימים לחברות עם דרישות סודיות גבוהות. אנו מגדירים את Rasa למשימות שלך, בונים צינור עיבוד מותאם ומאמנים מודלים על נתונים איכותיים. הצוות שלנו מספק אינטגרציה מלאה, מבדיקת היתכנות ועד תמיכה שוטפת, ומבטיח זיהוי מדויק ותפעול אמין של הבוט.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שילוב Rasa NLP עבור צ'אטבוטים ניידים
מורכב
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

שילוב Rasa NLP עבור צ'אטבוטים למובייל

תצורת Rasa סטנדרטית ברוסית מניבה דיוק של כ-50% — בביטויים קצרים, המשמעות היא שכל בקשה שנייה מזוהה באופן שגוי. לקוחות עם דרישות סודיות מחמירות (רפואה, פיננסים) אינם יכולים להשתמש בשירותי NLP בענן כמו Dialogflow או Google NL. עבורם, Rasa היא האפשרות היחידה, אך היא דורשת כוונון נכון. אנו עוסקים בכך שנים רבות: למעלה מ-20 פרויקטים, שיפור ממוצע בדיוק מ-50% ל-85% באמצעות pipeline מותאם אישית ומערך נתונים איכותי.

למה Rasa עדיפה על Dialogflow עבור נתונים רגישים

Rasa מתארחת עצמאית, בעוד Dialogflow מבוססת ענן. עבור חברות שבהן הנתונים חייבים להישאר על השרת המקומי, ההבדל הוא מהותי. Rasa מעניקה שליטה מלאה על ה-pipeline: ניתן להחליף כל רכיב, להוסיף tokenizer משלך, ולהשתמש במודלים מותאמים אישית. Dialogflow מגבילה אותך למנגנונים מובנים. בקנה מידה של 10,000+ דיאלוגים ביום, Rasa זולה פי 3–4 בשל היעדר עמלות לפי בקשה.

מאפיין Rasa Dialogflow
פריסה אירוח עצמי (השרת שלך) ענן (Google)
שליטה בנתונים מלאה מוגבלת
עלות ב-10,000 בקשות/יום ~200$ לחודש (VPS) ~400$ לחודש (Standard)
דיוק ברוסית (pipeline מותאם) 85%+ 80%
תמיכה בפעולות מותאמות אישית כן (Python) כן (Webhook, איטי יותר)

כיצד אנו מגדירים את Rasa עבור רוסית

הבעיה המרכזית היא ש-WhitespaceTokenizer ברירת המחדל עובד בצורה גרועה עם המורפולוגיה הרוסית. אנו מחליפים אותו ב-SpacyNLP באמצעות מודל ru_core_news_md ומוסיפים מאפייני char n-gram דרך CountVectorsFeaturizer. הנה תצורת הייצור שבה אנו משתמשים:

---
language: ru
pipeline:
  - name: SpacyNLP
    model: ru_core_news_md
  - name: SpacyTokenizer
  - name: SpacyFeaturizer
  - name: RegexFeaturizer
  - name: LexicalSyntacticFeaturizer
  - name: CountVectorsFeaturizer
  - name: CountVectorsFeaturizer
    analyzer: char_wb
    min_ngram: 1
    max_ngram: 4
  - name: DIETClassifier
    epochs: 150
  - name: EntitySynonymMapper
  - name: ResponseSelector
    epochs: 100
  - name: FallbackClassifier
    threshold: 0.7
    ambiguity_threshold: 0.1
---

pipeline זה מניב דיוק של 85% על מערך של 20–50 כוונות. DIETClassifier עם 150 epochs מתאמן תוך 5–10 דקות על VPS עם 4 GB RAM.

כיצד Rasa Core מנהלת דיאלוג

Rasa מפרידה בין NLU (זיהוי כוונות) לבין Core (ניהול דיאלוג). Core פועלת על כללים (language: ru pipeline: - name: SpacyNLP model: ru_core_news_md - name: SpacyTokenizer - name: SpacyFeaturizer - name: RegexFeaturizer - name: LexicalSyntacticFeaturizer - name: CountVectorsFeaturizer - name: CountVectorsFeaturizer analyzer: char_wb min_ngram: 1 max_ngram: 4 - name: DIETClassifier epochs: 150 - name: EntitySynonymMapper - name: ResponseSelector epochs: 100 - name: FallbackClassifier threshold: 0.7 ambiguity_threshold: 0.1 ) וסיפורים (rules.yml). הטעות הנפוצה ביותר היא לנסות לתאר את כל התרחישים באמצעות stories.yml ולהגיע למערכת שבירה שקורסת על סדר אמירות לא סטנדרטי.

כלל: פקודות נוקשות (ביטול, עזרה, הפעלה מחדש) נכנסות ל-rules. תרחישים רב-שלביים עם שונות נכנסים ל-rules. Rasa Core לומדת מסיפורים ומכלילה תרחישים שלא נראו — זה היתרון המרכזי שלה על פני עצי החלטה.

פעולות מותאמות אישית. תגובות דינמיות (סטטוס הזמנה, משבצות פנויות) מיושמות דרך stories — שירות Python נפרד ש-Rasa קוראת לו דרך HTTP. אפליקציית המובייל אינה מתקשרת איתו ישירות:

class ActionCheckOrderStatus(Action):
    def name(self) -> str:
        return "action_check_order_status"

    async def run(self, dispatcher, tracker, domain) -> list:
        order_id = tracker.get_slot("order_id")
        status = await order_service.get_status(order_id)
        dispatcher.utter_message(text=f"Ваш заказ #{order_id}: {status}")
        return [SlotSet("order_status", status)]

כיצד לשלב את Rasa עם אפליקציית מובייל

Rasa Server מספק ערוץ REST בכתובת action_server. אפליקציית המובייל שולחת בקשת POST:

{ "sender": "user_device_id_or_session_uuid", "message": "текст сообщения" } 

התשובה היא מערך של הודעות, שכל אחת יכולה להיות טקסט, תמונה, כפתורים או payload מותאם אישית.

באנדרואיד, זו קריאת Retrofit סטנדרטית. חשוב: class ActionCheckOrderStatus(Action): def name(self) -> str: return "action_check_order_status" async def run(self, dispatcher, tracker, domain) -> list: order_id = tracker.get_slot("order_id") status = await order_service.get_status(order_id) dispatcher.utter_message(text=f"Ваш заказ #{order_id}: {status}") return [SlotSet("order_status", status)] חייב להיות מזהה סשן יציב — Rasa שומרת slots בין בקשות בתוך אותו sender. יצירת מזהה חדש בכל פעם תאבד את הקשר הדיאלוגי.

לייצור, אין לחשוף את Rasa ישירות לאינטרנט — אנו מציבים nginx בחזית עם הגבלת קצב ואימות token.

פריסה

Rasa Server + Action Server רצים בקלות דרך Docker Compose. המודל מאומן עם /webhooks/rest/webhook ומורכב לתוך הקונטיינר. על VPS קטן, אימון של 50 כוונות אורך 5–10 דקות — מקובל לחלוטין עבור CI/CD.

Rasa Enterprise (גרסה מסחרית) מוסיפה אנליטיקה ובדיקות A/B של דיאלוגים, אך עבור רוב המשימות הגרסה בקוד פתוח מספיקה.

מה כלול בעבודה שלנו

  • ביקורת תחום ואיסוף אמירות לדוגמה עבור מערך נתוני ה-NLU.
  • הגדרת pipeline, אימון מודל בסיסי, הערכת דיוק דרך { "sender": "user_device_id_or_session_uuid", "message": "текст сообщения" } .
  • פיתוח תרחישי דיאלוג (כללים + סיפורים), פעולות מותאמות אישית.
  • שילוב ערוץ REST עם לקוח המובייל, הגדרת תשתית.
  • תיעוד והדרכה לצוות שלך.
  • תמיכה אחריות ל-30 יום.

לוחות זמנים

שילוב עם שרת Rasa קיים — 3–4 ימים. מחזור מלא כולל אימון מודל מאפס, כתיבת תרחישים ופריסה — 2–4 שבועות בהתאם למספר הכוונות.

צור קשר להערכת פרויקט. קבל ייעוץ על הגדרת Rasa למשימה שלך. תיעוד Rasa | ויקיפדיה: Rasa