Skip to content
This repository was archived by the owner on Dec 27, 2025. It is now read-only.

Commit c0b8bf6

Browse files
committed
typecast are cool right?
1 parent 0ae1fc4 commit c0b8bf6

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

  • lib/embeddings/vector_representations

lib/embeddings/vector_representations/base.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def create_index!(table_name, memory, lists, probes)
131131
ON
132132
#{table_name}
133133
USING
134-
ivfflat (embeddings #{pg_index_type})
134+
ivfflat ((embeddings::halfvec(#{dimensions})) #{pg_index_type})
135135
WITH
136136
(lists = #{lists})
137137
WHERE
@@ -202,7 +202,7 @@ def topic_id_from_representation(raw_vector)
202202
model_id = #{id} AND
203203
strategy_id = #{@strategy.id}
204204
ORDER BY
205-
embeddings #{pg_function} '[:query_embedding]'
205+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions})
206206
LIMIT 1
207207
SQL
208208
end
@@ -217,7 +217,7 @@ def post_id_from_representation(raw_vector)
217217
model_id = #{id} AND
218218
strategy_id = #{@strategy.id}
219219
ORDER BY
220-
embeddings #{pg_function} '[:query_embedding]'
220+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions})
221221
LIMIT 1
222222
SQL
223223
end
@@ -227,13 +227,13 @@ def asymmetric_topics_similarity_search(raw_vector, limit:, offset:, return_dist
227227
#{probes_sql(topic_table_name)}
228228
SELECT
229229
topic_id,
230-
embeddings #{pg_function} '[:query_embedding]' AS distance
230+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions}) AS distance
231231
FROM
232232
#{topic_table_name}
233233
WHERE
234234
model_id = #{id} AND strategy_id = #{@strategy.id}
235235
ORDER BY
236-
embeddings #{pg_function} '[:query_embedding]'
236+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions})
237237
LIMIT :limit
238238
OFFSET :offset
239239
SQL
@@ -253,7 +253,7 @@ def asymmetric_posts_similarity_search(raw_vector, limit:, offset:, return_dista
253253
#{probes_sql(post_table_name)}
254254
SELECT
255255
post_id,
256-
embeddings #{pg_function} '[:query_embedding]' AS distance
256+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions}) AS distance
257257
FROM
258258
#{post_table_name}
259259
INNER JOIN
@@ -263,7 +263,7 @@ def asymmetric_posts_similarity_search(raw_vector, limit:, offset:, return_dista
263263
WHERE
264264
model_id = #{id} AND strategy_id = #{@strategy.id}
265265
ORDER BY
266-
embeddings #{pg_function} '[:query_embedding]'
266+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions})
267267
LIMIT :limit
268268
OFFSET :offset
269269
SQL
@@ -291,7 +291,7 @@ def asymmetric_rag_fragment_similarity_search(
291291
#{probes_sql(post_table_name)}
292292
SELECT
293293
rag_document_fragment_id,
294-
embeddings #{pg_function} '[:query_embedding]' AS distance
294+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions}) AS distance
295295
FROM
296296
#{rag_fragments_table_name}
297297
INNER JOIN
@@ -301,7 +301,7 @@ def asymmetric_rag_fragment_similarity_search(
301301
strategy_id = #{@strategy.id} AND
302302
rdf.ai_persona_id = :persona_id
303303
ORDER BY
304-
embeddings #{pg_function} '[:query_embedding]'
304+
embeddings::halfvec(#{dimensions}) #{pg_function} '[:query_embedding]'::halfvec(#{dimensions})
305305
LIMIT :limit
306306
OFFSET :offset
307307
SQL
@@ -332,7 +332,7 @@ def symmetric_topics_similarity_search(topic)
332332
model_id = #{id} AND
333333
strategy_id = #{@strategy.id}
334334
ORDER BY
335-
embeddings #{pg_function} (
335+
embeddings::halfvec(#{dimensions}) #{pg_function} (
336336
SELECT
337337
embeddings
338338
FROM
@@ -342,7 +342,7 @@ def symmetric_topics_similarity_search(topic)
342342
strategy_id = #{@strategy.id} AND
343343
topic_id = :topic_id
344344
LIMIT 1
345-
)
345+
)::halfvec(#{dimensions})
346346
LIMIT 100
347347
SQL
348348
rescue PG::Error => e

0 commit comments

Comments
 (0)