Skip to content

arieldaniely/otzariaAI

Repository files navigation

אוצריא AI

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

מה המערכת עושה

  • מחפשת טקסטים רלוונטיים על בסיס משמעות ולא רק התאמה מילולית.
  • בונה אינדקס מקומי מהמסד כדי לאפשר חיפוש מהיר.
  • תומכת בטעינת מודל embeddings מ־Hugging Face או מקובץ ZIP מקומי.
  • מאפשרת סינון לפי ספרים וקטגוריות.
  • מספקת השלמה אוטומטית, הצעת תיקון איות והצגת הקשר רחב לתוצאה.
  • פועלת כשרת Flask מקומי עם ממשק אינטרנטי בכתובת http://127.0.0.1:8000.

דרישות מערכת

  • Python 3.10 ומעלה מומלץ
  • Windows מומלץ להרצה הנוכחית
  • מסד נתונים של אוצריא בפורמט db, sqlite או zip
  • חיבור אינטרנט רק אם רוצים להוריד מודל מ־Hugging Face או את מסד הנתונים אוטומטית

הערה: הקוד משתמש גם ב־tkinter כדי לפתוח חלונות בחירת קבצים מקומיים. ברוב התקנות הסטנדרטיות של Python ב־Windows הוא כבר מגיע מובנה.

התקנה

  1. צור סביבה וירטואלית:
python -m venv .venv
.venv\Scripts\Activate.ps1
  1. התקן את התלויות:
pip install -r requirements.txt

מסד הנתונים של הספרים

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

אם התוכנות אינן מותקנות, ניתן להוריד ידנית את אחד ממסדי הנתונים לבחירה:

שימו לב - עבור מסד הנתונים של זית יש להוריד את שני החלקים של זית כדי לחלץ את הקובץ בהצלחה.

לאחר ההורדה יש להגדיר את הנתיב של הקבצים המחולצים בהגדרות התוכנה.

הרצה

הרץ את היישום:

python app_ai.py

לאחר ההפעלה פתח בדפדפן:

http://127.0.0.1:8000

בעת העלייה המערכת תנסה:

  • לטעון הגדרות מתוך runtime/settings.json
  • לטעון את מסד הנתונים שהוגדר
  • לטעון את מודל ה־embeddings
  • לבנות או לטעון אינדקס חיפוש קיים מתוך תיקיית runtime

תצורת עבודה

הגדרות הריצה נשמרות בקובץ:

runtime/settings.json

דוגמאות לפרמטרים מרכזיים:

  • db_path - נתיב למסד הנתונים
  • edition - גרסת המודל, למשל v3
  • model_source - מקור המודל: hf או zip
  • zip_path - נתיב לקובץ ZIP של המודל
  • max_chunks - מספר הקטעים המקסימלי לאינדוקס
  • top_k - מספר תוצאות להצגה
  • min_score - ציון מינימלי לסינון תוצאות

מבנה הפרויקט

  • app_ai.py - קובץ היישום הראשי
  • app_ai.html - קובץ HTML נוסף/ישן של הממשק
  • static/ - קבצי CSS, JS, פונטים ואייקונים
  • runtime/ - קבצי אינדקס, SQLite ביניים והגדרות
  • db/ - מסדי נתונים שהועלו או הורדו
  • hf_cache/ - מטמון מודלים שהורדו מ־Hugging Face
  • local_models/ - מודלים שחולצו מקובצי ZIP
  • models_zips/ - קובצי ZIP של מודלים
  • אחרים/ - קבצי גרסאות וניסויים ישנים

יכולות עיקריות בקוד

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

ממשקי API עיקריים

  • GET / - עמוד החיפוש הראשי
  • GET /status - מצב טעינה/אינדוקס
  • GET /api/autocomplete - השלמה אוטומטית
  • GET /api/get_tree - עץ הספרייה
  • GET /api/get_context - שורות הקשר סביב תוצאה
  • POST /setup - שמירת הגדרות והפעלה מחדש של טעינה/אינדוקס
  • POST /upload_db - העלאת מסד נתונים
  • POST /upload_model - העלאת מודל ZIP
  • POST /download_db - הורדת מסד נתונים

מקורות נתונים ומודל

כברירת מחדל הקוד מצפה למודל embeddings מהמאגר:

ArieLLL123/otzaria-embeddings

הערות שימוש

  • אם אין אינדקס קיים בתיקיית runtime, הבנייה הראשונה עלולה לקחת זמן.
  • קבצי אינדקס ו־SQLite ביניים נשמרים מקומית כדי להאיץ הרצות חוזרות.
  • אם מסד הנתונים הוחלף, יש לבצע בנייה מחדש של האינדקס.
  • אם עובדים ללא אינטרנט, כדאי להשתמש במודל ZIP מקומי או במטמון קיים בתיקיית hf_cache.

קובץ דרישות

קובץ התלויות של הפרויקט נמצא ב־requirements.txt.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors