galbendavids's picture
Fix README metadata: change colorTo to blue
00553ad
---
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` או העלה את הקובץ עם התאריכים הנכונים.
### התקנה
```bash
# יצירת סביבה וירטואלית
python -m venv .venv
source .venv/bin/activate # ב-Windows: .venv\Scripts\activate
# התקנת תלויות
pip install -r requirements.txt
```
### הגדרת API Keys
צור קובץ `.env` בשורש הפרויקט:
```env
GEMINI_API_KEY=your_gemini_key_here
# או
OPENAI_API_KEY=your_openai_key_here
```
**הערה**: לפחות אחד מה-API keys חייב להיות מוגדר.
### הרצה
```bash
python run.py
```
השרת יעלה על `http://127.0.0.1:8000`
פתח את הדפדפן וגש ל-`http://127.0.0.1:8000`
## ארכיטקטורה
המערכת מבוססת על **4 שלבים**:
1. **ניתוח שאילתה** - LLM מנתח את שאלת המשתמש
2. **יצירת שאילתות SQL** - LLM יוצר 1-5 שאילתות SQL רלוונטיות
3. **ביצוע שאילתות** - שאילתות SQL מבוצעות על הנתונים (SQLite in-memory)
4. **סינתזה ותשובה** - LLM יוצר תשובה מפורטת מהתוצאות, כולל בדיקת איכות אוטומטית
לקריאה מפורטת יותר, ראה [ARCHITECTURE.md](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
```
## שימוש
### דרך הממשק
1. פתח `http://127.0.0.1:8000` בדפדפן
2. הזן שאלה בשדה הטקסט
3. לחץ על "🔍 שאל"
4. צפה בתשובה, שאילתות SQL, תוצאות, וגרפים
### דרך API
```bash
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
```bash
docker build -t feedback-analysis .
docker run -p 8000:8000 feedback-analysis
```
### Runpod
ראה [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md) לפרטים.
## שינויים והתאמות
### שינוי מודל LLM
ערוך ב-`app/sql_service.py`:
```python
model = genai.GenerativeModel("gemini-2.0-flash") # שנה כאן
```
### שינוי סף איכות
ערוך ב-`app/sql_service.py`:
```python
if score < 80: # שנה כאן (0-100)
```
### הוספת עמודות חדשות
ערוך ב-`app/sql_service.py``_get_schema_info()`:
```python
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)
- **קורות חיים**: [https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/0_preprocessing/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf](https://github.com/galbendavids/Feedback_Analysis_RAG_Agent_runpod/blob/main/0_preprocessing/Gal%20Shlomo%20Ben%20David%20Ohayone_e-1.pdf)
## רישיון
[לעדכן]