מערכת RAG מקומית למסמכים בגישת local-first עם חיפוש היברידי ותמיכה בריבוי פורמטים
צוות שפיתח כלי מפתחים היה זקוק למערכת בינת מסמכים מקומית לחלוטין, השומרת על פרטיות, שתוכל לקלוט פורמטים מרובים של קבצים, לבנות בסיסי ידע הניתנים לחיפוש, ולענות על שאילתות בשפה טבעית באמצעות Retrieval-Augmented Generation (RAG) — מבלי לשלוח נתונים כלשהם ל-APIs חיצוניים.
דון בפרויקט שלך
האתגר
לפתרונות RAG הקיימים היו מגבלות משמעותיות עבור מקרי שימוש ממוקדי-מפתחים ומודעי-פרטיות:
- תלות ב-API חיצוני — רוב כלי ה-RAG דרשו שליחת תוכן מסמכים ל-APIs של הטמעה מבוססי-ענן, מה שהפר את דרישות הפרטיות
- תמיכה מוגבלת בפורמטים — פתרונות טיפלו בדרך כלל רק בטקסט רגיל או PDF, והתעלמו מגיליונות אלקטרוניים, מסמכי Word, HTML ו-Markdown
- פיצול גרוע ל'צ'אנקים' (Chunking) — פיצול טקסט תמים התעלם ממבנה המסמך (עמודים, גיליונות, כותרות), ויצר 'צ'אנקים' דלי הקשר
- פערים במילות מפתח — חיפוש מבוסס הטמעה בלבד החמיץ התאמות מדויקות של מילות מפתח שחיפוש לקסיקלי היה תופס
- עיוורון לגיליונות אלקטרוניים — מערכות RAG לא יכלו לטפל בנתונים טבלאיים מובנים או לענות על שאילתות סינון/אגרגציה
- ללא דירוג מחדש (Reranking) — אחזור ראשוני הציף לעיתים קרובות תוצאות רלוונטיות חלקית בלבד ללא מסנן איכות במעבר שני
הפתרון שלנו
בנינו מערכת RAG מקומית לחלוטין בגישת local-first עם קליטת מסמכים בריבוי פורמטים, פיצול ל'צ'אנקים' מודע-מבנה, יצירת הטמעות מקומיות, צינור חיפוש היברידי (סמנטי + טקסט מלא + עדכניות), דירוג מחדש באמצעות cross-encoder, וממשק משתמש מבוסס-אינטרנט — הכל פועל בשלמותו על מכשיר המשתמש.
ארכיטקטורה
- טועני מסמכים (Document Loaders): מפענחים ספציפיים לפורמט עבור PDF, DOCX, XLSX, CSV, HTML, Markdown וטקסט רגיל
- מפצל (Chunker): פיצול מודע-מבנה השומר על גבולות עמוד, גיליון וכותרת
- הטמעות (Embeddings): מודל הטמעה מקומי באמצעות Transformers.js (ללא קריאות API חיצוניות)
- מסד נתונים וקטורי (Vector Database): LanceDB (ללא שרת, מבוסס קבצים) לאחסון הטמעות וחיפוש דמיון
- חיפוש טקסט מלא (Full-Text Search): אינדוקס מבוסס-טריגרם להתאמה לקסיקלית
- מדרג מחדש (Reranker): מודל Cross-encoder לניקוד תוצאות מודע-הקשר
- מנתח שאילתות (Query Analyzer): ניתוב זיהוי כוונה בין שאילתות סמנטיות למובנות
- שרת ווב (Web Server): Express.js API עם נקודות קצה (endpoints) לניהול פרויקטים וחיפוש
- ממשק קצה (Frontend): ממשק משתמש מבוסס-אינטרנט להעלאת מסמכים, ניהול וחיפוש אינטראקטיבי
צינור עיבוד מסמכים
טוענים מרובי-פורמטים
תבנית רישום מזהה אוטומטית את סוג הקובץ ומנתבת אותו למפענח המתאים:
- PDF — חילוץ טקסט עם פילוח ברמת העמוד
- Word (.docx/.doc) — פיענוח מודע-כותרות השומר על היררכיית המסמך
- Excel/CSV — פיענוח גיליון-אחר-גיליון עם זיהוי כותרות ותוכן ברמת השורה
- HTML — חילוץ מודע-תגיות עם שמירת מבנה
- Markdown — פיענוח מקטעים מבוסס-כותרות
- טקסט רגיל — פילוח מבוסס-שורות
כל טוען מחלץ מטא-נתונים (כותרת, מחבר, תאריך יצירה, ספירת עמודים/גיליונות, ספירת מילים) לצד התוכן, ומפיק מקטעים מובנים עם הפניות למקור.
פיצול ל'צ'אנקים' מודע-מבנה
שלא כמו פיצול טקסט תמים, המפצל ('chunker') מכבד את גבולות המסמך:
- שומר על מעברי עמוד (PDFs), גבולות גיליונות (גיליונות אלקטרוניים) והיררכיית כותרות (Word/Markdown)
- קביעת גודל מבוססת-אסימונים עם גודל 'צ'אנק' וחפיפה ניתנים להגדרה
- מנגנון חזרה היררכי: מפצל לפי מקטעים תחילה, ואז פסקאות, ואז משפטים
- כל 'צ'אנק' שומר על מטא-נתוני מקור (מספר עמוד, שם גיליון, כותרת) לצורך ייחוס
הטמעה ואינדוקס
מודל הטמעה מקומי
- פועל באופן מקומי לחלוטין באמצעות Transformers.js — ללא יציאת נתונים מהמכונה
- מודל מכומת לאופטימיזציית ביצועים
- הטמעת אצווה לעיבוד כמותי יעיל
- קיטוע אוטומטי בגבולות מילים עם L2 normalization
אחסון וקטורי
LanceDB מספק אחסון וקטורי ללא שרת (serverless):
- מבוסס קבצים (אין צורך בשרת מסד נתונים נפרד)
- בידוד לכל פרויקט עם אינדקסים עצמאיים
- מפתחות מטמון מבוססי SHA256 למניעת כפילויות
- מטא-נתונים מאוחסנים לצד וקטורים לאחזור מסונן
צינור חיפוש היברידי
צינור האחזור משלב שלושה אותות דירוג לתוצאות טובות יותר מכל גישה יחידה:
אות 1: חיפוש הטמעה (סמנטי)
חיפוש דמיון וקטורי מוצא 'צ'אנקים' בעלי משמעות קשורה גם כאשר נעשה שימוש במילים שונות. מטפל בניסוח מחדש, מילים נרדפות ושאילתות קונספטואליות.
אות 2: חיפוש טקסט מלא (לקסיקלי)
אינדוקס מבוסס-טריגרם עם Jaccard similarity תופס התאמות מדויקות של מילות מפתח שחיפוש הטמעה עלול לפספס — חשוב עבור מונחים טכניים, שמות ומזהים.
אות 3: חיזוק עדכניות
שקילת דעיכה אקספוננציאלית מעדיפה מסמכים שניגשו אליהם או שונו לאחרונה, ומבטיחה שמידע עדכני יצוף תחילה.
שילוב ציונים
האותות משולבים עם משקלים ניתנים להגדרה (ברירת מחדל: 50% סמנטי, 25% לקסיקלי, 25% עדכניות), מנורמלים, ומסוננים על ידי סף ציון מינימלי.
דירוג מחדש באמצעות Cross-Encoder
לאחר אחזור ראשוני, מודל cross-encoder מדרג מחדש את המועמדים המובילים:
- ניקוד מודע-הקשר מתייחס לצמדי שאילתה-מסמך יחד (לא באופן עצמאי)
- חישוב חיזוק מילות מפתח עבור חפיפת מונחים
- ניקוד משולב (cross-encoder + אותות מילות מפתח)
- מפיק רשימה מדורגת סופית בדיוק גבוה יותר מאחזור מעבר ראשון בלבד
תמיכה בנתונים מובנים
עבור תוכן גיליונות אלקטרוניים, המערכת מספקת יכולות נוספות:
- זיהוי אוטומטי של סוגי עמודות (מספרי, תאריך, בוליאני, מחרוזת)
- סינון בשפה טבעית (לדוגמה, "עובדים בהנדסה עם שכר מעל סף")
- תמיכה באגרגציה (ספירה, סכום, ממוצע, מינימום, מקסימום)
- מנתח שאילתות מנתב שאילתות מובנות למנוע ייעודי במקום לחיפוש הטמעה
ממשק אינטרנט
- ניהול פרויקטים — יצירה, עדכון ומחיקה של פרויקטים של בסיסי ידע
- העלאת מסמכים — העלאת קבצים בגרור-ושחרר עם זיהוי אוטומטי של פורמט
- יצירת מסמכים — יצירת מסמכים מטקסט ישירות בממשק המשתמש
- חיפוש אינטראקטיבי — ממשק שאילתות בשפה טבעית עם תוצאות מדורגות
- סטטיסטיקה — גודל אינדקס, ספירת מסמכים והתפלגות פורמטים לכל פרויקט
תכונות עיקריות
- מקומי לחלוטין — כל העיבוד מתבצע במכשיר; ללא קריאות API חיצוניות להטמעות או לחיפוש
- 9 פורמטים קלטים — PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, טקסט רגיל
- פיצול ל'צ'אנקים' מודע-מבנה — שומר על עמודים, גיליונות וכותרות כגבולות 'צ'אנקים'
- חיפוש היברידי — משלב אותות סמנטיים, לקסיקליים ועדכניות לאחזור טוב יותר
- דירוג מחדש באמצעות Cross-Encoder — ניקוד מעבר שני לתוצאות בדיוק גבוה יותר
- שאילתות מובנות — סינון ואגרגציה בשפה טבעית על נתוני גיליונות אלקטרוניים
- מסד נתונים וקטורי Serverless — אחסון מבוסס קבצים LanceDB ללא תקורה של תשתית
- כתיבת מסמכים — יכולות ייצוא ליצירת PDF, DOCX ו-XLSX
- בידוד פרויקטים — בסיסי ידע עצמאיים עם אינדקסים נפרדים
- ממשק משתמש ווב — ממשק מלא לניהול מסמכים וחיפוש אינטראקטיבי
תוצאות
מחסנית טכנולוגית
caseStudyDetail.more מקרי בוחן
גלה עוד מהיישומים הטכניים שלנו
ניתוח גיליונות אלקטרוניים ומסמכים מבוסס AI עם תזמור מרובה-סוכנים והפניה בין מסמכים
צוות נתונים ארגוני נזקק לנתח, לשלוף ולערוך אוספים גדולים של גיליונות אלקטרוניים ומסמכים (Excel, CSV, Google Sheets, PDFs, Word docs) באמצעות שפה טבעית — עם היכולת להצליב נתונים בין קבצים מרובים ולבצע זרימות עבודה אנליטיות מרובות שלבים ללא טיוב נתונים ידני.
פלטפורמת Catant לניהול משאבי אנוש וכוח אדם
Catant היא פלטפורמה מודולרית לניהול משאבי אנוש וכוח אדם המסייעת לארגונים לנהל עובדים, שכר, נוכחות ועמידה בתקנים מתוך לוח מחוונים אחד.
שאלות נפוצות
MicrocosmWorks בנתה מערכת RAG שהיא local-first, שבה כל בליעת המסמכים, יצירת ה-embeddings, אחסון וקטורים והסקת LLM פועלים כולם על התשתית שלך מבלי לשלוח נתונים כלשהם ל-APIs חיצוניים בענן. ארכיטקטורה זו חיונית לארגונים המטפלים במסמכים מסווגים, חומרים חסויים של יחסי עורך דין-לקוח, או קניין רוחני רגיש, שבהם דרישות ריבונות הנתונים אוסרות כל עיבוד בענן, אפילו עם הצפנה.
MicrocosmWorks יישמה צינור אחזור היברידי שמריץ חיפוש מילות מפתח BM25 וחיפוש סמנטי של וקטורים דחוסים במקביל, ולאחר מכן משתמש ב-reciprocal rank fusion כדי למזג ולדרג מחדש את התוצאות המשולבות לפני העברתן ל-LLM כהקשר. גישה זו לוכדת שאילתות התאמה מדויקת כמו קודי מוצר וציטוטים משפטיים שחיפוש סמנטי מפספס, תוך כדי גם אחזור תוכן קשור רעיונית שחיפוש מילות מפתח לעולם לא היה מוצא.
MicrocosmWorks בנתה מנתחי פורמטים ספציפיים עבור PDF, DOCX, XLSX, PPTX, HTML, Markdown וטקסט רגיל, עם מנגנון OCR המשתמש ב-Tesseract עבור קובצי PDF סרוקים ומסמכים מבוססי תמונה. המערכת מזהה אוטומטית אם קובץ PDF מכיל טקסט לבחירה או דורש OCR, מיישמת ניתוח פריסה כדי לשמר מבני טבלאות וסדר קריאה, ומחלקת מסמכים ל-chunks באמצעות גבולות סמנטיים במקום מגבלות תווים שרירותיות כדי לשפר את איכות השליפה.
MicrocosmWorks יישמה אינדוקס מצטבר שעוקב אחר checksums של מסמכים ומעבד מחדש רק קבצים שהשתנו מאז הרצת הקליטה האחרונה. במסמכים מעודכנים, ה-chunks הישנים שלהם מוסרים ו-chunks חדשים מוכנסים באופן אטומי, כך שאינדקס החיפוש לעולם אינו במצב לא עקבי. המערכת גם תומכת באחזור מסמכים מבוסס גרסאות, המאפשר למשתמשים לבצע שאילתות על גרסאות היסטוריות של מסמכים בעת הצורך לצורכי ביקורת או עמידה בתקנים.
MicrocosmWorks אופטימזה את צינור ה-RAG המקומי לרוץ על חומרה צנועה, כאשר התצורה המינימלית המומלצת היא מכונה עם 32GB RAM, 8 ליבות CPU, ובאופן אופציונלי GPU בינוני עבור accelerated embedding generation. עבור ארגונים ללא חומרת GPU, המערכת חוזרת למודלי embeddings מבוססי CPU עם latency גבוה במקצת, ומסד הנתונים הווקטורי מותאם לאחסון SSD כדי לשמור על זמני תגובה לשאילתות מתחת ל-200ms עבור קורפוסים של עד מיליון document chunks.
מוכן לשנות את העסק שלך?
בואו נדון כיצד נוכל ליישם פתרונות דומים לאתגרים שלך.