galbendavids commited on
Commit
33968c0
·
1 Parent(s): 24e4e48

תיקון: שימוש בשמות השדות האמיתיים מהקובץ - תמיכה גם בעברית וגם באנגלית

Browse files
Files changed (1) hide show
  1. 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 - PRE-CALCULATED, use these for time queries
180
- all_columns_info += "\nשדות תאריך/זמן מחושבים (מוכנים לשימוש - השתמש בהם לשאילתות זמן!):\n"
181
-
182
- if 'שנה' in self.df.columns:
183
- try:
184
- year_min = int(self.df['שנה'].min())
185
- year_max = int(self.df['שנה'].max())
186
- all_columns_info += f"• שנה (מספר): שנה. טווח: {year_min}-{year_max}. דוגמאות: {year_min}, {year_max}\n"
187
- except:
188
- all_columns_info += "• שנה (מספר): שנה. דוגמאות: 2020, 2021\n"
189
-
190
- if 'חודש' in self.df.columns:
191
- all_columns_info += "• חודש (מספר 1-12): חודש. 1=ינואר, 12=דצמבר. דוגמאות: 1, 6, 12\n"
192
-
193
- if 'יום_בשבוע' in self.df.columns:
194
- samples = get_sample_values('יום_בשבוע', 3)
195
- all_columns_info += f"• יום_בשבוע (טקסט): יום בשבוע באנגלית. ערכים: Monday-Sunday. דוגמאות: {', '.join(samples[:3])}\n"
196
-
197
- if 'שעה' in self.df.columns:
198
- all_columns_info += "• שעה (מספר 0-23): שעה ביום. 0=חצות, 12=צהריים, 23=23:00. דוגמאות: 0, 9, 14, 18, 23\n"
199
-
200
- if 'יום_לילה' in self.df.columns:
201
- samples = get_sample_values('יום_לילה', 2)
202
- all_columns_info += f"• יום_לילה (טקסט): 'יום' או 'לילה'. יום=6:00-18:00, לילה=18:00-6:00. דוגמאות: {', '.join(samples[:2])}\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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