Isaac commited on
Commit
66be9fc
Β·
verified Β·
1 Parent(s): 0525c17

Upload bios_controller.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. bios_controller.py +55 -18
bios_controller.py CHANGED
@@ -1173,31 +1173,69 @@ class NeonDBWriter:
1173
  # 2. Save to results table
1174
  sql_result = """
1175
  INSERT INTO results (
1176
- id, diagnosis_id, overall_health_score, health_label,
1177
- dimension_scores, weaknesses, opportunities, action_items,
1178
- ai_narrative, model_version, meta_data, created_at, updated_at
 
 
1179
  ) VALUES (
 
 
 
1180
  %s, %s, %s, %s,
1181
- %s, %s, %s, %s,
1182
- %s, %s, %s, NOW(), NOW()
1183
  )
1184
  """
1185
-
1186
  params_result = (
1187
- str(uuid.uuid4()), diagnosis_id, d["healthScore"]["total"], d["healthScore"]["label"],
1188
- json.dumps(d["healthScore"]["dimensions"]), json.dumps(d["weaknesses"]),
1189
- json.dumps(d["opportunities"]), json.dumps(d["actionItems"]),
1190
- self.security.encrypt(d["narrative"]), d["modelUsed"], json.dumps(d["benchmarking"])
1191
  )
1192
 
1193
- with psycopg.connect(self.database_url) as conn:
1194
- with conn.cursor() as cur:
1195
- cur.execute(sql_diagnosis, params_diagnosis)
1196
- cur.execute(sql_result, params_result)
1197
- conn.commit()
 
 
 
 
 
1198
 
1199
- log.info(f"βœ… Report saved to NeonDB | session_id={session_id} | score={d['health_score']}")
1200
- return session_id
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1201
 
1202
  def fetch_report(self, session_id: str) -> Optional[dict]:
1203
  """Fetch a previously saved report by session_id and decrypt sensitive fields."""
@@ -1240,7 +1278,6 @@ class NeonDBWriter:
1240
  results.append(data)
1241
  return results
1242
 
1243
-
1244
  # ═══════════════════════════════════════════════════════════════════════════════
1245
  # BIOS CONTROLLER β€” the main entry point
1246
  # ═══════════════════════════════════════════════════════════════════════════════
 
1173
  # 2. Save to results table
1174
  sql_result = """
1175
  INSERT INTO results (
1176
+ id, diagnosis_id, user_id,
1177
+ health_score, health_label, health_dimensions,
1178
+ weaknesses, opportunities, action_items,
1179
+ ai_narrative, model_used, generation_time_ms, pipeline,
1180
+ created_at
1181
  ) VALUES (
1182
+ %s, %s, %s,
1183
+ %s, %s, %s,
1184
+ %s, %s, %s,
1185
  %s, %s, %s, %s,
1186
+ NOW()
 
1187
  )
1188
  """
 
1189
  params_result = (
1190
+ str(uuid.uuid4()), diagnosis_id, user_id,
1191
+ d["healthScore"]["total"], d["healthScore"]["label"], json.dumps(d["healthScore"]["dimensions"]),
1192
+ json.dumps(d["weaknesses"]), json.dumps(d["opportunities"]), json.dumps(d["actionItems"]),
1193
+ d["narrative"], d["modelUsed"], d["generationTimeMs"], d["pipeline"]
1194
  )
1195
 
1196
+ try:
1197
+ with psycopg.connect(self.database_url, row_factory=psycopg_dict_row) as conn:
1198
+ with conn.cursor() as cur:
1199
+ cur.execute(sql_diagnosis, params_diagnosis)
1200
+ cur.execute(sql_result, params_result)
1201
+ conn.commit()
1202
+ return session_id
1203
+ except Exception as e:
1204
+ log.error("Failed to save diagnosis to Neon: %s", e)
1205
+ return session_id
1206
 
1207
+ def save_contact_lead(self, lead_data: dict) -> bool:
1208
+ """
1209
+ Saves a sales contact lead to the contact_leads table.
1210
+ """
1211
+ sql = """
1212
+ INSERT INTO contact_leads (
1213
+ first_name, last_name, email, company_name, job_title,
1214
+ country, project_budget, interests
1215
+ ) VALUES (
1216
+ %s, %s, %s, %s, %s, %s, %s, %s
1217
+ )
1218
+ """
1219
+ params = (
1220
+ lead_data["firstName"],
1221
+ lead_data["lastName"],
1222
+ lead_data["email"],
1223
+ lead_data["companyName"],
1224
+ lead_data["jobTitle"],
1225
+ lead_data["country"],
1226
+ lead_data["projectBudget"],
1227
+ json.dumps(lead_data["interests"])
1228
+ )
1229
+
1230
+ try:
1231
+ with psycopg.connect(self.database_url) as conn:
1232
+ with conn.cursor() as cur:
1233
+ cur.execute(sql, params)
1234
+ conn.commit()
1235
+ return True
1236
+ except Exception as e:
1237
+ log.error("Failed to save contact lead to Neon: %s", e)
1238
+ return False
1239
 
1240
  def fetch_report(self, session_id: str) -> Optional[dict]:
1241
  """Fetch a previously saved report by session_id and decrypt sensitive fields."""
 
1278
  results.append(data)
1279
  return results
1280
 
 
1281
  # ═══════════════════════════════════════════════════════════════════════════════
1282
  # BIOS CONTROLLER β€” the main entry point
1283
  # ═══════════════════════════════════════════════════════════════════════════════