From 2c6ba345b1907f3f33c214a6071ba3bc80811512 Mon Sep 17 00:00:00 2001 From: Thomas Hallock Date: Sun, 22 Feb 2026 11:30:02 -0600 Subject: [PATCH] Fix pgvector embedding format in recommender query profile.embedding was being passed as str(numpy_array) which produces scientific notation format. pgvector needs [n1,n2,...] format. Now explicitly formats as comma-separated float list. Co-Authored-By: Claude Opus 4.6 --- src/haunt_fm/services/recommender.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/haunt_fm/services/recommender.py b/src/haunt_fm/services/recommender.py index b99b546..324b5ce 100644 --- a/src/haunt_fm/services/recommender.py +++ b/src/haunt_fm/services/recommender.py @@ -53,9 +53,13 @@ async def get_recommendations( LIMIT :limit """) + # Format embedding as pgvector literal: [n1,n2,...] + emb = profile.embedding + emb_str = "[" + ",".join(str(float(x)) for x in emb) + "]" + result = await session.execute( query, - {"profile_embedding": str(profile.embedding), "limit": limit}, + {"profile_embedding": emb_str, "limit": limit}, ) return [