feat: smart recommendation generator with feedback loop and result checker
This commit is contained in:
@@ -63,6 +63,17 @@ def init_db() -> None:
|
||||
_ensure_column(conn, "recommendations", "tags",
|
||||
"ALTER TABLE recommendations ADD COLUMN tags TEXT NOT NULL DEFAULT '[]';")
|
||||
|
||||
# ✅ 결과 채점용 컬럼 추가
|
||||
_ensure_column(conn, "recommendations", "rank",
|
||||
"ALTER TABLE recommendations ADD COLUMN rank INTEGER;")
|
||||
_ensure_column(conn, "recommendations", "correct_count",
|
||||
"ALTER TABLE recommendations ADD COLUMN correct_count INTEGER DEFAULT 0;")
|
||||
_ensure_column(conn, "recommendations", "has_bonus",
|
||||
"ALTER TABLE recommendations ADD COLUMN has_bonus INTEGER DEFAULT 0;")
|
||||
_ensure_column(conn, "recommendations", "checked",
|
||||
"ALTER TABLE recommendations ADD COLUMN checked INTEGER DEFAULT 0;")
|
||||
|
||||
|
||||
# ✅ UNIQUE 인덱스(중복 저장 방지)
|
||||
conn.execute("CREATE UNIQUE INDEX IF NOT EXISTS uq_reco_dedup ON recommendations(dedup_hash);")
|
||||
|
||||
@@ -261,3 +272,15 @@ def delete_recommendation(rec_id: int) -> bool:
|
||||
cur = conn.execute("DELETE FROM recommendations WHERE id = ?", (rec_id,))
|
||||
return cur.rowcount > 0
|
||||
|
||||
def update_recommendation_result(rec_id: int, rank: int, correct_count: int, has_bonus: bool) -> bool:
|
||||
with _conn() as conn:
|
||||
cur = conn.execute(
|
||||
"""
|
||||
UPDATE recommendations
|
||||
SET rank = ?, correct_count = ?, has_bonus = ?, checked = 1
|
||||
WHERE id = ?
|
||||
""",
|
||||
(rank, correct_count, 1 if has_bonus else 0, rec_id)
|
||||
)
|
||||
return cur.rowcount > 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user