Ce démarreur prend tous les fichiers .mdx dans le répertoire pages et les traite pour utiliser comme contexte personnalisé dans les invites d'achèvement de texte OpenAI.
Déployez ce démarreur à Vercel. L'intégration Supabase définira automatiquement les variables d'environnement requises et configurera votre schéma de base de données. Tout ce que vous avez à faire est de définir votre OPENAI_KEY et vous êtes prêt à partir!
[
La construction de votre propre chatpt personnalisé implique quatre étapes:
.mdx dans votre dossier pages ). Étape 1. Et 2. Arrivez au moment de la construction, par exemple lorsque Vercel construit votre application suivante.js. Pendant ce temps, le script generate-embeddings est en cours d'exécution qui effectue les tâches suivantes:
séquenchestre
participant Vercel
DB participant (PGVector)
Participant Openai (API)
Boucle 1. Pré-traitement de la base de connaissances
Vercel - >> Vercel: Chunk .mdx Pages en sections
Boucle 2. Créer et stocker des intégres
Vercel - >> Openai (API): Créez une intégration pour la section Page
Openai (API) - >> Vercel: Vector d'intégration (1536)
Vercel - >> DB (PGVector): Stocker INCHEDDING pour la section Page
fin
fin
En plus de stocker les incorporations, ce script génère une somme de contrôle pour chacun de vos fichiers .mdx et stocke-le dans une autre table de base de données pour s'assurer que les incorporations ne sont régénérées que lorsque le fichier a changé.
Étape 3. Et 4. se produire au moment de l'exécution, chaque fois que l'utilisateur soumet une question. Lorsque cela se produit, la séquence de tâches suivante est effectuée:
séquenchestre
client de participant
Fonction Edge du participant
DB participant (PGVector)
Participant Openai (API)
Client - >> Fonction Edge: {Query: Lorem Ispum}
Critique 3. Effectuer la recherche de similitude vectorielle
Fonction de bord - >> Openai (API): Créez une intégration pour la requête
Openai (API) - >> Fonction de bord: vecteur d'intégration (1536)
Fonction de bord - >> db (pgvector): recherche de similitude vectorielle
DB (pgvector) - >> Fonction Edge: Contenu des documents pertinents
fin
Critique 4. Injecter le contenu dans l'invite
Fonction Edge - >> Openai (API): Invite de demande de complétion: requête + contenu de documents pertinents
Openai (API) - >> Client: Texte / Stream d'événements: Réponse de complétion
fin
Les fichiers pertinents pour cela sont le composant SearchDialog (Client) et la vector-search (fonction Edge).
L'initialisation de la base de données, y compris la configuration de l'extension pgvector , est stockée dans le dossier supabase/migrations qui est automatiquement appliquée à votre instance Postgres locale lors de l'exécution supabase start .
cp .env.example .envOPENAI_KEY dans le fichier .env nouvellement créé.NEXT_PUBLIC_SUPABASE_ANON_KEY et SUPABASE_SERVICE_ROLE_KEY Run:Remarque: vous devez exécuter Supabase pour récupérer les clés.
Assurez-vous que Docker a installé et exécuté localement. Puis courez
supabase start Pour récupérer NEXT_PUBLIC_SUPABASE_ANON_KEY et SUPABASE_SERVICE_ROLE_KEY run:
supabase statusDans une nouvelle fenêtre de terminal, exécutez
pnpm dev.mdx . Cela peut être fait en renommant le fichier de marque .md de marque .md existant (ou compatible).pnpm run embeddings pour régénérer les intégres.Remarque: assurez-vous que Supabase est en cours d'exécution. Pour vérifier, exécutez
supabase status. Si je ne fonctionne pas d'supabase start.
pnpm dev pour actualiser NextJS LocalHost: 3000 Page rendue. Apache 2.0