From 55242d1925e60e5c39bd0d25fcd8211fb8c545f9 Mon Sep 17 00:00:00 2001 From: utsav verma Date: Fri, 27 Dec 2024 15:41:33 +0530 Subject: [PATCH] when inserting value in vector data type, parameter needs to be converted to nvarchar max. Otherwise it is getting treated as nText and throwing conversion error. --- Hybrid-Search/hybrid_search.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Hybrid-Search/hybrid_search.py b/Hybrid-Search/hybrid_search.py index d1aae94..1fb432d 100644 --- a/Hybrid-Search/hybrid_search.py +++ b/Hybrid-Search/hybrid_search.py @@ -35,7 +35,8 @@ for id, (content, embedding) in enumerate(zip(sentences, embeddings)): cursor.execute(f""" - INSERT INTO dbo.documents (id, content, embedding) VALUES (?, ?, CAST(? AS VECTOR(384))); + INSERT INTO dbo.documents (id, content, embedding) + VALUES (?, ?, CAST(CAST(? as NVARCHAR(MAX)) AS VECTOR(384))); """, id, content, @@ -59,7 +60,7 @@ results = cursor.execute(f""" DECLARE @k INT = ?; DECLARE @q NVARCHAR(1000) = ?; - DECLARE @v VECTOR(384) = CAST(? AS VECTOR(384)); + DECLARE @v VECTOR(384) = CAST(CAST(? as NVARCHAR(MAX)) AS VECTOR(384)); WITH keyword_search AS ( SELECT TOP(@k) id,