bhavika24 commited on
Commit
4ddd28a
·
verified ·
1 Parent(s): d25981d

Upload engine.py

Browse files
Files changed (1) hide show
  1. engine.py +22 -4
engine.py CHANGED
@@ -3,6 +3,7 @@ import os
3
  from functools import lru_cache
4
  from openai import OpenAI
5
  from datetime import datetime
 
6
 
7
  # =========================
8
  # CONFIG
@@ -137,6 +138,19 @@ def build_join_sql(base_table, steps):
137
 
138
  return "\n".join(sql)
139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
 
141
  # =========================
142
  # INTENT PARSING (LLM)
@@ -177,10 +191,14 @@ User question:
177
  """
178
 
179
  res = client.chat.completions.create(
180
- model="gpt-4.1-mini",
181
- messages=[{"role": "user", "content": prompt}],
182
- temperature=0
183
- )
 
 
 
 
184
 
185
  # ✅ Safe JSON parsing
186
  try:
 
3
  from functools import lru_cache
4
  from openai import OpenAI
5
  from datetime import datetime
6
+ import re
7
 
8
  # =========================
9
  # CONFIG
 
138
 
139
  return "\n".join(sql)
140
 
141
+ # =========================
142
+ # JSON SAFETY
143
+ # =========================
144
+
145
+ def safe_json_loads(text):
146
+ try:
147
+ return json.loads(text)
148
+ except json.JSONDecodeError:
149
+ match = re.search(r"\{.*\}", text, re.S)
150
+ if match:
151
+ return json.loads(match.group())
152
+ raise ValueError("LLM returned invalid JSON")
153
+
154
 
155
  # =========================
156
  # INTENT PARSING (LLM)
 
191
  """
192
 
193
  res = client.chat.completions.create(
194
+ model="gpt-4.1-mini",
195
+ messages=[
196
+ {"role": "system", "content": "You are a JSON-only API. Return valid JSON only."},
197
+ {"role": "user", "content": prompt}
198
+ ],
199
+ temperature=0
200
+ )
201
+
202
 
203
  # ✅ Safe JSON parsing
204
  try: