From 299abd788feee8ba41dc420c1fa503b110e025e6 Mon Sep 17 00:00:00 2001 From: martinloretzzz <20306567+martinloretzzz@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:53:21 +0100 Subject: [PATCH] Use vector index in postgres-pgvector template --- storage/postgres-pgvector/app/actions.tsx | 10 +++++----- storage/postgres-pgvector/components/search.tsx | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/storage/postgres-pgvector/app/actions.tsx b/storage/postgres-pgvector/app/actions.tsx index b95e81f2f6..052e0cb571 100644 --- a/storage/postgres-pgvector/app/actions.tsx +++ b/storage/postgres-pgvector/app/actions.tsx @@ -3,7 +3,7 @@ import { db } from '@/drizzle/db' import { SelectPokemon, pokemons } from '@/drizzle/schema' import { openai } from '@/lib/openai' -import { desc, sql, cosineDistance, gt } from 'drizzle-orm' +import { asc, sql, cosineDistance, lt } from 'drizzle-orm' import { embed } from 'ai' export async function searchPokedex( @@ -15,16 +15,16 @@ export async function searchPokedex( const embedding = await generateEmbedding(query) const vectorQuery = `[${embedding.join(',')}]` - const similarity = sql`1 - (${cosineDistance( + const similarity = sql`${cosineDistance( pokemons.embedding, vectorQuery - )})` + )}` const pokemon = await db .select({ id: pokemons.id, name: pokemons.name, similarity }) .from(pokemons) - .where(gt(similarity, 0.5)) - .orderBy((t) => desc(t.similarity)) + .where(lt(similarity, 0.5)) + .orderBy((t) => asc(t.similarity)) .limit(8) return pokemon diff --git a/storage/postgres-pgvector/components/search.tsx b/storage/postgres-pgvector/components/search.tsx index 898d241527..6a20c8ad2d 100644 --- a/storage/postgres-pgvector/components/search.tsx +++ b/storage/postgres-pgvector/components/search.tsx @@ -67,7 +67,7 @@ export function Search({ searchPokedex }: SearchProps) {
{pokemon.similarity ? (
- {pokemon.similarity.toFixed(3)} + {(1 - pokemon.similarity).toFixed(3)}
) : (