Skip to content

Commit c5da6b1

Browse files
committed
Remove prospect_id support from prompt endpoints
Drop prospect_id filtering and storage from prompt APIs and DB interactions. get_prompt_records no longer accepts or handles prospect_id and always returns paginated prompt records (SELECT no longer includes prospect_id). llm_post no longer reads prospect_id from payload and INSERT into prompt omits the prospect_id column. Error handling and pagination metadata preserved.
1 parent 38af092 commit c5da6b1

1 file changed

Lines changed: 37 additions & 78 deletions

File tree

app/api/prompt/prompt.py

Lines changed: 37 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -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(
10060
def 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

Comments
 (0)