Превратите диалог ChatGPT в JSON.
У диалога уже есть структура — роли, порядок, время, модели. Читая его сплошным текстом, вы её выбрасываете. Extry возвращает её в виде JSON — по записи на каждое сообщение.
- retry-backoff-design.json31.7 KBструктура
Зачем JSON
Для скрипта, а не для чтения
JSON берут, когда файл открывает не человек. Каждое сообщение сохраняет роль, позицию, модель, которая его написала, и момент создания, поэтому скрипт может фильтровать, считать и сортировать, не угадывая по тексту.
Для чтения это неверный выбор. Если диалог должен снова оказаться перед человеком, Markdown или Word обойдутся с ним лучше.
Как выглядит файл
Один объект, затем сообщения по порядку
Начало файла описывает диалог: заголовок, ссылка на источник, когда создан, когда выгружен и сколько в нём сообщений. Дальше сами сообщения — по порядку, каждое отдельным объектом.
Текст сообщения остаётся markdown, поэтому блоки кода переживают перенос. Сноски продублированы массивом источников, чтобы скрипт прошёл по ссылкам, не разбирая текст обратно.
{
"title": "Retry backoff design",
"source": "https://chatgpt.com/c/…",
"created_at": "2026-03-11T09:14:22Z",
"exported_at": "2026-03-12T18:02:41Z",
"message_count": 2,
"messages": [
{
"index": 1,
"role": "user",
"author": "user",
"model": null,
"created_at": "2026-03-11T09:14:22Z",
"text": "Why is the retry loop",
"sources": []
}
]
}Что с ним можно делать
То, чего не даёт сплошной текст
Структура зафиксирована, поэтому почти всё это — несколько строк, а не разбор формата.
Фильтровать и считать
Только ответы ассистента, только после определённой даты, только написанные конкретной моделью.
Отдать в пайплайн
Загрузить в Jupyter, в расчёт эмбеддингов или в набор для проверки, ничего заранее не вычищая.
Сравнить две выгрузки
Один диалог в два момента: сравнить записи вместо того, чтобы перечитывать обе версии.
Как это работает
Три шага, один файл
- Откройте диалог в ChatGPT и нажмите кнопку Extry на странице.
- Выберите JSON в панели.
- Нажмите «Скачать этот диалог» и достаньте .json из архива.
Без аккаунта, без загрузки на сервер. Файл собирается прямо в странице, поэтому диалог никуда не уходит на конвертацию.
Обработка
Где что выполняется
| Что | Где происходит |
|---|---|
| Экспорт во все форматы | В вашем браузере |
| Вложения и изображения | В вашем браузере |
| Содержимое диалогов | Никуда не отправляется |
| Статистика использования | Не собирается |
| Типографский PDF (появится позже, по желанию) | На сервере, файл удаляется сразу |
Вопросы
О выгрузке в JSON
Что лежит в каждом сообщении?
Номер, идентификатор сообщения, роль, автор, написавшая модель или null, время создания меткой ISO, текст и процитированные источники.
Текст обычный или markdown?
Markdown. Код остаётся в блоках с указанием языка, поэтому его можно и отрисовать, и снять.
Можно получить все диалоги в JSON разом?
Да. Массовая выгрузка пишет такой же файл для каждого диалога, каждый в своей папке внутри одного архива.
Структура достаточно устойчива, чтобы писать под неё скрипт?
Ключи зафиксированы, и их пишет само расширение, а не считывает со страницы, поэтому форма не поедет при смене интерфейса. Значения по-прежнему следуют тому, что сообщает ChatGPT.
Ещё
Другие виды того же диалога
Тот же диалог, записанный иначе: CSV, Markdown, выгрузку всех диалогов, главную страницу.