diff --git a/README.md b/README.md new file mode 100644 index 0000000..41c36eb --- /dev/null +++ b/README.md @@ -0,0 +1,122 @@ +# SmartAssistant - עוזר חכם + +**גרסה:** 1.0.0 | **מחבר:** klear | **EspoCRM:** >= 8.0.0 + +## תיאור +עוזר AI מאוחד למשרד עורכי דין. מספק ממשק צ'אט צף עם שני מצבי עבודה: **מצב משרד** (סקירה כללית, התראות, סטטיסטיקות) ו**מצב תיק** (סיוע מעמיק בתיק ספציפי). כולל מערכת זיכרון תיק מובנית, ביצוע פעולות באישור המשתמש, ואינטגרציה עם Stream של EspoCRM. + +מחליף את CrmAssistant + OfficeAssistant (deprecated). + +## תלויות +- Webhook חיצוני (n8n או דומה) לעיבוד AI +- NetworkStorageIntegration / NextCloudIntegration (אופציונלי — לניתוח מסמכים) + +## התקנה +1. התקנה דרך Admin > Extensions +2. הגדרת Webhook: Admin > Integrations > Smart Assistant + +## הגדרות אינטגרציה + +| שדה | תיאור | דוגמה | +|------|--------|--------| +| webhookUrl | כתובת Webhook לשירות AI | `https://n8n.example.com/webhook/assistant/chat` | +| apiKey | מפתח אימות (אופציונלי) | `sk-...` | +| maxMessagesPerHour | הגבלת קצב הודעות | `30` | +| inactivityWarningDays | סף אזהרה לחוסר פעילות בתיק | `14` | +| inactivityCriticalDays | סף קריטי לחוסר פעילות | `30` | +| upcomingHearingDays | חלון דיונים קרובים (ימים) | `7` | + +## אנטיטי: CaseMemory — זיכרון תיק + +מאגר ידע מובנה לכל תיק, מחולק לקטגוריות: + +| קטגוריה | תיאור | +|----------|--------| +| key_facts | עובדות מפתח | +| strategy | אסטרטגיה | +| decisions | החלטות | +| contacts_notes | הערות על אנשי קשר | +| timeline | ציר זמן | +| documents_notes | הערות על מסמכים | +| billing_notes | הערות חיוב | + +**מקורות:** ידני (manual), עוזר AI (assistant), אוטומטי (auto — hooks) + +**רמות חשיבות:** low, normal, high, critical + +## רכיבים + +### Backend (PHP) + +| רכיב | קובץ | תיאור | +|-------|------|--------| +| Controller | `Controllers/SmartAssistant.php` | API endpoints | +| שירות ראשי | `Services/SmartAssistantService.php` | תזמור צ'אט, שיחות, פעולות | +| בונה הקשר תיק | `Services/CaseContextBuilder.php` | אוסף נתוני תיק מלאים (אנשי קשר, משימות, מסמכים, זיכרון) | +| בונה הקשר משרד | `Services/OfficeContextBuilder.php` | סטטיסטיקות, התראות, עומס עבודה | +| מחשבון התראות | `Services/AlertCalculator.php` | זיהוי תיקים לא פעילים, משימות באיחור, דיונים קרובים | +| מבצע פעולות | `Services/ActionExecutor.php` | ביצוע פעולות שאושרו (משימה, פתק, דיון, שינוי סטטוס) | +| שירות זיכרון | `Services/CaseMemoryService.php` | CRUD לזיכרון תיק | +| ספק הקשר זיכרון | `Services/CaseMemoryContextProvider.php` | הזרקת זיכרון להקשר AI | +| מאגר שיחות | `Services/ConversationRepository.php` | שמירה ואחזור שיחות | +| מנתח מסמכים | `Services/DocumentAnalyzer.php` | סריקת מסמכים וסיווג | + +### Hooks + +| Hook | תיאור | +|------|--------| +| `Case/CaseFieldChangeMemory` | יצירת זיכרון אוטומטית בשינוי שדות תיק (סטטוס, שופט, דיון) | +| `Meeting/HearingScheduledMemory` | יצירת זיכרון בקביעת דיון חדש | + +### Frontend (JavaScript) + +| רכיב | תיאור | +|-------|--------| +| `floating-chat.js` | ממשק צ'אט צף (FAB) עם מגירת היסטוריה וזיכרון | +| `dashlets/smart-assistant.js` | דשלט עם מדדים והתראות | +| `stream/notes/smart-request.js` | תצוגת הודעת משתמש ב-Stream | +| `stream/notes/smart-response.js` | תצוגת תשובת עוזר ב-Stream | +| `stream/notes/smart-action.js` | תצוגת פעולה שבוצעה ב-Stream | +| `case/modals/add-memory.js` | מודל להוספת זיכרון ידנית | +| `site/navbar.js` | אינטגרציית התראות בסרגל ניווט | + +## API Routes + +| נתיב | Method | תיאור | +|-------|--------|--------| +| `/SmartAssistant/action/chat` | POST | שליחת הודעה לעוזר | +| `/SmartAssistant/action/execute` | POST | ביצוע פעולה שאושרה | +| `/SmartAssistant/action/summary` | GET | סיכום משרדי + התראות | +| `/SmartAssistant/action/alerts` | GET | רשימת התראות | +| `/SmartAssistant/action/history` | GET | היסטוריית שיחות | +| `/SmartAssistant/action/conversations` | GET | רשימת שיחות אחרונות | +| `/SmartAssistant/action/conversationMessages` | GET | הודעות שיחה ספציפית | +| `/SmartAssistant/action/searchHistory` | GET | חיפוש בשיחות | +| `/SmartAssistant/action/caseMemory` | GET | אחזור זיכרון תיק | +| `/SmartAssistant/action/saveMemory` | POST | שמירת זיכרון ידנית | + +## פעולות עוזר + +### פעולות מיידיות (ללא אישור) +- `list_documents` — רשימת מסמכים בתיק +- `save_memory` — שמירת זיכרון תיק + +### פעולות הדורשות אישור +- `create_task` — יצירת משימה +- `add_note` — הוספת הערה +- `change_status` — שינוי סטטוס תיק +- `create_meeting` — יצירת פגישה +- `schedule_hearing` — קביעת דיון +- `analyze_document` — ניתוח מסמך +- `rename_document` — שינוי שם מסמך + +## מערכת התראות + +| סוג | סף ברירת מחדל | חומרה | +|------|----------------|--------| +| תיק לא פעיל | 14 יום | אזהרה | +| תיק לא פעיל | 30 יום | קריטי | +| משימה באיחור | תאריך יעד עבר | קריטי | +| דיון קרוב | 7 ימים | אזהרה | +| תיק ללא שיוך | חדש ללא assignedUser | אזהרה | +| משימה בעדיפות גבוהה | 5 ימים | אזהרה |