Добрый день!
В этой статье я хочу поделиться своим опытом в области классификации комментариев к видео на YouTube с использованием моделей GPT-3.5 и GPT-4 от OpenAI.

Репозиторий с кодом, написанным на NodeJS и TypeScript, доступен по этой ссылке. Хотя Python является де-факто стандартом для подобных экспериментов, учитывая популярность NodeJS на бэкенде, OpenAI выпустила официальную библиотеку для работы с их API именно для этой платформы.
В качестве примера для классификации я выбрал следующее видео:
Видео, в котором тестируется пробег 6 электромобилей, логично породило холивар на тему "Электро vs ДВС" в комментариях. Вот именно этот холивар мы и будем анализировать.
1. Загрузка и подготовка комментариев
Чтобы проект функционировал корректно, необходимо в корневой директории создать файл с именем ".env", в котором будут храниться ваши ключи доступа к OpenAI и YouTube API. Инструкции по получению этих ключей легко найти в интернете.
OPENAI_API_KEY=ваш ключ тут
YOUTUBE_API_KEY =ваш ключ тут Логика загрузки комментариев реализована в модуле Download.ts. Детальное описание этой части опущено, поскольку оно не является центральным элементом данной статьи. Загрузка комментариев производится следующей командой:
npm run youtube-downloadПосле выполнения этой команды в директории "data" появится файл comments.json, содержащий все корневые комментарии (ответы в этом анализе учитываться не будут).
Модуль Convert.ts фильтрует и оставляет только необходимые данные — ID комментария и его текст. Дополнительно удаляются комментарии слишком большой длины (более 400 символов, что составляет около 3% от общего числа), чтобы снизить стоимость анализа. Оставляются также первые 100 комментариев, которые будут использоваться как исходные данные для ручного создания тестового набора данных. Запуск происходит следующей командой:
npm run youtube-convertВ результате в директории "data" создается файл comments2.json.
2. Ручное создание тестового набора данных
Будем тестировать классификацию на 3 категории:
0 - комментарий поддерживает электромобили
1 - комментарий критикует электромобили или поддерживает автомобили с ДВС
2 - другое
Далее буду называть эти категории для краткости: "электро", "ДВС" и "другое".
Сначала необходимо отфильтровать из оставшихся 100 комментариев те, которые вы сами не можете однозначно классифицировать в одну из заданных категорий. После этого вручную установите соответствующие категории в поле "res" каждого комментария.
...
{
"id": "UgxW0nDvCXbWYHRl2iN4AaABAg",
"text": "Tesla 