diff --git a/Knowledgebase/server.py b/Knowledgebase/server.py index 06fd0c1..4b9db23 100644 --- a/Knowledgebase/server.py +++ b/Knowledgebase/server.py @@ -442,17 +442,23 @@ def search( vec_params2.append(min_importance) vec_where = " AND ".join(vec_conditions) + qv = np.array(query_emb) + # Pořadí %s musí odpovídat pořadí v SQL: + # 1. WHERE podmínky (vec_params2) + # 2. SELECT score: embedding <=> %s + # 3. ORDER BY: embedding <=> %s + # 4. LIMIT %s vec_rows = conn.execute( f""" SELECT id, mem_type, title, content, summary, tags, project, source, session_id, importance, created_at, - 1 - (embedding <=> %s::vector) AS score + 1 - (embedding <=> %s) AS score FROM kb_memories WHERE {vec_where} - ORDER BY embedding <=> %s::vector + ORDER BY embedding <=> %s LIMIT %s """, - [np.array(query_emb), np.array(query_emb)] + vec_params2 + [limit], + [qv] + vec_params2 + [qv, limit], ).fetchall() for r in vec_rows: