האתגר: הבנת האיכות של כתובות בהודו
מערכת הכתובות בהודו ידועה במגוון ובמורכבות שלה. כתובות יכולות להיות תיאוריות מאוד, לא סטנדרטיות, לכלול ציוני דרך מקומיים, ולעתים קרובות חסרים בהן מיקודים מדויקים או סדר עקבי של רכיבים. הדבר יוצר אתגרים משמעותיים לאנשים פרטיים, לפלטפורמות מסחר אלקטרוני, לחברות לוגיסטיקה ולספקי שירותים שמסתמכים על נתוני מיקום מדויקים. בעיות נפוצות שנתקלים בהן בכתובות הודיות:
- קודי אימות חסרים או שגויים: קודי האימות חיוניים לניתוב יעיל של דואר וחבילות, אבל לעיתים קרובות הם לא מדויקים או חסרים.
- שגיאות איות: שגיאות נפוצות בשמות של יישובים, ערים או מדינות עלולות להוביל לפרשנות שגויה.
- סדר לא סטנדרטי של רכיבים: הרצף של רכיבי הכתובת (כמו מספר בית, רחוב, יישוב, עיר) יכול להשתנות באופן משמעותי, ולכן קשה לבצע עיבוד אוטומטי.
- חוסר סטנדרטיזציה: מונחים לא רשמיים, קיצורים והפניות תיאוריות (למשל, "ליד המקדש הישן") הן נפוצות אבל לא מובנות על ידי מערכות רגילות.
- הכללה של מידע יחסי: מונחים כמו "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 – ממשק משתמש באינטרנט
איך לקוחות בהודו יכולים להשתמש בכלי הזה
המטרה העיקרית היא לספק משוב על איכות הכתובות, אבל יש לכך יתרונות נוספים:
- שיפור שיעור המסירה: לעסקים, הבנה של הדרך הטובה ביותר לבנות כתובות יכולה להוביל לפחות ניסיונות מסירה שנכשלו, להפחתת עלויות תפעול ולשיפור שביעות רצון הלקוחות. כדי לקבל את החבילות והדואר בצורה מהימנה יותר, אפשר גם להשתמש בכתובות בפורמט תקין.
- שיפור הנתונים: חברות יכולות להשתמש בתובנות שהן מקבלות מהכלי הזה (או לשלב את ה-API הבסיסי) כדי לנקות את מסדי הנתונים הקיימים של כתובות הלקוחות ולתקנן אותם, וכך לשפר את ניתוח הנתונים ואת השירותים הממוקדים.
- אימות ויזואלי: תצוגת המפה עם שתי הסיכות שימושית במיוחד. המשתמשים יכולים לראות אם הכתובות המקוריות והמשופרות מצביעות על אותו מיקום או על מיקומים שונים. כך אפשר לזהות אם הגרסה "המנוקה" משקפת בצורה מדויקת את המיקום המיועד, או אם הקלט המקורי היה מעורפל מדי או שגוי מדי בשביל קידוד גיאוגרפי נכון.
המשתמשים יכולים להבין את הבעיות הספציפיות בכתובות שלהם באמצעות המשוב שמוצג, לבצע פעולות לתיקון, לעדכן את הרשומות ולציין את המיקומים שלהם בצורה יעילה יותר.
מהי האפליקציה הזו?
אפליקציית האינטרנט הזו משמשת כממשק למערכת למשוב על כתובות שמבוססת על 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) הזו מדגימה דרך לפרוס שירות כזה. כאפליקציית הדגמה, המטרה העיקרית שלה היא לאפשר ללקוחות לקבל במהירות משוב על איכות הכתובת.
איך משתמשים באפליקציה
האפליקציה זמינה בכתובת India address feedback app.
כדי להשתמש בו:
- מזינים את הכתובת: מקלידים או מדביקים את הכתובת בהודו בשדה הקלט.
- עיבוד הכתובת: לוחצים על הלחצן 'ניקוי הכתובת'.
- מעיינים בתוצאות: האפליקציה תציג:
- הכתובת אחרי הניקוי.
- מפה שבה מוצגים גם המיקומים המקוריים וגם המיקומים אחרי הניקוי.
- פירוט של רכיבי הכתובת.
- רשימה של השינויים שבוצעו על ידי ה-AI.
- כל השגיאות שזוהו.
דוגמה לקריאה ישירה ל-API (למפתחים)
מפתחים או מערכות שרוצים לשלב את הפונקציונליות של עיבוד כתובות ישירות יכולים לקרוא לשירות ה-Backend באופן פרוגרמטי.
לדוגמה, אם משתמשים ב-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 שמכילה את הכתובת המעובדת ומידע רלוונטי אחר, בדומה למה שמוצג באפליקציה.
המטרה של האפליקציה הזו היא לפשט את המורכבות של כתובות, והיא מספקת כלי חשוב לשיפור הדיוק והיעילות, במיוחד בסביבות מגוונות ודינמיות כמו הודו.