Этот стартер берет все файлы .mdx в каталоге pages и обрабатывает их для использования в качестве пользовательского контекста в подсказках завершения текста Openai.
Развернуть этот стартер в Vercel. Интеграция Supabase автоматически установит необходимые переменные среды и настраивает схему вашей базы данных. Все, что вам нужно сделать, это установить свой OPENAI_KEY , и вы готовы к работе!
[
Создание собственного CHATGPT включает в себя четыре шага:
.mdx в папке ваших pages ). Шаг 1. и 2. Производите во время сборки, например, когда Vercel строит ваше приложение. JS. В течение этого времени выполняется сценарий generate-embeddings , который выполняет следующие задачи:
секвенированная
Участник Версель
Участник DB (PGVECTOR)
Участник Openai (API)
петля 1. Предварительно обрабатывать базу знаний
Vercel->> Vercel: Chunk .mdx Страницы в разделы
петля 2. Создать и хранить встраивания
Vercel->> OpenAI (API): создать встраивание для раздела страницы
OpenAI (API)->> Vercel: Вектор Encedding (1536)
Vercel->> DB (PGVector): хранить встраивание для раздела страницы
конец
конец
В дополнение к хранению вставки, этот скрипт генерирует контрольную сумму для каждого из ваших файлов .mdx и хранит ее в другой таблице баз данных, чтобы убедиться, что встроенные вставки регенерированы только при изменении файла.
Шаг 3. И 4. Производите во время выполнения, в любое время, когда пользователь подает вопрос. Когда это происходит, выполняется следующая последовательность задач:
секвенированная
Участник клиент
Функция преимущества участника
Участник DB (PGVECTOR)
Участник Openai (API)
Client->> Функция края: {Query: Lorem ispum}
Критический 3. Выполните поиск сходства вектора
Функция края->> openai (API): создать встраивание для запроса
OpenAI (API)->> Функция края: Встроенный вектор (1536)
Функция края->> дБ (PGVector): Поиск сходства вектора
DB (PGVector)->> Функция края: Содержание соответствующих документов
конец
Критическое 4. Введите содержание в быстрое
Функция Edge->> OpenAI (API): Запрос на завершение: запрос на запрос + соответствующий содержимое документов
OpenAI (API)->> Клиент: Текст/Строитель:
конец
Соответствующими файлами для этого являются компонент SearchDialog (клиент) и vector-search (Edge Function).
Инициализация базы данных, включая настройку расширения pgvector , хранится в папке supabase/migrations , которая автоматически применяется к вашему местному экземпляру Postgres при supabase start .
cp .env.example .envOPENAI_KEY в недавно созданный файл .env .NEXT_PUBLIC_SUPABASE_ANON_KEY и SUPABASE_SERVICE_ROLE_KEY RUN:Примечание: вы должны запустить Supabase, чтобы получить ключи.
Убедитесь, что у вас установлен Docker и работает локально. Затем беги
supabase start Для получения NEXT_PUBLIC_SUPABASE_ANON_KEY и SUPABASE_SERVICE_ROLE_KEY run:
supabase statusВ новом окне терминала запустите
pnpm dev.mdx . Это можно сделать путем переименования существующего (или совместимого) разметки .md .pnpm run embeddings для регенерации встраиваний.Примечание. Убедитесь, что Supabase работает. Чтобы проверить, запустите
supabase status. Если не работает запуститьsupabase start.
pnpm dev снова, чтобы обновить NextJS LocalHost: 3000 Rendered Page. Apache 2.0