title: Feedback Analysis Agent
emoji: 📊
colorFrom: blue
colorTo: blue
sdk: docker
pinned: false
license: mit
Feedback Analysis Agent
מערכת ניתוח משובי משתמשים מבוססת SQL ו-LLM.
סקירה כללית
המערכת מאפשרת לשאול שאלות בשפה טבעית על משובי משתמשים ולקבל תשובות מפורטות ומבוססות נתונים. המערכת משתמשת בגישה מבוססת SQL - LLM יוצר שאילתות SQL, הן מבוצעות על הנתונים, ו-LLM נוסף יוצר תשובה מפורטת מהתוצאות.
תכונות עיקריות
- ✅ שאילתות בשפה טבעית - שאל שאלות בעברית על המשובים
- ✅ ניתוח אוטומטי - המערכת יוצרת שאילתות SQL אוטומטית
- ✅ בדיקת איכות אוטומטית - תשובות נבדקות אוטומטית ומשופרות אם נדרש
- ✅ ויזואליזציות - גרפים אוטומטיים של התוצאות
- ✅ ממשק משתמש מודרני - UI צבעוני ואינטואיטיבי
התקנה והרצה
דרישות מקדימות
- Python 3.10+
- קובץ
feedback_transformed_2.csvעם העמודות: ID, ServiceName, Level, Text, ReferenceNumber, RequestID, ProcessID, Year, Month, DayInMonth, DayOfWeek, Hour, DayOrNight
המערכת משתמשת ב-feedback_transformed_2.csv כברירת מחדל.
הערה: אם יש לך תאריכים אמיתיים, עדכן את CSV_PATH ב-.env או העלה את הקובץ עם התאריכים הנכונים.
התקנה
# יצירת סביבה וירטואלית
python -m venv .venv
source .venv/bin/activate # ב-Windows: .venv\Scripts\activate
# התקנת תלויות
pip install -r requirements.txt
הגדרת API Keys
צור קובץ .env בשורש הפרויקט:
GEMINI_API_KEY=your_gemini_key_here
# או
OPENAI_API_KEY=your_openai_key_here
הערה: לפחות אחד מה-API keys חייב להיות מוגדר.
הרצה
python run.py
השרת יעלה על http://127.0.0.1:8000
פתח את הדפדפן וגש ל-http://127.0.0.1:8000
ארכיטקטורה
המערכת מבוססת על 4 שלבים:
- ניתוח שאילתה - LLM מנתח את שאלת המשתמש
- יצירת שאילתות SQL - LLM יוצר 1-5 שאילתות SQL רלוונטיות
- ביצוע שאילתות - שאילתות SQL מבוצעות על הנתונים (SQLite in-memory)
- סינתזה ותשובה - LLM יוצר תשובה מפורטת מהתוצאות, כולל בדיקת איכות אוטומטית
לקריאה מפורטת יותר, ראה ARCHITECTURE.md
מבנה הפרויקט
.
├── 0_preprocessing/ # עיבוד מקדים וקבצים משלימים
│ ├── scripts/ # סקריפטים לעיבוד נתונים
│ ├── tests/ # בדיקות
│ ├── feedback_transformed_2.csv # נתוני המשובים המעובדים (לא ב-git)
│ └── *.md, *.pdf # מסמכי תכנון ותיעוד
├── 1_frontend/ # האפליקציה והחלק הפרונטי
│ ├── index.html # ממשק משתמש
│ └── app.js # לוגיקת frontend
├── 2_backend_llm/ # הלוגיקה והארכיטקטורה ה-LLM
│ ├── app/
│ │ ├── api.py # FastAPI endpoints
│ │ ├── sql_service.py # לוגיקת SQL ו-LLM
│ │ ├── config.py # הגדרות
│ │ └── data_loader.py # טעינת נתונים מ-CSV
│ ├── run.py # נקודת כניסה
│ └── app.py # wrapper
├── .env # API keys (לא ב-git)
└── requirements.txt # תלויות Python
שימוש
דרך הממשק
- פתח
http://127.0.0.1:8000בדפדפן - הזן שאלה בשדה הטקסט
- לחץ על "🔍 שאל"
- צפה בתשובה, שאילתות SQL, תוצאות, וגרפים
דרך API
curl -X POST http://127.0.0.1:8000/query-sql \
-H "Content-Type: application/json" \
-d '{"query": "כמה משתמשים כתבו תודה?", "top_k": 5}'
דוגמאות שאלות
- "כמה משתמשים כתבו תודה?"
- "מה הנושא המרכזי של המשובים שקיבלו ציון נמוך מ-3?"
- "חלק את המשובים ל-5 נושאים מרכזיים"
- "כמה משובים התקבלו בחודש האחרון?"
- "איך המשתמשים מרגישים כלפי השירות?"
Quality Assurance
המערכת כוללת בדיקת איכות אוטומטית:
- כל תשובה מקבלת ציון 0-100
- אם הציון < 80, המערכת מנסה לשפר את התשובה אוטומטית
- הקריטריונים: רלוונטיות, דיוק, מפורטות, בהירות, תובנות עסקיות
Visualizations
המערכת יוצרת גרפים אוטומטיים:
- Bar Charts - להשוואות
- Line Charts - למגמות לאורך זמן
- Scatter Plots - לקשרים בין משתנים
- Histograms - להתפלגות נתונים
Deployment
Docker
docker build -t feedback-analysis .
docker run -p 8000:8000 feedback-analysis
Runpod
ראה DEPLOYMENT_GUIDE.md לפרטים.
שינויים והתאמות
שינוי מודל LLM
ערוך ב-app/sql_service.py:
model = genai.GenerativeModel("gemini-2.0-flash") # שנה כאן
שינוי סף איכות
ערוך ב-app/sql_service.py:
if score < 80: # שנה כאן (0-100)
הוספת עמודות חדשות
ערוך ב-app/sql_service.py → _get_schema_info():
schema_info = f"""
טבלת Feedback מכילה את השדות הבאים:
- NewColumn: ... # הוסף כאן
"""
Troubleshooting
שגיאת "No feedback data available"
- ודא שקובץ
Feedback.csvקיים - ודא שהעמודות הנדרשות קיימות: ID, ServiceName, Level, Text
שגיאת API Key
- ודא שקובץ
.envקיים עםGEMINI_API_KEYאוOPENAI_API_KEY
תשובות לא איכותיות
- בדוק את הלוגים - המערכת מדפיסה ציוני איכות
- נסה לשנות את ה-prompt ב-
_synthesize_answer()
קישורים
- GitHub: https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod
- קורות חיים: https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/0_preprocessing/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf
רישיון
[לעדכן]