Utiliser l'assistance vectorielle

Cette page explique comment utiliser l'assistance vectorielle pour déployer et gérer une charge de travail vectorielle sur votre instance Cloud SQL pour PostgreSQL.

Pour en savoir plus sur l'assistance vectorielle et son fonctionnement, consultez Présentation de l'assistance vectorielle.

Avant de commencer

  • Vérifiez que votre instance utilise la version de maintenance appropriée. L'assistance vectorielle nécessite un numéro de version de maintenance minimal de PostgreSQL_$version.R20251004.01_07. Pour en savoir plus sur la maintenance en libre-service, consultez Maintenance en libre-service des performances.
  • Définissez le flag de base de données cloudsql.enable_vector_assist sur ON.
  • Activez l'extension d'assistance vectorielle à l'aide de la commande suivante dans la base de données que vous souhaitez utiliser :

    CREATE EXTENSION vector_assist CASCADE;
    

    Cette opération génère le schéma vector_assist, qui est utilisé par l'assistance vectorielle.

Utiliser l'assistance vectorielle pour déployer une charge de travail vectorielle

Pour utiliser l'assistance vectorielle afin de déployer et de gérer une charge de travail vectorielle, vous devez procéder comme suit :

Définir votre spécification de vecteur

La première étape pour utiliser l'assistance vectorielle consiste à définir la spécification vectorielle ou spécification vectorielle. Selon le type de charge de travail vectorielle, les champs que vous utilisez pour définir votre spécification vectorielle peuvent être différents.

Par exemple, si vous souhaitez activer la recherche sémantique sur une colonne spécifique d'une table, exécutez la fonction vector_assist.define_spec pour définir votre spécification de vecteur :

SELECT vector_assist.define_spec(
  table_name => 'TABLE_NAME',
  vector_column_name => 'VECTOR_COLUMN_NAME',
  target_recall => TARGET_RECALL,
  tune_vector_index => TUNE_INDEX
);

Remplacez les paramètres suivants :

  • TABLE_NAME : nom de la table que vous souhaitez utiliser dans votre charge de travail vectorielle.
  • VECTOR_COLUMN_NAME : colonne sur laquelle vous souhaitez effectuer une recherche sémantique.
  • TARGET_RECALL : rappel cible que vous souhaitez que l'assistance vectorielle atteigne.
  • TUNE_INDEX : valeur booléenne qui indique si l'assistance vectorielle ajuste les index vectoriels de votre charge de travail.

Pour obtenir la liste complète de tous les paramètres disponibles pour la spécification vectorielle, consultez la documentation de référence sur l'assistance vectorielle.

Une fois que vous avez exécuté la requête pour créer votre spécification de vecteur, l'assistance pour les vecteurs génère automatiquement des étapes, appelées recommandations, que vous devez exécuter pour déployer votre charge de travail vectorielle.

Afficher les recommandations d'assistance vectorielle

Pour afficher les recommandations générées par l'assistance vectorielle à l'aide de votre spécification vectorielle, exécutez la fonction vector_assist.get_recommendations :

SELECT vector_assist.get_recommendations(
  spec_id => 'SPEC_ID'
);

Remplacez les paramètres suivants :

  • SPEC_ID : ID de spécification de la spécification de vecteur pour laquelle vous souhaitez afficher les recommandations.

Renvoie une table appelée vector_assist.RECOMMENDATIONS qui contient toutes les recommandations. Chaque recommandation est stockée dans un tableau avec le spec_id associé. Chaque recommandation contient généralement la requête SQL que vous devez exécuter, une explication détaillée de la recommandation et d'autres informations pertinentes.

Appliquer les recommandations d'assistance vectorielle

Vous pouvez appliquer les recommandations générées individuellement ou dans leur ensemble.

Pour appliquer une recommandation spécifique, exécutez la fonction vector_assist.apply_recommendation :

SELECT vector_assist.apply_recommendation(
  recommendation_id => 'RECOMMENATION_ID',
);

Remplacez les paramètres suivants :

  • RECOMMENDATION_ID : ID de la recommandation d'assistance vectorielle que vous souhaitez appliquer à partir de la table vector_assist.RECOMMENDATIONS.

Pour appliquer toutes les recommandations ensemble, exécutez la fonction vector_assist.apply_spec avec le paramètre spec_id ou table_name :

SELECT vector_assist.apply_spec(
  spec_id => 'SPEC_ID',
  table_name => 'TABLE_NAME'
);

Remplacez les paramètres suivants :

  • SPEC_ID : ID de la spécification vectorielle que vous souhaitez utiliser.
  • TABLE_NAME : nom de la table que vous avez utilisée pour définir votre spécification vectorielle.

Vous pouvez également saisir les paramètres schema_name ou column_name.

Une fois que vous avez appliqué les recommandations générées par l'assistance vectorielle, l'index vectoriel est prêt à être utilisé.

Générer des requêtes de recherche

Vous pouvez utiliser l'assistance vectorielle pour vous aider à créer des requêtes de recherche optimisées pour vos charges de travail vectorielles déployées, en utilisant la spécification vectorielle et l'index vectoriel générés de la charge de travail. Pour générer une requête de recherche optimisée, exécutez la fonction vector_assist.generate_query :

SELECT vector_assist.generate_query(
  spec_id => 'SPEC_ID',
  table_name => 'TABLE_NAME',
  column_name => 'COLUMN_NAME',
  search_text => 'SEARCH_TEXT',
  top_k => 'TOP_K_NAME',
  target_recall => TARGET_RECALL,
  filter_expression => 'FILTER_EXPRESSION'
);

Remplacez les paramètres suivants :

  • SPEC_ID : ID de la spécification que vous souhaitez utiliser.
  • TABLE_NAME : nom de la table que vous avez utilisée pour définir votre spécification vectorielle.
  • COLUMN_NAME : nom de la colonne de texte d'origine que vous avez définie dans votre spécification vectorielle.
  • SEARCH_TEXT : texte que vous souhaitez rechercher dans la colonne.
  • TOP_K : nombre de voisins les plus proches à renvoyer.
  • TARGET_RECALL : rappel cible que vous souhaitez que l'assistance vectorielle atteigne.
  • FILTER_EXPRESSION : tous les filtres pour la requête de recherche, par exemple le filtrage basé sur d'autres colonnes.

Pour obtenir la liste complète de tous les paramètres disponibles pour générer une requête de recherche, consultez la documentation de référence sur l'assistance vectorielle.

La sortie de cette fonction renvoie du texte contenant une requête SQL. Vous pouvez exécuter ou enregistrer cette requête SQL si nécessaire.

Étapes suivantes