Commit ·
33968c0
1
Parent(s): 24e4e48
תיקון: שימוש בשמות השדות האמיתיים מהקובץ - תמיכה גם בעברית וגם באנגלית
Browse files- app/sql_service.py +47 -27
app/sql_service.py
CHANGED
|
@@ -176,30 +176,52 @@ class SQLFeedbackService:
|
|
| 176 |
if 'ProcessID' in self.df.columns:
|
| 177 |
all_columns_info += "• ProcessID (UUID, יכול להיות NULL): מזהה תהליך\n"
|
| 178 |
|
| 179 |
-
# Date/Time fields -
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 203 |
|
| 204 |
schema_info = f"""שם הטבלה: Feedback_transformed (עם אות גדולה F)
|
| 205 |
|
|
@@ -293,16 +315,14 @@ class SQLFeedbackService:
|
|
| 293 |
|
| 294 |
כללים:
|
| 295 |
1. שם הטבלה: Feedback_transformed (עם אות גדולה F) - חובה!
|
| 296 |
-
2. שאילתות זמן: השתמש בשדות המחושבים
|
| 297 |
3. Level: 1-5 (1=גרוע, 5=מעולה)
|
| 298 |
4. Text: חיפוש עם LIKE '%מילה%'
|
| 299 |
5. ServiceName: שם השירות
|
| 300 |
|
| 301 |
דוגמאות:
|
| 302 |
-
- SELECT שנה, COUNT(*) FROM Feedback_transformed GROUP BY שנה
|
| 303 |
- SELECT ServiceName, AVG(Level) FROM Feedback_transformed GROUP BY ServiceName
|
| 304 |
- SELECT COUNT(*) FROM Feedback_transformed WHERE Level >= 4
|
| 305 |
-
- SELECT יום_בשבוע, COUNT(*) FROM Feedback_transformed GROUP BY יום_בשבוע
|
| 306 |
|
| 307 |
פורמט: JSON בלבד עם "queries": ["SELECT ...", ...]"""
|
| 308 |
|
|
|
|
| 176 |
if 'ProcessID' in self.df.columns:
|
| 177 |
all_columns_info += "• ProcessID (UUID, יכול להיות NULL): מזהה תהליך\n"
|
| 178 |
|
| 179 |
+
# Date/Time fields - check what actually exists in the dataframe
|
| 180 |
+
date_time_cols = []
|
| 181 |
+
for col in ['Year', 'year', 'שנה', 'Month', 'month', 'חודש', 'DayOfWeek', 'day_of_week', 'יום_בשבוע',
|
| 182 |
+
'Hour', 'hour', 'שעה', 'DayNight', 'day_night', 'יום_לילה', 'DayOfMonth', 'day_of_month', 'יום_בחודש']:
|
| 183 |
+
if col in self.df.columns:
|
| 184 |
+
date_time_cols.append(col)
|
| 185 |
+
|
| 186 |
+
if date_time_cols:
|
| 187 |
+
all_columns_info += "\nשדות תאריך/זמן מחושבים (מוכנים לשימוש - השתמש בהם לשאילתות זמן!):\n"
|
| 188 |
+
|
| 189 |
+
# Year
|
| 190 |
+
for year_col in ['Year', 'year', 'שנה']:
|
| 191 |
+
if year_col in self.df.columns:
|
| 192 |
+
try:
|
| 193 |
+
year_min = int(self.df[year_col].min())
|
| 194 |
+
year_max = int(self.df[year_col].max())
|
| 195 |
+
all_columns_info += f"• {year_col} (מספר): שנה. טווח: {year_min}-{year_max}. דוגמאות: {year_min}, {year_max}\n"
|
| 196 |
+
except:
|
| 197 |
+
all_columns_info += f"• {year_col} (מספר): שנה. דוגמאות: 2020, 2021\n"
|
| 198 |
+
break
|
| 199 |
+
|
| 200 |
+
# Month
|
| 201 |
+
for month_col in ['Month', 'month', 'חודש']:
|
| 202 |
+
if month_col in self.df.columns:
|
| 203 |
+
all_columns_info += f"• {month_col} (מספר 1-12): חודש. 1=ינואר, 12=דצמבר. דוגמאות: 1, 6, 12\n"
|
| 204 |
+
break
|
| 205 |
+
|
| 206 |
+
# DayOfWeek
|
| 207 |
+
for dow_col in ['DayOfWeek', 'day_of_week', 'יום_בשבוע']:
|
| 208 |
+
if dow_col in self.df.columns:
|
| 209 |
+
samples = get_sample_values(dow_col, 3)
|
| 210 |
+
all_columns_info += f"• {dow_col} (טקסט): יום בשבוע. ערכים: Monday-Sunday. דוגמאות: {', '.join(samples[:3])}\n"
|
| 211 |
+
break
|
| 212 |
+
|
| 213 |
+
# Hour
|
| 214 |
+
for hour_col in ['Hour', 'hour', 'שעה']:
|
| 215 |
+
if hour_col in self.df.columns:
|
| 216 |
+
all_columns_info += f"• {hour_col} (מספר 0-23): שעה ביום. 0=חצות, 12=צהריים, 23=23:00. דוגמאות: 0, 9, 14, 18, 23\n"
|
| 217 |
+
break
|
| 218 |
+
|
| 219 |
+
# DayNight
|
| 220 |
+
for dn_col in ['DayNight', 'day_night', 'יום_לילה']:
|
| 221 |
+
if dn_col in self.df.columns:
|
| 222 |
+
samples = get_sample_values(dn_col, 2)
|
| 223 |
+
all_columns_info += f"• {dn_col} (טקסט): 'יום' או 'לילה'. יום=6:00-18:00, לילה=18:00-6:00. דוגמאות: {', '.join(samples[:2])}\n"
|
| 224 |
+
break
|
| 225 |
|
| 226 |
schema_info = f"""שם הטבלה: Feedback_transformed (עם אות גדולה F)
|
| 227 |
|
|
|
|
| 315 |
|
| 316 |
כללים:
|
| 317 |
1. שם הטבלה: Feedback_transformed (עם אות גדולה F) - חובה!
|
| 318 |
+
2. שאילתות זמן: השתמש בשדות המחושבים שמופיעים ב-schema למעלה בלבד!
|
| 319 |
3. Level: 1-5 (1=גרוע, 5=מעולה)
|
| 320 |
4. Text: חיפוש עם LIKE '%מילה%'
|
| 321 |
5. ServiceName: שם השירות
|
| 322 |
|
| 323 |
דוגמאות:
|
|
|
|
| 324 |
- SELECT ServiceName, AVG(Level) FROM Feedback_transformed GROUP BY ServiceName
|
| 325 |
- SELECT COUNT(*) FROM Feedback_transformed WHERE Level >= 4
|
|
|
|
| 326 |
|
| 327 |
פורמט: JSON בלבד עם "queries": ["SELECT ...", ...]"""
|
| 328 |
|