Este iniciante pega todos os arquivos .mdx no diretório pages e os processa para usar como contexto personalizado nos avisos de conclusão de texto do OpenAI.
Implante este iniciador para o Vercel. A integração Supabase definirá automaticamente as variáveis de ambiente necessárias e configurará seu esquema de banco de dados. Tudo o que você precisa fazer é definir seu OPENAI_KEY e você está pronto para ir!
[[
Construir seu próprio chatgpt personalizado envolve quatro etapas:
.mdx na pasta pages ). Etapa 1. E 2. Acontece no momento da construção, por exemplo, quando o Vercel cria seu próximo.js aplicativo. Durante esse período, o script generate-embeddings está sendo executado, que executa as seguintes tarefas:
Sequenciadoiagram
Participante Vercel
DB participante (PGVector)
Participante Openai (API)
Loop 1. Pré-processo a base de conhecimento
Vercel->> vercel: chunk .mdx páginas em seções
Loop 2. Criar e armazenar incorporados
Vercel->> OpenAI (API): Crie a seção de incorporação para a página
OpenAI (API)->> Vercel: Incorporação de vetor (1536)
VERCEL->> dB (PGVector): armazenar a incorporação para a seção de página
fim
fim
Além de armazenar as incorporações, esse script gera uma soma de verificação para cada um dos seus arquivos .mdx e armazena isso em outra tabela de banco de dados para garantir que as incorporações sejam regeneradas apenas quando o arquivo foi alterado.
Etapa 3. E 4. Acontece em tempo de execução, sempre que o usuário enviar uma pergunta. Quando isso acontece, a seguinte sequência de tarefas é executada:
Sequenciadoiagram
cliente participante
Função de borda do participante
DB participante (PGVector)
Participante Openai (API)
Cliente->> Função da borda: {Query: Lorem Ispum}
Crítico 3. Execute a pesquisa de similaridade vetorial
Função de borda->> OpenAI (API): Crie incorporação para consulta
OpenAI (API)->> Função da borda: Incorporação de vetor (1536)
Função de borda->> dB (PGVector): pesquisa de similaridade vetorial
DB (PGVECTOR)->> Função da borda: Conteúdo relevante de documentos
fim
crítico 4. Injetar conteúdo no prompt
Função de borda->> OpenAI (API): solicitação de conclusão prompt: consulta + conteúdo relevante de documentos
OpenAI (API)->> Cliente: Texto/Stream de Eventos: Resposta de Concluir
fim
Os arquivos relevantes para isso são o componente SearchDialog (Client) e a vector-search (função Edge).
A inicialização do banco de dados, incluindo a configuração da extensão pgvector , é armazenada na pasta supabase/migrations , que é aplicada automaticamente à sua instância local do PostGres ao executar supabase start .
cp .env.example .envOPENAI_KEY no arquivo .env recém -criado.NEXT_PUBLIC_SUPABASE_ANON_KEY e SUPABASE_SERVICE_ROLE_KEY run:Nota: Você precisa executar o Supabase para recuperar as chaves.
Verifique se você está instalado e executando localmente. Em seguida, corra
supabase start Para recuperar NEXT_PUBLIC_SUPABASE_ANON_KEY e SUPABASE_SERVICE_ROLE_KEY run:
supabase statusEm uma nova janela do terminal, execute
pnpm dev.mdx . Isso pode ser feito renomeando o arquivo .md de marcação existente (ou compatível).pnpm run embeddings para regenerar as incorporações.Nota: verifique se o supabase está em execução. Para verificar, execute
supabase status. Se não estiver executandosupabase start.
pnpm dev novamente para atualizar o NextJS localhost: 3000 Página renderizada. Apache 2.0