Why?
00:00:00В видео обсуждается использование разработки подсказок и лучшие практики создания пользовательских подсказок с использованием технологии ChatGPT от OpenAI. Supabase, альтернатива Firebase с открытым исходным кодом, наняла создателя для создания ClippyGPT, инструмента поиска документов следующего поколения, который использует GPT-3 для предоставления ответов на запросы пользователей.
Let's get started
00:01:40предварительная обработка базы знаний, сохранение ее в базе данных и генерация вложений, а также вставка содержимого в виде контекста в приглашение GPT-3. Веб-сайт полностью построен на Next.js и имеет открытый исходный код в организации Supabase GitHub.
Custom knowledge base
00:03:15GPT-3 - это языковая модель общего назначения, которая была обучена на миллионах фрагментов текста, что затрудняет получение конкретных результатов на основе пользовательской базы знаний. Вставка всей базы знаний в приглашение является дорогостоящей и непрактичной из-за ограничений токенов, и каждый запрос должен обрабатываться как новый контекст, поскольку GPT-3 не имеет памяти между несколькими запросами.
Context injection
00:04:49Внедрение контекста - это метод, который включает поиск наиболее релевантных фрагментов информации, относящихся к запросу пользователя, и ввод их в приглашение в качестве контекста, за которым следует сам запрос пользователя. Этот подход заполняет запрос конкретной информацией и использует актуальную информацию каждый раз, когда выполняется новый запрос.
Pre-process MDX files
00:06:13Предварительная обработка многомерных файлов Документация для Supabase хранится в git в виде файлов MDX, которые представляют собой файлы markdown со встроенным JSX. Этап предварительной обработки включает в себя просмотр всех файлов markdown, извлечение метаданных, удаление JSX и разделение содержимого на подразделы. Это необходимо для хранения содержимого в базе данных в виде вложений, которые будут использоваться для решения проблемы и требуют использования Postgres.
Создать скрипт для встраивания Сценарий создания вложений запускается во время непрерывной интеграции и включает в себя захват содержимого всех многомерных файлов, фильтрацию файлов, отличных от многомерных, и обработку содержимого путем извлечения метаданных, удаления JSX и разделения содержимого на подразделы. Обработанный контент затем сохраняется в базе данных в виде вложений, которые будут использоваться для решения проблемы и требуют использования Postgres. Обработка выполняется с использованием инструментов, предоставляемых унифицированной платформой, которая разбивает файлы markdown на синтаксическое дерево и позволяет отфильтровывать элементы JSX.
Embeddings
00:13:40Вложения - это векторы или списки чисел с плавающей запятой, которые хранят значимую информацию о фрагменте текста. Они полезны для группировки похожих фраз вместе и могут быть сгенерированы с помощью OpenAI text embedding API, который создает вложения с размерами 1536. Затем эти вложения могут быть сохранены в базе данных.
Storing in Postgres + pgvector
00:15:40Хранение в Postgres + pgvector Платформа использует Postgres и расширение pgvector для хранения вложений в базе данных. Расширение pgvector предоставляет новый тип данных под названием Vector, который идеально подходит для хранения вложений в столбце.
Проектирование базы данных База данных разработана с использованием Supabase в качестве платформы базы данных, которая представляет собой Postgres под капотом. Вложения хранятся в базе данных с помощью клиента Supabase, который позволяет пользователю вставлять данные непосредственно в базу данных. Расширение pgvector используется для создания нового типа данных под названием Vector, который используется для хранения вложений в столбце. Размер вектора представляет собой количество измерений, которое в данном случае равно
Клиент Supabase также может использоваться во внешнем интерфейсе клиента браузера для доступа к базе данных, и он использует JWTs для аутентификации и авторизации.
API endpoint (edge function)
00:22:21Внутренний API-маршрут для завершения создается с помощью функции Supabase Edge, которая является бессерверной функцией. Функция использует Deno под капотом, и первым шагом является запуск контента через конечную точку модерации OpenAI, чтобы убедиться в соответствии с их рекомендациями.
Calculating similarity in pgvector
00:23:44Автор объясняет, как использовать библиотеку JavaScript Supabase для вызова функции Postgres под названием "сопоставление разделов страницы", которая возвращает 10 лучших разделов страницы, соответствующих запросу пользователя, используя внутренний оператор продукта pgvector для вычисления сходства. Затем содержимое маркируется с помощью токенизатора GPT-3, чтобы ограничить количество токенов в запросе.
Prompt engineering
00:27:55Оперативное проектирование Докладчик обсуждает лучшие практики оперативного проектирования и знакомит prmpts.ai , инструмент для создания подсказок и совместного использования ими. Они демонстрируют, как использовать заполнители и литералы шаблонов JavaScript для создания приглашения и динамического ввода контекста и фрагментов кода.
Использование GPT-3 для создания Markdown Докладчик объясняет, как GPT-3 может понимать и генерировать markdown, что позволяет получать высококачественные ответы. Они демонстрируют, как заполненное приглашение может быть отправлено в GPT-3 API и результирующий вывод markdown может быть отображен с помощью средства визуализации markdown. Они также подчеркивают силу порождающей языковой модели в выведении дополнительной информации.
Prompt best practices
00:33:15Подсказать наилучшие методы Приглашение должно включать идентификатор, задачу, условие, контекст, метки, вопрос, запрос и ответ. Важно предотвратить галлюцинации GPT-3 и подкрепить задачу и контекст ярлыками. Температуру можно использовать для контроля отклонения отклика.
Использование библиотеки OpenAI Конечная точка завершения вызывается с использованием библиотеки OpenAI, передавая модель, приглашение, максимальное количество токенов и температуру. Нулевая температура обеспечивает согласованную реакцию, что полезно при тестировании различных сценариев.
Demo time!
00:38:37Рассказчик демонстрирует конечный результат проекта, который включает в себя настроенного персонажа Clippy, который отвечает на запросы на естественном языке, используя генеративную языковую модель Supabase. Рассказчик демонстрирует, как модель может предоставлять индивидуальные ответы на запросы, связанные с CLI Supabase, созданием миграций и работой с Next.js .
Thanks for watching!
00:41:32Видео завершается упоминанием о Next.js и простота установки. Докладчик выражает благодарность команде Supabase за их поддержку и сотрудничество на протяжении всего проекта.