f616065585
Cards "תיקים פתוחים" and "דיונים השבוע" showed counts but clicking revealed "אין פריטים להצגה" because card counts came from direct DB queries while detail filtered from alerts with stricter criteria. Added getOpenCaseItems() and getUpcomingHearingItems() to AlertCalculator, included them in summary API response, and wired dashlet to use them. Also: renamed extension to SmartAssistant, title to "שירה — עוזרת אישית". Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
121 lines
6.0 KiB
Markdown
121 lines
6.0 KiB
Markdown
# SmartAssistant - עוזר חכם
|
|
|
|
**גרסה:** 1.1.0 | **מחבר:** klear | **EspoCRM:** >= 8.0.0
|
|
|
|
## תיאור
|
|
עוזר AI מאוחד למשרד עורכי דין. מספק ממשק צ'אט צף עם שני מצבי עבודה: **מצב משרד** (סקירה כללית, התראות, סטטיסטיקות) ו**מצב תיק** (סיוע מעמיק בתיק ספציפי). כולל מערכת זיכרון תיק מובנית, ביצוע פעולות באישור המשתמש, ואינטגרציה עם Stream של EspoCRM.
|
|
|
|
## תלויות
|
|
- 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 ימים | אזהרה |
|