מערכת RAG למסמכים מקומית תחילה עם חיפוש היברידי ותמיכה בפורמטים מרובים
צוות המפתח כלים למפתחים היה זקוק למערכת בינה מסמכית מקומית לחלוטין, השומרת על פרטיות, שיכולה לקלוט פורמטים מרובים של קבצים, לבנות מאגרי ידע ניתנים לחיפוש, ולענות על שאילתות בשפה טבעית באמצעות Retrieval-Augmented Generation — מבלי לשלוח נתונים כלשהם ל-APIs חיצוניים.
דון בפרויקט שלך
האתגר
לפתרונות RAG הקיימים היו מגבלות משמעותיות עבור מקרי שימוש המודעים לפרטיות וממוקדים במפתחים:
- תלות ב-API חיצוני — רוב כלי ה-RAG דרשו שליחת תוכן מסמכים ל-APIs הטמעת ענן (cloud-based embedding APIs), מה שהפר את דרישות הפרטיות
- תמיכה מוגבלת בפורמטים — פתרונות טיפלו בדרך כלל רק בטקסט רגיל או PDF, והתעלמו מגיליונות אלקטרוניים, מסמכי Word, HTML ו-Markdown
- חיתוך גרוע (Chunking) — פיצול טקסט נאיבי התעלם ממבנה המסמך (עמודים, גיליונות, כותרות), ויצר חתיכות דלות הקשר (context-poor chunks)
- פערי מילות מפתח — חיפוש מבוסס הטמעות בלבד החמיץ התאמות מדויקות של מילות מפתח שחיפוש לקסיקלי היה תופס
- עיוורון לגיליונות אלקטרוניים — מערכות RAG לא יכלו לטפל בנתונים טבלאיים מובנים או לענות על שאילתות סינון/אגרגציה
- ללא דירוג מחדש (Reranking) — אחזור במעבר ראשון הציג לעיתים קרובות תוצאות רלוונטיות חלקית בלבד ללא מסנן איכות במעבר שני
הפתרון שלנו
בנינו מערכת RAG מקומית תחילה מלאה עם קליטת מסמכים בפורמטים מרובים, חיתוך מודע למבנה (structure-aware chunking), יצירת הטמעות מקומית, צינור חיפוש היברידי (סמנטי + טקסט מלא + עדכניות), דירוג מחדש באמצעות cross-encoder, וממשק משתמש מבוסס אינטרנט — הכל פועל במלואו על מכשיר המשתמש.
ארכיטקטורה
- טועני מסמכים (Document Loaders): מפענחים ספציפיים לפורמט עבור PDF, DOCX, XLSX, CSV, HTML, Markdown וטקסט רגיל
- חוצץ (Chunker): פיצול מודע למבנה השומר על גבולות עמוד, גיליון וכותרת
- הטמעות (Embeddings): מודל הטמעות מקומי באמצעות Transformers.js (ללא קריאות API חיצוניות)
- מסד נתונים וקטורי (Vector Database): LanceDB (ללא שרת, מבוסס קבצים) לאחסון הטמעות וחיפוש דמיון
- חיפוש טקסט מלא (Full-Text Search): אינדוקס מבוסס Trigram להתאמה לקסיקלית
- מדרג מחדש (Reranker): מודל Cross-Encoder לניקוד תוצאות מודע להקשר
- מנתח שאילתות (Query Analyzer): ניתוב זיהוי כוונה בין שאילתות סמנטיות למובנות
- שרת אינטרנט (Web Server): API של Express.js עם ניהול פרויקטים ונקודות קצה לחיפוש
- פרונטאנד (Frontend): ממשק משתמש מבוסס אינטרנט להעלאת מסמכים, ניהול וחיפוש אינטראקטיבי
צינור עיבוד מסמכים
טוענים מרובי פורמטים
תבנית רישום מזהה אוטומטית את סוג הקובץ ומנתבת למפענח המתאים:
- PDF — מיצוי טקסט עם פילוח ברמת העמוד
- Word (.docx/.doc) — ניתוח מודע לכותרות השומר על היררכיית המסמך
- Excel/CSV — ניתוח גיליון-אחר-גיליון עם זיהוי כותרות ותוכן ברמת השורה
- HTML — מיצוי מודע לתגים עם שימור מבנה
- Markdown — ניתוח מקטעים מבוסס כותרות
- טקסט רגיל — פילוח מבוסס שורות
כל טוען מחלץ מטא-דאטה (כותרת, מחבר, תאריך יצירה, ספירת עמודים/גיליונות, ספירת מילים) לצד התוכן, ומייצר מקטעים מובנים עם הפניות למקור.
חיתוך מודע למבנה
שלא כמו פיצול טקסט נאיבי, החוצץ מכבד את גבולות המסמך:
- שומר על מעברי עמוד (PDFs), גבולות גיליונות (גיליונות אלקטרוניים), והיררכיית כותרות (Word/Markdown)
- קביעת גודל מבוססת אסימונים עם גודל חיתוך וחפיפה ניתנים להגדרה
- גיבוי היררכי: מפצל לפי מקטעים תחילה, ואז פסקאות, ואז משפטים
- כל חיתוך שומר מטא-דאטה מקור (מספר עמוד, שם גיליון, כותרת) לייחוס
הטמעה ואינדוקס
מודל הטמעות מקומי
- פועל באופן מקומי לחלוטין באמצעות Transformers.js — אין נתונים עוזבים את המכונה
- מודל מכומת לאופטימיזציית ביצועים
- הטמעת אצווה לעיבוד המוני יעיל
- קיטום אוטומטי בגבולות מילים עם נורמליזציית L2
אחסון וקטורי
LanceDB מספק אחסון וקטורי ללא שרת (serverless):
- מבוסס קבצים (אין צורך בשרת מסד נתונים נפרד)
- בידוד לכל פרויקט עם אינדקסים עצמאיים
- מפתחות מטמון מבוססי SHA256 לביטול כפילויות
- מטא-דאטה מאוחסנת לצד וקטורים לאחזור מסונן
צינור חיפוש היברידי
צינור האחזור משלב שלושה אותות דירוג לתוצאות טובות יותר מכל גישה יחידה:
אות 1: חיפוש הטמעות (סמנטי)
חיפוש דמיון וקטורי מוצא חיתוכים בעלי משמעות קשורה גם כאשר נעשה שימוש במילים שונות. מטפל בניסוח מחדש, מילים נרדפות ושאילתות קונספטואליות.
אות 2: חיפוש טקסט מלא (לקסיקלי)
אינדוקס מבוסס Trigram עם דמיון Jaccard תופס התאמות מדויקות של מילות מפתח שחיפוש הטמעות עלול לפספס — חשוב למונחים טכניים, שמות ומזהים.
אות 3: הגברת עדכניות
שקלול דעיכה אקספוננציאלית מעדיף מסמכים שנגשו אליהם או שונו לאחרונה, ומבטיח שמידע עדכני יופיע ראשון.
שילוב ציונים
האותות משולבים עם משקלים ניתנים להגדרה (ברירת מחדל: 50% סמנטי, 25% לקסיקלי, 25% עדכניות), מנורמלים, ומסוננים על ידי סף ציון מינימלי.
דירוג מחדש באמצעות Cross-Encoder
לאחר האחזור הראשוני, מודל Cross-Encoder מדרג מחדש את המועמדים המובילים:
- ניקוד מודע להקשר מתייחס לצמדי שאילתה-מסמך יחד (לא באופן עצמאי)
- חישוב הגברת מילות מפתח עבור חפיפת מונחים
- ניקוד משולב (Cross-Encoder + אותות מילות מפתח)
- מייצר רשימה מדורגת סופית עם דיוק גבוה יותר מאשר אחזור במעבר ראשון בלבד
תמיכה בנתונים מובנים
עבור תוכן גיליונות אלקטרוניים, המערכת מספקת יכולות נוספות:
- זיהוי אוטומטי של סוגי עמודות (נומרי, תאריך, בוליאני, מחרוזת)
- סינון בשפה טבעית (לדוגמה, "עובדים בהנדסה עם שכר מעל סף")
- תמיכה באגרגציה (ספירה, סכום, ממוצע, מינימום, מקסימום)
- מנתח שאילתות מנתב שאילתות מובנות למנוע ייעודי במקום לחיפוש הטמעות
ממשק ווב
- ניהול פרויקטים — יצירה, עדכון ומחיקה של פרויקטים של מאגרי ידע
- העלאת מסמכים — העלאת קבצים בגרירה ושחרור עם זיהוי אוטומטי של פורמט
- יצירת מסמכים — יצירת מסמכים מטקסט ישירות בממשק המשתמש
- חיפוש אינטראקטיבי — ממשק שאילתות בשפה טבעית עם תוצאות מדורגות
- סטטיסטיקה — גודל אינדקס, ספירת מסמכים, וחלוקת פורמטים לכל פרויקט
תכונות עיקריות
- מקומי לחלוטין — כל העיבוד מתבצע במכשיר; אין קריאות API חיצוניות להטמעות או לחיפוש
- 9 פורמטים קלט — PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, טקסט רגיל
- חיתוך מודע למבנה — שומר על עמודים, גיליונות וכותרות כגבולות חיתוך
- חיפוש היברידי — משלב אותות סמנטיים, לקסיקליים ועדכניות לאחזור טוב יותר
- דירוג מחדש באמצעות Cross-Encoder — ניקוד במעבר שני לתוצאות בדיוק גבוה יותר
- שאילתות מובנות — סינון ואגרגציה בשפה טבעית על נתוני גיליונות אלקטרוניים
- מסד נתונים וקטורי ללא שרת — אחסון מבוסס קבצים של LanceDB ללא תקורה תשתיתית
- כתיבת מסמכים — יכולות ייצוא ליצירת PDF, DOCX ו-XLSX
- בידוד פרויקטים — מאגרי ידע עצמאיים עם אינדקסים נפרדים
- ממשק משתמש ווב — ממשק מלא לניהול מסמכים וחיפוש אינטראקטיבי
תוצאות
מחסנית טכנולוגית
caseStudyDetail.more מקרי בוחן
גלה עוד מהיישומים הטכניים שלנו
ניתוח גיליונות אלקטרוניים ומסמכים מבוסס AI עם תזמור מרובה-סוכנים והפניה בין מסמכים
צוות נתונים ארגוני נזקק לנתח, לשלוף ולערוך אוספים גדולים של גיליונות אלקטרוניים ומסמכים (Excel, CSV, Google Sheets, PDFs, Word docs) באמצעות שפה טבעית — עם היכולת להצליב נתונים בין קבצים מרובים ולבצע זרימות עבודה אנליטיות מרובות שלבים ללא טיוב נתונים ידני.
עיבוד חשבוניות מבוסס AI עם OCR ושילוב QuickBooks
עסק בגודל בינוני שעיבד מאות חשבוניות ספק בחודש נזקק לביטול הזנת נתונים ידנית על ידי חילוץ אוטומטי של נתוני חשבוניות באמצעות AI/OCR וסנכרונם ישירות ל-QuickBooks לצורך הנהלת חשבונות ומעקב תשלומים.
שאלות נפוצות
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.
מוכן לשנות את העסק שלך?
בואו נדון כיצד נוכל ליישם פתרונות דומים לאתגרים שלך.