Almacenes de Vectores

Esta guía te ayudará a entender cómo usar el Almacén de Vectores Rememberizer como desarrollador.

El Almacén de Vectores de Rememberizer simplifica el proceso de manejo de datos vectoriales, permitiéndote concentrarte en la entrada de texto y aprovechando el poder de los vectores para diversas aplicaciones como la búsqueda y el análisis de datos.

Introducción

El Almacén de Vectores Rememberizer proporciona una interfaz fácil de usar para manejar datos vectoriales mientras abstrae la complejidad de las incrustaciones vectoriales. Impulsado por PostgreSQL con la extensión pgvector, el Almacén de Vectores Rememberizer te permite trabajar directamente con texto. El servicio se encarga de dividir, vectorizar y almacenar los datos de texto, facilitándote el enfoque en la lógica central de tu aplicación.

Para una comprensión más profunda de los conceptos teóricos detrás de las incrustaciones vectoriales y las bases de datos vectoriales, consulta ¿Qué son las Incrustaciones Vectoriales y las Bases de Datos Vectoriales?.

Visión Técnica

Cómo Funcionan los Almacenes de Vectores

Los Almacenes de Vectores de Rememberizer convierten texto en representaciones vectoriales de alta dimensión (embeddings) que capturan el significado semántico. Esto permite:

  1. Búsqueda Semántica: Encontrar documentos basados en el significado en lugar de solo palabras clave

  2. Coincidencia de Similitud: Identificar contenido conceptualmente relacionado

  3. Recuperación Eficiente: Localizar rápidamente información relevante de grandes conjuntos de datos

Componentes Clave

  • Procesamiento de Documentos: El texto se divide en fragmentos de tamaño óptimo con límites superpuestos para la preservación del contexto

  • Vectorización: Los fragmentos se convierten en incrustaciones utilizando modelos de última generación

  • Indexación: Algoritmos especializados organizan vectores para una búsqueda de similitud eficiente

  • Procesamiento de Consultas: Las consultas de búsqueda se vectorizan y se comparan con las incrustaciones almacenadas

Arquitectura

Rememberizer implementa almacenes de vectores utilizando:

  • PostgreSQL con la extensión pgvector: Para almacenamiento y búsqueda de vectores eficientes

  • Organización basada en colecciones: Cada almacén de vectores tiene su propia colección aislada

  • Acceso impulsado por API: Puntos finales RESTful simples para todas las operaciones

Empezando

Creando un Almacén de Vectores

  1. Navega a la Sección de Almacenes de Vectores en tu panel de control

  2. Haz clic en "Crear nuevo Almacén de Vectores":

    • Aparecerá un formulario que te pedirá que ingreses detalles.

  3. Completa los Detalles:

    • Nombre: Proporciona un nombre único para tu almacén de vectores.

    • Descripción: Escribe una breve descripción del almacén de vectores.

    • Modelo de Embedding: Selecciona el modelo que convierte texto en vectores.

    • Algoritmo de Indexación: Elige cómo se organizarán los vectores para la búsqueda.

    • Métrica de Búsqueda: Define cómo se calcula la similitud entre vectores.

    • Dimensión del Vector: El tamaño de las incrustaciones de vectores (típicamente 768-1536).

  4. Envía el Formulario:

    • Haz clic en el botón "Crear". Recibirás una notificación de éxito, y el nuevo almacén aparecerá en tu lista de almacenes de vectores.

Opciones de Configuración

Modelos de Embedding

Modelo
Dimensiones
Descripción
Mejor Para

openai/text-embedding-3-large

1536

Modelo de embedding de alta precisión de OpenAI

Aplicaciones de producción que requieren la máxima precisión

openai/text-embedding-3-small

1536

Modelo de embedding más pequeño y rápido de OpenAI

Aplicaciones con mayores requisitos de rendimiento

Algoritmos de Indexación

Algoritmo
Descripción
Compensaciones

IVFFLAT (predeterminado)

Archivo invertido con compresión plana

Buen equilibrio entre velocidad y precisión; funciona bien para la mayoría de los conjuntos de datos

HNSW

Mundo Pequeño Navegable Jerárquico

Mejor precisión para conjuntos de datos grandes; mayores requisitos de memoria

Métricas de Búsqueda

Métrica
Descripción
Mejor Para

coseno (predeterminado)

Mide el ángulo entre vectores

Coincidencia de similitud de propósito general

producto interno (ip)

Producto punto entre vectores

Cuando la magnitud del vector es importante

L2 (Euclidiana)

Distancia en línea recta entre vectores

Cuando las relaciones espaciales son importantes

Gestión de Almacenes de Vectores

  1. Ver y Editar Almacenes de Vectores:

    • Accede al panel de gestión para ver, editar o eliminar almacenes de vectores.

  2. Visualización de Documentos:

    • Navega por documentos individuales y su metadatos asociados dentro de un almacén de vectores específico.

  3. Estadísticas:

    • Visualiza estadísticas detalladas como el número de vectores almacenados, el rendimiento de las consultas y métricas operativas.

Gestión de Claves API

Las claves API se utilizan para autenticar y autorizar el acceso a los puntos finales de la API del Almacén de Vectores de Rememberizer. La gestión adecuada de las claves API es esencial para mantener la seguridad y la integridad de sus almacenes de vectores.

Creando Claves API

  1. Dirígete a la página de detalles de tu Almacén de Vectores

  2. Navega a la Sección de Gestión de Claves API:

    • Se puede encontrar dentro de la pestaña "Configuración"

  3. Haz clic en "Agregar Clave API":

    • Aparecerá un formulario que te pedirá que ingreses los detalles.

  4. Completa los Detalles:

    • Nombre: Proporciona un nombre para la clave API que te ayude a identificar su caso de uso.

  5. Envía el Formulario:

    • Haz clic en el botón "Crear". La nueva clave API será generada y mostrada. Asegúrate de copiarla y almacenarla de forma segura. Esta clave se utiliza para autenticar solicitudes a ese almacén de vectores específico.

Revocación de Claves API

Si una clave API ya no es necesaria, puedes eliminarla para prevenir cualquier posible uso indebido.

Por razones de seguridad, es posible que desees rotar tus claves API periódicamente. Esto implica generar una nueva clave y revocar la antigua.

Uso de la API de Vector Store

Después de crear un Vector Store y generar una clave API, puedes interactuar con él utilizando la API REST.

Ejemplos de Código

import requests
import json

API_KEY = "your_api_key_here"
VECTOR_STORE_ID = "vs_abc123"  # Reemplaza con tu ID de almacén de vectores
BASE_URL = "https://api.rememberizer.a

# Cargar un documento en el almacén de vectores
def upload_document(file_path, document_name=None):
    if document_name is None:
        document_name = file_path.split("/")[-1]
    
    with open(file_path, "rb") as f:
        files = {"file": (document_name, f)}
        headers = {"x-api-key": API_KEY}
        
        response = requests.post(
            f"{BASE_URL}/vector-stores/{VECTOR_STORE_ID}/documents",
            headers=headers,
            files=files
        )
        
        if response.status_code == 201:
            print(f"¡Documento '{document_name}' cargado con éxito!")
            return response.json()
        else:
            print(f"Error al cargar el documento: {response.text}")
            return None

# Cargar contenido de texto en el almacén de vectores
def upload_text(content, document_name):
    headers = {
        "x-api-key": API_KEY,
        "Content-Type": "application/json"
    }
    
    data = {
        "name": document_name,
        "content": content
    }
    
    response = requests.post(
        f"{BASE_URL}/vector-stores/{VECTOR_STORE_ID}/documents/text",
        headers=headers,
        json=data
    )
    
    if response.status_code == 201:
        print(f"¡Documento de texto '{document_name}' cargado con éxito!")
        return response.json()
    else:
        print(f"Error al cargar el texto: {response.text}")
        return None

# Buscar en el almacén de vectores
def search_vector_store(query, num_results=5, prev_chunks=1, next_chunks=1):
    headers = {"x-api-key": API_KEY}
    
    params = {
        "q": query,
        "n": num_results,
        "prev_chunks": prev_chunks,
        "next_chunks": next_chunks
    }
    
    response = requests.get(
        f"{BASE_URL}/vector-stores/{VECTOR_STORE_ID}/documents/search",
        headers=headers,
        params=params
    )
    
    if response.status_code == 200:
        results = response.json()
        print(f"Encontrados {len(results['matched_chunks'])} coincidencias para '{query}'")
        
        # Imprimir el resultado principal
        if results['matched_chunks']:
            top_match = results['matched_chunks'][0]
            print(f"Coincidencia principal (distancia: {top_match['distance']}):")
            print(f"Documento: {top_match['document']['name']}")
            print(f"Contenido: {top_match['matched_content']}")
        
        return results
    else:
        print(f"Error al buscar: {response.text}")
        return None

# Ejemplo de uso
# subir_documento("ruta/al/documento.pdf")
# upload_text("Este es un texto de muestra para ser vectorizado", "sample-document.txt")
# search_vector_store("¿Cómo funciona la similitud de vectores?")

Mejores Prácticas de Migración

Sigue estas recomendaciones para una migración exitosa:

  1. Planifica con Anticipación:

    • Estima el volumen de datos y el tiempo requerido para la migración

    • Programa la migración durante períodos de baja actividad

    • Aumenta el espacio en disco antes de comenzar migraciones grandes

  2. Prueba Primero:

    • Crea un almacén de vectores de prueba en Rememberizer

    • Migra un pequeño subconjunto de datos (100-1000 vectores)

    • Verifica la funcionalidad de búsqueda con consultas clave

  3. Validación de Datos:

    • Compara el conteo de documentos antes y después de la migración

    • Ejecuta consultas de referencia para asegurar resultados similares

    • Valida que los metadatos se conserven correctamente

  4. Optimiza para el Rendimiento:

    • Utiliza operaciones por lotes para mayor eficiencia

    • Considera la colocación geográfica de las bases de datos de origen y destino

    • Monitorea los límites de tasa de la API y ajusta los tamaños de los lotes en consecuencia

  5. Pasos Post-Migración:

    • Verifica la creación del índice en Rememberizer

    • Actualiza las configuraciones de la aplicación para apuntar al nuevo almacén de vectores

    • Mantén la base de datos de origen como respaldo hasta que la migración sea verificada

Para referencia detallada de la API y documentación de puntos finales, visita la página de vector-store.


Asegúrate de manejar las claves de API de manera segura y seguir las mejores prácticas para la gestión de claves de API.

Last updated