Archivi Vettoriali

Questa guida ti aiuterà a capire come utilizzare il Rememberizer Vector Store come sviluppatore.

L'Archivio Vettoriale di Rememberizer semplifica il processo di gestione dei dati vettoriali, consentendoti di concentrarti sull'input di testo e sfruttare la potenza dei vettori per varie applicazioni come la ricerca e l'analisi dei dati.

Introduzione

Il Rememberizer Vector Store fornisce un'interfaccia facile da usare per gestire i dati vettoriali, astrando la complessità delle embedding vettoriali. Alimentato da PostgreSQL con l'estensione pgvector, il Rememberizer Vector Store ti consente di lavorare direttamente con il testo. Il servizio gestisce il chunking, la vettorizzazione e l'archiviazione dei dati testuali, rendendo più facile per te concentrarti sulla logica principale della tua applicazione.

Per una comprensione più profonda dei concetti teorici dietro le embedding vettoriali e i database vettoriali, vedi Cosa sono le embedding vettoriali e i database vettoriali?.

Panoramica Tecnica

Come Funzionano gli Archivi Vettoriali

Gli Archivi Vettoriali di Rememberizer convertono il testo in rappresentazioni vettoriali ad alta dimensione (embedding) che catturano il significato semantico. Questo consente:

  1. Ricerca Semantica: Trovare documenti basati sul significato piuttosto che solo su parole chiave

  2. Corrispondenza di Somiglianza: Identificare contenuti concettualmente correlati

  3. Recupero Efficiente: Localizzare rapidamente informazioni rilevanti da grandi set di dati

Componenti Chiave

  • Elaborazione dei Documenti: Il testo viene suddiviso in pezzi di dimensioni ottimali con confini sovrapposti per preservare il contesto

  • Vettorizzazione: I pezzi vengono convertiti in embedding utilizzando modelli all'avanguardia

  • Indicizzazione: Algoritmi specializzati organizzano i vettori per una ricerca di similarità efficiente

  • Elaborazione delle Query: Le query di ricerca vengono vettorizzate e confrontate con gli embedding memorizzati

Architettura

Rememberizer implementa i vettori di archiviazione utilizzando:

  • PostgreSQL con estensione pgvector: Per un'archiviazione e ricerca dei vettori efficiente

  • Organizzazione basata su collezioni: Ogni vettore di archiviazione ha la propria collezione isolata

  • Accesso guidato da API: Endpoint RESTful semplici per tutte le operazioni

Iniziare

Creazione di un Negozio di Vettori

  1. Naviga nella Sezione Negozio di Vettori nel tuo pannello di controllo

  2. Clicca su "Crea nuovo Negozio di Vettori":

    • Apparirà un modulo che ti chiederà di inserire i dettagli.

  3. Compila i Dettagli:

    • Nome: Fornisci un nome unico per il tuo negozio di vettori.

    • Descrizione: Scrivi una breve descrizione del negozio di vettori.

    • Modello di Embedding: Seleziona il modello che converte il testo in vettori.

    • Algoritmo di Indicizzazione: Scegli come i vettori saranno organizzati per la ricerca.

    • Metrica di Ricerca: Definisci come viene calcolata la somiglianza tra i vettori.

    • Dimensione del Vettore: La dimensione degli embedding dei vettori (tipicamente 768-1536).

  4. Invia il Modulo:

    • Clicca sul pulsante "Crea". Riceverai una notifica di successo e il nuovo negozio apparirà nella tua lista di negozi di vettori.

Crea un Nuovo Negozio di Vettori
Crea un Nuovo Negozio di Vettori

Opzioni di Configurazione

Modelli di Embedding

Modello
Dimensioni
Descrizione
Migliore per

openai/text-embedding-3-large

1536

Modello di embedding ad alta precisione di OpenAI

Applicazioni di produzione che richiedono la massima precisione

openai/text-embedding-3-small

1536

Modello di embedding più piccolo e veloce di OpenAI

Applicazioni con requisiti di throughput più elevati

Algoritmi di indicizzazione

Algoritmo
Descrizione
Compromessi

IVFFLAT (predefinito)

File invertito con compressione piatta

Buon equilibrio tra velocità e precisione; funziona bene per la maggior parte dei dataset

HNSW

Mondo piccolo navigabile gerarchico

Maggiore precisione per grandi dataset; requisiti di memoria più elevati

Metriche di Ricerca

Metri
Descrizione
Migliore per

coseno (predefinito)

Misura l'angolo tra i vettori

Abbinamento di somiglianza di uso generale

prodotto interno (ip)

Prodotto scalare tra vettori

Quando la magnitudine del vettore è importante

L2 (Euclideo)

Distanza in linea retta tra i vettori

Quando le relazioni spaziali sono importanti

Gestione degli Archivi Vettoriali

  1. Visualizza e Modifica gli Archivi Vettoriali:

    • Accedi al pannello di gestione per visualizzare, modificare o eliminare gli archivi vettoriali.

  2. Visualizzazione dei Documenti:

    • Sfoglia i singoli documenti e i loro metadati associati all'interno di un archivio vettoriale specifico.

  3. Statistiche:

    • Visualizza statistiche dettagliate come il numero di vettori memorizzati, le prestazioni delle query e le metriche operative.

Visualizza Dettagli di un Archivio Vettoriale
Visualizza Dettagli di un Archivio Vettoriale

Gestione delle Chiavi API

Le chiavi API vengono utilizzate per autenticare e autorizzare l'accesso agli endpoint API del Rememberizer Vector Store. Una corretta gestione delle chiavi API è essenziale per mantenere la sicurezza e l'integrità dei tuoi vector store.

Creazione di Chiavi API

  1. Vai alla pagina dei dettagli del tuo Vector Store

  2. Naviga alla Sezione di Gestione delle Chiavi API:

    • Può essere trovata all'interno della scheda "Configurazione"

  3. Clicca su "Aggiungi Chiave API":

    • Apparirà un modulo che ti chiederà di inserire i dettagli.

  4. Compila i Dettagli:

    • Nome: Fornisci un nome per la chiave API per aiutarti a identificare il suo caso d'uso.

  5. Invia il Modulo:

    • Clicca sul pulsante "Crea". La nuova chiave API verrà generata e visualizzata. Assicurati di copiarla e conservarla in modo sicuro. Questa chiave viene utilizzata per autenticare le richieste a quel specifico vector store.

Crea una Nuova Chiave API
Crea una Nuova Chiave API

Revoca delle chiavi API

Se una chiave API non è più necessaria, puoi eliminarla per prevenire potenziali abusi.

Per motivi di sicurezza, potresti voler ruotare le tue chiavi API periodicamente. Questo comporta la generazione di una nuova chiave e la revoca della vecchia.

Utilizzo dell'API del Vector Store

Dopo aver creato un Vector Store e generato una chiave API, puoi interagire con esso utilizzando l'API REST.

Esempi di Codice

import requests
import json

API_KEY = "your_api_key_here"
VECTOR_STORE_ID = "vs_abc123"  # Sostituisci con il tuo ID del vettore
BASE_URL = "https://api.rememberizer.a

# Carica un documento nello store vettoriale
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}' caricato con successo!")
            return response.json()
        else:
            print(f"Errore durante il caricamento del documento: {response.text}")
            return None

# Carica contenuti testuali nel negozio vettoriale
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 di testo '{document_name}' caricato con successo!")
        return response.json()
    else:
        print(f"Errore durante il caricamento del testo: {response.text}")
        return None

# Cerca nel negozio di vettori
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"Trovati {len(results['matched_chunks'])} risultati per '{query}'")
        
        # Stampa il risultato migliore
        if results['matched_chunks']:
            top_match = results['matched_chunks'][0]
            print(f"Miglior risultato (distanza: {top_match['distance']}):")
            print(f"Documento: {top_match['document']['name']}")
            print(f"Contenuto: {top_match['matched_content']}")
        
        return results
    else:
        print(f"Errore nella ricerca: {response.text}")
        return None

# Esempio di utilizzo
# carica_documento("path/to/document.pdf")
# upload_text("Questo è un testo di esempio da vettorizzare", "sample-document.txt")
# search_vector_store("Come funziona la similarità vettoriale?")

Migliori Pratiche per la Migrazione

Segui queste raccomandazioni per una migrazione di successo:

  1. Pianifica in Anticipo:

    • Stima il volume dei dati e il tempo necessario per la migrazione

    • Pianifica la migrazione durante i periodi di bassa affluenza

    • Aumenta lo spazio su disco prima di iniziare grandi migrazioni

  2. Testa Prima:

    • Crea un archivio vettoriale di prova in Rememberizer

    • Migra un piccolo sottoinsieme di dati (100-1000 vettori)

    • Verifica la funzionalità di ricerca con query chiave

  3. Validazione dei Dati:

    • Confronta i conteggi dei documenti prima e dopo la migrazione

    • Esegui query di benchmark per garantire risultati simili

    • Valida che i metadati siano correttamente preservati

  4. Ottimizza per le Prestazioni:

    • Usa operazioni in batch per efficienza

    • Considera la collocazione geografica dei database sorgente e di destinazione

    • Monitora i limiti di velocità dell'API e regola le dimensioni dei batch di conseguenza

  5. Passi Post-Migrazione:

    • Verifica la creazione dell'indice in Rememberizer

    • Aggiorna le configurazioni dell'applicazione per puntare al nuovo archivio vettoriale

    • Tieni il database sorgente come backup fino a quando la migrazione non è verificata

Per un riferimento API dettagliato e documentazione sugli endpoint, visita la pagina API Archivi Vettoriali.


Assicurati di gestire le chiavi API in modo sicuro e segui le migliori pratiche per la gestione delle chiavi API.

Last updated