קבלת משוב על כתובות בהודו

האתגר: הבנת האיכות של כתובות בהודו

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

  • קודי אימות חסרים או שגויים: קודי האימות חיוניים לניתוב יעיל של דואר וחבילות, אבל לעיתים קרובות הם לא מדויקים או חסרים.
  • שגיאות איות: שגיאות נפוצות בשמות של יישובים, ערים או מדינות עלולות להוביל לפרשנות שגויה.
  • סדר לא סטנדרטי של רכיבים: הרצף של רכיבי הכתובת (כמו מספר בית, רחוב, יישוב, עיר) יכול להשתנות באופן משמעותי, ולכן קשה לבצע עיבוד אוטומטי.
  • חוסר סטנדרטיזציה: מונחים לא רשמיים, קיצורים והפניות תיאוריות (למשל, "ליד המקדש הישן") הן נפוצות אבל לא מובנות על ידי מערכות רגילות.
  • הכללה של מידע יחסי: מונחים כמו "S/o" (בן של), "D/o" (בת של) או "C/o" (בטיפול של) מוטמעים לעיתים קרובות בכתובת, ומוסיפים נתונים שאינם קשורים למיקום.
  • וריאציות בסימון של יחידות משנה: רכיבים כמו מספרי יחידות, מספרי בתים או מספרי מגרשים (למשל, ‫"2/1") נכתבים בדרכים רבות, למשל "2/1",‏ "2-1",‏ "2 by 1" או "No 2, 1st part", ולכן קשה לנתח אותם באופן עקבי.
  • שכיחות של פרטים ברמת משנה של כתובת: כתובות רבות, במיוחד באזורים עירוניים, כוללות מידע חיוני ברמת משנה של כתובת, כמו מספרי דירות, מספרי קומה או פרטים על אגף בבניין. הפרטים האלה חיוניים למשלוח עד הבית, אבל לרוב הם לא מובנים.
  • דו-משמעות: לפעמים אפשר לפרש כתובות בכמה דרכים, ולכן לא בטוח איפה בדיוק הנקודה נמצאת.

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

הפתרון: משוב על כתובות מבוסס-AI

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

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

הרעיון המרכזי הוא להשתמש במודלים של Gemini ב-Vertex AI כדי:

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

המערכת מגיעה בשני גורמי צורה: – API ל-REST – ממשק משתמש באינטרנט

איך לקוחות בהודו יכולים להשתמש בכלי הזה

המטרה העיקרית היא לספק משוב על איכות הכתובות, אבל היתרונות לא מסתיימים כאן:

  1. שיפור שיעור המסירה: לעסקים, הבנה של הדרך הטובה ביותר למבנה כתובות יכולה להוביל לפחות ניסיונות מסירה שנכשלו, להפחתת עלויות תפעול ולשיפור שביעות רצון הלקוחות. אנשים פרטיים יכולים גם להשתמש בכתובות בפורמט תקין כדי להבטיח שהם יקבלו את החבילות והדואר שלהם בצורה מהימנה יותר.
  2. שיפור הנתונים: חברות יכולות להשתמש בתובנות שהן מקבלות מהכלי הזה (או לשלב את ה-API הבסיסי) כדי לנקות את מסדי הנתונים הקיימים של כתובות הלקוחות שלהן ולבצע בהם סטנדרטיזציה. כך הן יכולות לשפר את ניתוח הנתונים ואת השירותים הממוקדים שלהן.
  3. אימות חזותי: תצוגת המפה עם שתי הסיכות שימושית במיוחד. המשתמשים יכולים לראות אם הכתובות המקוריות והמשופרות מצביעות על אותו מיקום או על מיקומים שונים. כך אפשר לזהות אם הגרסה 'המנוקה' משקפת בצורה מדויקת את המיקום המבוקש, או אם הקלט המקורי היה מעורפל מדי או שגוי מדי בשביל קידוד גיאוגרפי נכון.

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

מהי האפליקציה הזו?

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

  • הזנת כתובת: אפשר להקליד את הכתובת ישירות או להדביק כמה כתובות לעיבוד בכמות גדולה.
  • קבלת כתובת אחרי ניקוי: האפליקציה מעבדת את הקלט ומספקת גרסה מתוקנת וסטנדרטית על סמך ההבנה של מודל ה-AI.
  • הבנת השינויים: השינויים שבוצעו בכתובת המקורית מודגשים, כדי לספק שקיפות לגבי תהליך המשוב.
  • הדמיה של ההבדלים: גם הכתובות המקוריות וגם הכתובות אחרי הניקוי מוצגות במפה אינטראקטיבית, כדי לאפשר למשתמשים להשוות חזותית בין המיקומים ולזהות במהירות אי-התאמות פוטנציאליות.
  • קבלת רכיבים מפורטים: הכתובת שעברה גיאו-קידוד (ניקוי) מחולקת לחלקים שמרכיבים אותה (כמו מספר רחוב, יישוב, עיר, מיקוד), וכך מתקבלת תצוגה מובנית.

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

ארכיטקטורת ה-Backend: מבוססת על Gemini ו-Vertex AI

היכולת של האפליקציה הזו להבין ולשפר כתובות מבוססת על טכנולוגיות AI מתקדמות של Google Cloud:

  • **עיבוד כתובות ליבה: ** המשימה הבסיסית של ניתוח, הבנה, תיקון וסטנדרטיזציה של מחרוזות כתובות מתבצעת על ידי מודל Gemini 2.5 Flash של Google. כששולחים כתובת:
    • אפליקציית הקצה הקדמי שולחת את כתובת הקלט לשירות קצה עורפי.
    • השירות הזה לקצה העורפי מבוסס על Gemini API. מודל Gemini 2.5 Flash מקבל הנחיה מפורטת כדי לוודא עיבוד מדויק ותקני. ההוראות העיקריות שניתנות למודל הן:
You are an address cleaning expert. Your task is to take malformed addresses
and output cleaned and standardized versions. All addresses will be from India.

BEGIN:
Follow these instructions:
Remove any mention of "House Number," "H.No," "Door Number," "D.No,"
"Building No", "Flat No." etc. along with the number it's associated with
Remove any "C/O," "S/O," etc.
DO NOT REMOVE any name of building
It should also remove any name of person or actual house numbers etc which
appear after the texts mentioned in the previous point
Ensure there are no duplicate mentions of town names, state names, etc.
If no valid zip code is available, add an error in the Errors field:
"No valid zip code found. Please verify."
Remove mention of any Floors in the address
If there are any mention of "Near or landmark" put that in a new field called
"address_descriptors"
Expand any rd, ln, st and similar other abbreviations to road, lane, street etc.
END:

BEGIN: Structuring the output
Output the cleaned address in a single line.
Output address should put State, Country, Zip code at the end in that order.
If any critical component of the address is missing, mention that in errors section.
**Critically important:** Provide a detailed description of every change made
to the address in the "changes_made" field. Do not omit this field.
IF a House number or unit number was removed add that in a separate field
called "subpremise_details".
Output the errors in the field called "errors". If no errors, provide an empty
array.
Output all responses in JSON format.
END:

הנחיה מובנית כזו עוזרת ל-Gemini 2.5 Flash:

  • לנתח קלט מורכב של כתובות, שלרוב לא מובנה.
  • זיהוי וחילוץ של רכיבי כתובת מרכזיים (למשל, מספר בית /דירה, שם בניין, רחוב, יישוב, יישוב משנה, עיר, מדינה, מיקוד).
  • תיקון שגיאות איות נפוצות ווריאציות.
  • סידור מחדש של הרכיבים בפורמט סטנדרטי יותר שמתאים להודו.
  • להסיק או לסמן מידע קריטי חסר, איפה שאפשר.
  • תכין רשימה של 'השינויים שבוצעו' ושל כל השגיאות, כדי לספק שקיפות. היכולת של המודל לפעול לפי ההוראות המפורטות האלה תוך כדי טיפול בדפוסים לשוניים מגוונים ובמידע הקשרי היא המפתח ליעילות שלו בפורמטים שונים של כתובות.

  • הצגה ומדרגיות (Cloud Run ב-Vertex AI או ב-Google Cloud): שירות הקצה העורפי (backend) שמתזמר את הקריאות ל-Gemini API ומחזיר את התוצאות לקצה הקדמי (frontend) בנוי כאפליקציה מבוססת-קונטיינר ללא שרת (serverless).

הארכיטקטורה ללא שרת (serverless) הזו מדגימה דרך לפרוס שירות כזה. כאפליקציית הדגמה, המטרה העיקרית שלה היא לאפשר ללקוחות לקבל במהירות משוב על איכות הכתובות.

איך משתמשים באפליקציה

האפליקציה זמינה בכתובת India address feedback app.

כדי להשתמש בו:

  1. מזינים את הכתובת: מקלידים או מדביקים את הכתובת בהודו בשדה הקלט.
  2. עיבוד הכתובת: לוחצים על הלחצן 'ניקוי הכתובת'.
  3. מעיינים בתוצאות: האפליקציה תציג:
    • הכתובת אחרי הניקוי.
    • מפה שבה מוצגים גם המיקומים המקוריים וגם המיקומים אחרי הניקוי.
    • פירוט של רכיבי הכתובת.
    • רשימת השינויים שבוצעו על ידי ה-AI.
    • כל השגיאות שזוהו.

דוגמה לקריאה ישירה ל-API (למפתחים)

מפתחים או מערכות שרוצים לשלב את הפונקציונליות של עיבוד כתובות ישירות יכולים לקרוא לשירות העורפי באופן פרוגרמטי. דוגמה לשימוש ב-cURL:

curl -X POST \
  https://gemini-address-cleaner-480439120941.us-central1.run.app/clean_address \
  -H "Content-Type: application/json" \
  -d '{
    "input_address": "S/O Laum Mirzapur Mirzapur Muzaffarpur Bihar India Mirzapur purani Darbhanga road SELAMBA BIHAR 843103"
  }'

הפקודה הזו שולחת בקשת POST עם מחרוזת הכתובת במטען ייעודי (payload) של JSON, ומחזירה תגובת JSON שמכילה את הכתובת המעובדת ומידע רלוונטי אחר, בדומה למה שמוצג באפליקציה.
האפליקציה הזו נועדה לפשט את המורכבות של הכתובות, ומציעה כלי חשוב לשיפור הדיוק והיעילות, במיוחד בסביבות מגוונות ודינמיות כמו הודו.