Génération et stockage des intégres Google Gemini avec Vercel AI SDK et Supabase

DEV - 01/04
Les incorporations de texte sont des vecteurs numériques représentant des concepts comme du texte, permettant des tâches d'IA telles que ...

Les incorporations de texte sont des vecteurs numériques représentant des concepts comme du texte, permettant des tâches d'IA telles que la recherche sémantique, les recommandations et le regroupement. Ce message vous guide en générant des intérêts de texte à l'aide de Google Gemini via le SDK Vercel AI et en les stockant dans une base de données Supabase Postgres avec lapgvecteurextension.

Pourquoi Vercel AI SDK et Supabase?

  • Vercel AI SDK: propose une API unifiée et adaptée aux développeurs pour interagir avec les fournisseurs d'IA comme Google, simplifiant la génération d'intégration. Source: Vercel AI SDK Docs
  • Supabase & PGVector: fournit une base de données Postgres évolutive avecpgvecteurPour un stockage vectoriel efficace et une recherche de similitude dans la base de données. Source: Supabase AI Docs

Condition préalable

  • Environnement Node.js (LTS recommandé)
  • Un projet Supabase (en créer un)
  • Une clé API Google AI (obtenez-en une via Google AI Studio)
  • Un compte Vercel (facultatif, pour un déploiement facile)

Étape 1: Configuration

Installez les packages nécessaires:

PNPM Ajouter AI @ AI-SDK / Google @ Supabase / Supabase-JS # ou NPM Installer Ai @ Ai-Sdk / Google @ Supabase / Supabase-JS # ou YARN ADD AI @ AI-SDK / Google @ Supabase / Supabase-JS
Entrez le mode de sortie en mode plein écran

Créer un.env.localFichier pour vos variables d'environnement:

# Requis pour Vercel AI SDK (Google) Google_API_KEY = 'Your-GOOGLE-AI-API-KEKE' # OBLIQUE POUR LE CLIENT SUPABASE NEXT_PUBLIC_SUPABASE_URL = 'VOTRE-SUPABASE-Project-URL' # Public Key pour les lectures du client (par exemple, recherche sémantique) Écrits côté serveur (par exemple, stockage des intégres) supabase_service_role_key = 'votre serviette-role-role-SUPABASE'
Entrez le mode de sortie en mode plein écran

AVERTISSEMENT: Protégez vos clés API. Ajouter.env.localà votre.gitignoreet utiliser des variables d'environnement dans votre environnement de déploiement.

Initialisez le client Supabase. Créez des clients séparés pour les opérations côté serveur (en utilisant la clé de rôle de service) et les opérations côté client (en utilisant la clé Anon) si nécessaire, ou gérez l'accès de manière appropriée en fonction de votre architecture.

import {createClient} de '@ supabase / supabase-js'; const supabaseUrl = process.env.next_public_supabase_url!; const subspabaseanonkey = process.env.next_public_supabase_anon_key!; const subpabaseServicerolekey = process.env.supabase_service_role_key!; // Client pour l'accès à la lecture publique (par exemple, dans les fonctions de navigateur ou de bord) Export CON Supabase = CreateClient (Supabaseurl, SupabaseAnonkey); // Client pour les opérations côté serveur nécessitant des privilèges élevés // Utilisez-le avec prudence et uniquement dans les environnements de serveur sécurisés export CON SUPABASEADMIN = CREATECLIENT (SupabaseUrl, SupabaseServicerOlekey);
Entrez le mode de sortie en mode plein écran

Étape 2: Préparez la base de données Supabase

  1. ActivervecteurExtension: dans votre tableau de bord Supabase, accédez àBase de données>Extensions, trouvervecteur, et activez-le.
  2. Créer une table: allez auÉditeur SQLet exécutez le SQL ci-dessous. Surtout, ajustezVecteur (768)Si vous prévoyez d'utiliser un modèle Gemini différent ou d'optimiser / tronquer les intégres dans une dimension différente.Texte-Embedding-004utilise 768 dimensions. Source: Google AI Embeddings
- ...
[Courte citation de 8% de l'article original]
Loading...