@@ -11,87 +11,47 @@ def get_prompt_records(
1111 request : Request ,
1212 page : int = Query (1 , ge = 1 , description = "Page number (1-based)" ),
1313 page_size : int = Query (10 , ge = 1 , le = 100 , description = "Records per page" ),
14- prospect_id : int = Query (None , description = "Filter by prospect_id" ),
1514 api_key : str = Depends (get_api_key )
1615) -> dict :
1716 """GET /prompt: Paginated list of prompt completions."""
1817 try :
1918 conn = get_db_connection_direct ()
2019 cur = conn .cursor ()
21- if prospect_id is not None :
22- # No pagination for single prospect_id lookup
23- select_query = """
24- SELECT id, prompt, completion, duration, time, data, model, prospect_id
25- FROM prompt
26- WHERE prospect_id = %s
27- ORDER BY id DESC
28- """
29- cur .execute (select_query , (prospect_id ,))
30- rows = cur .fetchall ()
31- records = [
32- {
33- "id" : row [0 ],
34- "prompt" : row [1 ],
35- "completion" : row [2 ],
36- "duration" : row [3 ],
37- "time" : row [4 ].isoformat () if row [4 ] else None ,
38- "data" : row [5 ],
39- "model" : row [6 ],
40- "prospect_id" : row [7 ],
41- }
42- for row in rows
43- ]
44- cur .close ()
45- conn .close ()
46- if records :
47- meta = make_meta ("success" , f"Found { len (records )} record(s) for prospect_id { prospect_id } " )
48- return {
49- "meta" : meta ,
50- "data" : records ,
51- }
52- else :
53- meta = make_meta ("warning" , f"No records found for prospect_id { prospect_id } " )
54- return {
55- "meta" : meta ,
56- "data" : [],
57- }
58- else :
59- offset = (page - 1 ) * page_size
60- cur .execute ("SELECT COUNT(*) FROM prompt;" )
61- count_row = cur .fetchone ()
62- total = count_row [0 ] if count_row and count_row [0 ] is not None else 0
63- cur .execute ("""
64- SELECT id, prompt, completion, duration, time, data, model, prospect_id
65- FROM prompt
66- ORDER BY id DESC
67- LIMIT %s OFFSET %s;
68- """ , (page_size , offset ))
69- records = [
70- {
71- "id" : row [0 ],
72- "prompt" : row [1 ],
73- "completion" : row [2 ],
74- "duration" : row [3 ],
75- "time" : row [4 ].isoformat () if row [4 ] else None ,
76- "data" : row [5 ],
77- "model" : row [6 ],
78- "prospect_id" : row [7 ],
79- }
80- for row in cur .fetchall ()
81- ]
82- cur .close ()
83- conn .close ()
84- meta = make_meta ("success" , f"Prompt { len (records )} records (page { page } )" )
85- return {
86- "meta" : meta ,
87- "data" : {
88- "page" : page ,
89- "page_size" : page_size ,
90- "total" : total ,
91- "pages" : (total + page_size - 1 ) // page_size ,
92- "data" : records ,
93- },
20+ offset = (page - 1 ) * page_size
21+ cur .execute ("SELECT COUNT(*) FROM prompt;" )
22+ count_row = cur .fetchone ()
23+ total = count_row [0 ] if count_row and count_row [0 ] is not None else 0
24+ cur .execute ("""
25+ SELECT id, prompt, completion, duration, time, data, model
26+ FROM prompt
27+ ORDER BY id DESC
28+ LIMIT %s OFFSET %s;
29+ """ , (page_size , offset ))
30+ records = [
31+ {
32+ "id" : row [0 ],
33+ "prompt" : row [1 ],
34+ "completion" : row [2 ],
35+ "duration" : row [3 ],
36+ "time" : row [4 ].isoformat () if row [4 ] else None ,
37+ "data" : row [5 ],
38+ "model" : row [6 ],
9439 }
40+ for row in cur .fetchall ()
41+ ]
42+ cur .close ()
43+ conn .close ()
44+ meta = make_meta ("success" , f"Prompt { len (records )} records (page { page } )" )
45+ return {
46+ "meta" : meta ,
47+ "data" : {
48+ "page" : page ,
49+ "page_size" : page_size ,
50+ "total" : total ,
51+ "pages" : (total + page_size - 1 ) // page_size ,
52+ "data" : records ,
53+ },
54+ }
9555 except Exception as e :
9656 meta = make_meta ("error" , f"DB error: { str (e )} " )
9757 return {"meta" : meta , "data" : {}}
@@ -100,7 +60,6 @@ def get_prompt_records(
10060def llm_post (payload : dict ) -> dict :
10161 """POST /prompt: send prompt to Gemini, returns completion google-genai SDK."""
10262 prompt = payload .get ("prompt" )
103- prospect_id = payload .get ("prospect_id" )
10463 if not prompt :
10564 raise HTTPException (status_code = 400 , detail = "Missing 'prompt' in request body." )
10665 api_key = os .getenv ("GEMINI_API_KEY" )
@@ -148,11 +107,11 @@ def llm_post(payload: dict) -> dict:
148107 cur = conn .cursor ()
149108 cur .execute (
150109 """
151- INSERT INTO prompt (prompt, completion, duration, data, model, prospect_id )
152- VALUES (%s, %s, %s, %s, %s, %s )
110+ INSERT INTO prompt (prompt, completion, duration, data, model)
111+ VALUES (%s, %s, %s, %s, %s)
153112 RETURNING id;
154113 """ ,
155- (prompt , completion , duration , data_blob , used_model , prospect_id )
114+ (prompt , completion , duration , data_blob , used_model )
156115 )
157116 record_id_row = cur .fetchone ()
158117 record_id = record_id_row [0 ] if record_id_row else None
0 commit comments