Isaac commited on
Upload bios_controller.py with huggingface_hub
Browse files- 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,
|
| 1177 |
-
|
| 1178 |
-
|
|
|
|
|
|
|
| 1179 |
) VALUES (
|
|
|
|
|
|
|
|
|
|
| 1180 |
%s, %s, %s, %s,
|
| 1181 |
-
|
| 1182 |
-
%s, %s, %s, NOW(), NOW()
|
| 1183 |
)
|
| 1184 |
"""
|
| 1185 |
-
|
| 1186 |
params_result = (
|
| 1187 |
-
str(uuid.uuid4()), diagnosis_id,
|
| 1188 |
-
|
| 1189 |
-
json.dumps(d["opportunities"]), json.dumps(d["actionItems"]),
|
| 1190 |
-
|
| 1191 |
)
|
| 1192 |
|
| 1193 |
-
|
| 1194 |
-
with
|
| 1195 |
-
|
| 1196 |
-
|
| 1197 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1198 |
|
| 1199 |
-
|
| 1200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|