Este arranque toma todos los archivos .mdx en el directorio pages y los procesa para usar como contexto personalizado dentro de las indicaciones de finalización de texto de OpenAI.
Implemente este iniciador en Vercel. La integración de Supabase establecerá automáticamente las variables de entorno requeridas y configurará el esquema de su base de datos. ¡Todo lo que tienes que hacer es configurar tu OPENAI_KEY y estás listo para comenzar!
[
Construir su propio chatgpt personalizado implica cuatro pasos:
.mdx en la carpeta de sus pages ). Paso 1. Y 2. Sucede en la hora de compilación, por ejemplo, cuando Vercel crea su aplicación Next.js. Durante este tiempo, se está ejecutando el script generate-embeddings que realiza las siguientes tareas:
secuencediagram
VERCEL PARTICIPANTE
DB participante (PGVector)
Participante Openai (API)
bucle 1. Preprocesar la base de conocimiento
VERCEL->> VERCEL: Páginas de Chunk .mdx en secciones
bucle 2. Crear y almacenar incrustaciones
VERCEL->> OPERAI (API): Crear integración para la sección de la página
OpenAI (API)->> Vercel: Vector de incrustación (1536)
VERCEL->> DB (PGVECTOR): Tienda Incrustación para la sección Página
fin
fin
Además de almacenar los incrustaciones, este script genera una suma de verificación para cada uno de sus archivos .mdx y almacena esto en otra tabla de base de datos para asegurarse de que las incrustaciones solo se regeneran cuando el archivo ha cambiado.
Paso 3. Y 4. Sucede en tiempo de ejecución, cada vez que el usuario envía una pregunta. Cuando esto sucede, se realiza la siguiente secuencia de tareas:
secuencediagram
cliente participante
función de borde del participante
DB participante (PGVector)
Participante Openai (API)
Cliente->> función de borde: {consulta: lorem ispum}
Critical 3. Realizar la búsqueda de similitud vectorial
Función de borde->> OpenAI (API): Crear incrustación para la consulta
OpenAI (API)->> Función de borde: Vector de incrustación (1536)
Función de borde->> DB (PGVector): búsqueda de similitud vectorial
DB (PGVector)->> Función de borde: contenido de documentos relevantes
fin
crítico 4. Inyectar contenido en el aviso
Función de borde->> OpenAI (API): solicitud de solicitud de finalización: consulta + contenido de documentos relevantes
OpenAI (API)->> Cliente: Texto/Event-Stream: Respuesta de finalización
fin
Los archivos relevantes para esto son el componente SearchDialog (Cliente) y el vector-search (Función Edge).
La inicialización de la base de datos, incluida la configuración de la extensión pgvector , se almacena en la carpeta supabase/migrations , que se aplica automáticamente a su instancia local de Postgres cuando se ejecuta supabase start .
cp .env.example .envOPENAI_KEY en el archivo .env recién creado.NEXT_PUBLIC_SUPABASE_ANON_KEY y SUPABASE_SERVICE_ROLE_KEY ejecutar:Nota: Debe ejecutar Supabase para recuperar las teclas.
Asegúrese de tener Docker instalado y funcionando localmente. Luego corre
supabase start Para recuperar NEXT_PUBLIC_SUPABASE_ANON_KEY y SUPABASE_SERVICE_ROLE_KEY Run:
supabase statusEn una nueva ventana de terminal, ejecute
pnpm dev.mdx . Esto se puede hacer renombrando el archivo Markdown .md existente (o compatible).pnpm run embeddings para regenerar incrustaciones.Nota: Asegúrese de que Supabase se esté ejecutando. Para verificar, ejecute
supabase status. Si no está ejecutando ejecutarsupabase start.
pnpm dev nuevamente para actualizar Nextjs Localhost: 3000 Página renderizada. Apache 2.0