Repository navigation
Export Formats RU
Chat Export пишет текущий чат (не полный дамп аккаунта). Форматы: Markdown, YAML, JSON, HTML, PDF. Несколько форматов сразу можно сложить в папку или zip. Имена файлов: {platform}-{title}-{date}.{ext}.
Схемы (name/version) задают форму текста. Дефолт: chat-export/1. Альтернатива: sharegpt/1. Выбор — в попапе расширения (Расширенные → Схемы экспорта); панель на странице только переключает форматы. MCP: опциональный schema у chats_export (сервер: settings.exportSchema).
Эта страница — семантический контракт дефолтной схемы: роли, метаданные, источники и тела сообщений.
Каждый ход примерно такой:
| Поле | Смысл |
|---|---|
role |
Логическая роль: user, assistant или slug провайдера |
role_tag / маркер роли |
Тег в MD-фенсах и в JSON (role_tag) — например user, assistant, chatgpt, grok, claude, … |
text |
Тело сообщения как Markdown-подобный текст (DOM → htmlToMarkdown) |
links |
Опционально [{ text, href }]
|
sources |
Опционально цитаты [{ title, url }] (поиск / grounding) |
Мета (если доступны): platform, url, title, exported / exported_at, chat_id, model, user_name, user_handle, user_email.
Рассчитано на простой сплиттер по блокам ```md.
-
Один system-фенс — язык
md, первая строка меткиsys, дальше строкиключ: значение. -
Каждое сообщение — пустой фенс, внутри метка роли с двоеточием (
user:,assistant:,chatgpt:, …), затем пустая строка и тело. -
Опциональный фенс sources — метка
sources, нумерованные Markdown-ссылки.
Пример:
```md
sys
platform: chatgpt
url: https://chatgpt.com/c/…
title: Bake-off notes
exported: 2026-11-12T05:00:00.000Z
chat_id: …
model: gpt-5
```
```md
user:
```
What is the capital of France?
```md
assistant:
```
Paris.
```md
sources
1. [Wikipedia](https://en.wikipedia.org/wiki/Paris)
```Как парсить MD
- Найти fenced-блоки с info-строкой
md. - Первая строка внутри фенса = метка (
sys,user:,sources, …). - Остальные строки = payload (
sys/sources) или пусто для маркеров роли. - Текст между маркером роли и следующим фенсом = тело сообщения.
Код внутри ответа — обычные ```lang (из HTML чата), не маркеры ролей md.
Стабильный машинный формат. Pretty-print, перевод строки в конце.
{
"schema": "chat-export/1",
"platform": "chatgpt",
"url": "https://chatgpt.com/c/…",
"title": "Bake-off notes",
"exported_at": "2026-11-12T05:00:00.000Z",
"chat_id": "…",
"model": "gpt-5",
"messages": [
{
"role": "user",
"role_tag": "user",
"text": "What is the capital of France?"
},
{
"role": "assistant",
"role_tag": "assistant",
"text": "Paris.",
"sources": [
{ "title": "Wikipedia", "url": "https://en.wikipedia.org/wiki/Paris" }
]
}
]
}- Парсеры начинайте с проверки
schema === "chat-export/1". - Для отображения предпочитайте
role_tag; для грубого фильтра —role. - Пустые опциональные поля не пишутся (не
null).
Те же мета-ключи, что у JSON (без schema). Дальше список messages::
platform: chatgpt
url: https://chatgpt.com/c/…
title: Bake-off notes
exported_at: 2026-11-12T05:00:00.000Z
messages:
- role: user
text: |
What is the capital of France?
- role: assistant
text: |
Paris.
sources:
- title: Wikipedia
url: https://en.wikipedia.org/wiki/ParisМногострочные тела — YAML block scalar (text: |).
Отдельный документ: <article> с <header> + <dl> метаданных, затем <section data-role="…"> на каждое сообщение (<h2> заголовок роли, тело из Markdown, опционально Sources <ol>). Встроен CSS, удобный для печати.
Выделяемый текст (включая кириллицу) из того же потока сообщений — не скриншот. Удобно шарить; для автопарсинга хуже, чем JSON/MD.
| Id | Страница |
|---|---|
chat-export/1 (дефолт) |
Export-Schema-chat-export-1-RU |
sharegpt/1 |
Export-Schema-sharegpt-1-RU |
- Не bulk-ZIP OpenAI «скачать все чаты» / Conversations.json.
- Не Alpaca JSONL (другая схема — issue или pack в
schemas/). - Не гарантия, что каждый провайдер заполнит все мета-поля (разброс DOM/API).
Нужен другой layout — issues или новый schema pack (schemas/README.md / CONTRIBUTING). Дефолт остаётся chat-export/1.