Siga estos pasos para configurar y ejecutar el proyecto:
Instalar PostgreSQL
admin
.Configurar el proyecto
config
en el directorio del proyecto.db.js
y actualice la línea 3:mayanksharma
al nombre de usuario de su sistema.Configurar la base de datos
CREATE EXTENSION vector;
Instalar Ollama
ollama pull snowflake-arctic-embed
Instalar dependencias del proyecto
npm install
node server.js
Instalar la extensión del cliente REST
Pruebe la API
api.http
para probar los puntos finales de la API. {
"query" : " your_search_query "
}
{
"title" : " magazine_title " ,
"author" : " author_name " ,
"category" : " magazine_category " ,
"content" : " magazine_content "
}
He usado PostgreSQL con pgvector (almacenamiento de vectores incrustados) y tsvector (almacenamiento de texto de contenido).
Requisito: buscar entre 1 millón de registros
Se agregaron índices Hierarchical Navigable Small Worlds (HNSW) para la búsqueda vectorial en incrustaciones de contenido. Razón: la búsqueda requiere una alta recuperación, lo que hace que hnsw sea mejor que la referencia ivfflat.
Índices agregados para título, autor y contenido.
Paginación agregada para reducir los tiempos de carga.
Perfil: Pico
Usuarios virtuales: 20
Duración de la prueba: 5 minutos
Acceso al punto final: POST /api/v1/magazine/hybridsearch/1 ("glasgow", "juego", "negocios", "shubham", "comida" y "moderno")
Total de solicitudes enviadas: 10.915
Solicitud por segundo: 35,62
Tiempo medio de respuesta: 116 ms
Se utilizan dos servicios individuales para búsqueda de texto y búsqueda de vectores.
Las incrustaciones se generan mediante el modelo "snowflake-arctic-embed" de Meta llama, que es liviano.
PASO 1: Primero se muestran los objetos comunes de los resultados de búsqueda vectorial y de texto completo,
PASO 2: seguido de objetos de solo búsqueda de texto,
PASO 3: resto de objetos de la búsqueda vectorial.
consulta: vector "glasgow", devuelve "Diario de fiestas celtas" que tiene "Escocia escrita en el contenido"
consulta: vector "mantecada", devuelve "Diario de fiestas celtas" ya que "mantecada" está relacionado con "escocia"
consulta: palabra clave/texto completo "shubham", devuelve "Physics Refresher" que tiene el nombre del autor "Shubham Thorve"
consulta: palabra clave/texto completo "mayank", devuelve "Digit Gaming" cuyo nombre de autor es "Mayank Khurana"
consulta: palabra clave/texto completo "mes", devuelve "Dalal Street Journal" que tiene contenido "Todo sobre videojuegos este mes"
/model