fix: 벡터 검색 asyncpg 캐스트 — ::vector → cast(:embedding AS vector)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-03 14:35:14 +09:00
parent e23c4feaa0
commit b4ca918125

View File

@@ -120,12 +120,12 @@ async def _search_vector(session: AsyncSession, query: str, limit: int) -> list[
result = await session.execute( result = await session.execute(
text(""" text("""
SELECT id, title, ai_domain, ai_summary, file_format, SELECT id, title, ai_domain, ai_summary, file_format,
(1 - (embedding <=> :embedding::vector)) AS score, (1 - (embedding <=> cast(:embedding AS vector))) AS score,
left(extracted_text, 200) AS snippet, left(extracted_text, 200) AS snippet,
'vector' AS match_reason 'vector' AS match_reason
FROM documents FROM documents
WHERE embedding IS NOT NULL WHERE embedding IS NOT NULL
ORDER BY embedding <=> :embedding::vector ORDER BY embedding <=> cast(:embedding AS vector)
LIMIT :limit LIMIT :limit
"""), """),
{"embedding": str(query_embedding), "limit": limit}, {"embedding": str(query_embedding), "limit": limit},