פונקציונליות סוכן AI
מסמך זה מתאר את היישום הנוכחי של `ai_agent` בסביבת הריצה של האוטומציה ובממשק המשתמש.
1) היכן הוא מיושם
- בונה שלבי ממשק משתמש: `application/views/automation.php` - מנהל משימות (דיספצ'ר) של סביבת הריצה ולוגיקת AI: `include_file/automations_functions.php` - קובץ כלול של פעולה: `include_file/automations/actions/ai_agent.inc.php`
2) התנהגות השלב
`ai_agent` מתנהג כשלב בקרה (בדומה ל-`if`):
- קורא למודל Gemini Flash עם הנחיה (prompt) + הקשר נבחר. - מצפה לתגובת JSON עם בוליאני `result` ושדות פלט נוספים. - אם `result = false`, מיישם את `extra_param.skip` לרשימת הדילוג של סביבת הריצה. - כל שדות הפלט המוחזרים מוזרקים להחלפות סביבת הריצה כ: - `{ai-<field_name>}`
דוגמה:
- AI מחזיר: `{"result": true, "message": "Hello"}` - שלבים הבאים יכולים להשתמש ב: `{ai-message}`
3) שדות ממשק משתמש
בחלון הקופץ של `ai_agent`:
- הנחיה (Prompt) (תיבת טקסט) - תוצאה (שורות דינמיות עם `name` + `type`) - סוגים נתמכים בממשק המשתמש: `date`, `text`, `number`, `email`, `boolean` - מקורות הקשר AI (שורות דינמיות) - נתוני לקוח - רשומות לקוח - מסמכי לקוח - צ'אט לקוח - קטע השהיה/התקדמות זמין כמו בפעולות אחרות.
נשמר ב-JSON של `parameter`:
{
"prompt": "user prompt here",
"result": [
{ "name": "message", "type": "text" }
],
"context_sources": ["customer_data", "customer_chat"]
}
4) שאילתות הקשר
כאשר נבחרו מקורות הקשר, סביבת הריצה בונה:
- `customer_data`: נתוני לקוח נוכחיים שכבר נמצאים בסביבת הריצה. - `customer_documents`: `SELECT * FROM documents WHERE cus_id = ? ORDER BY id DESC` - `customer_entries`: `SELECT * FROM tabs WHERE cus_id = ? ORDER BY id DESC` - `customer_chat`: משתמש באחד מההוקים הבאים אם קיים: - `automation_ai_get_last_customer_messages($cus_id, 10)` - `get_last_customer_messages_for_ai($cus_id, 10)` - גיבוי (fallback): מערך ריק
5) תמיכה בקבצים בהנחיה (prompt)
אם ההנחיה (prompt) מכילה נתיבי קבצים מלאים (pdf/image/audio), סביבת הריצה מזהה אותם אוטומטית ומצרפת אותם לבקשת Gemini כנתונים מוטבעים.
סיומות שזוהו:
- pdf - png / jpg / jpeg / gif / webp - mp3 / wav / ogg / m4a
6) API / מודל
- בדיקות מקור מפתח API: - `$GLOBALS['public']` - `$GLOBALS['public_var']` - ערכי סביבה `GEMINI_API_KEY` - ברירת מחדל של המודל: - `gemini-3.0-flash`
7) דוגמאות מעשיות
A) תשובה מצ'אט הלקוח האחרון
הנחיה (Prompt):
`answer to customer last message politly and save it in message`
סכימת תוצאה:
- `message` (text)
שימוש בשלב `sendEmail` הבא:
- `{ai-message}`
B) תמלול מקובץ שנשלח
הנחיה (Prompt):
`your job is to give transcription of last call in {file} and put it in transcript`
סכימת תוצאה:
- `transcript` (text)
שימוש בשלב הבא (לדוגמה, עדכון שדה מותאם אישית):
- `{ai-transcript}`
הערה: מפתח מציין המקום חייב להתאים בדיוק לשם שדה התוצאה. אם השדה הוא `transcription`, השתמש ב-`{ai-transcription}`.
