Машинный перевод
Эта страница была автоматически переведена ИИ и может содержать ошибки. Если что-то неясно, обращайтесь к английскому источнику.
Команды обслуживания¶
Подкоманды обслуживания pplx-export поддерживают существующий архив в рабочем состоянии: повторный рендеринг страниц после исправлений рендерера, обратное заполнение метаданных активов/использования кредитов/режима, пометка удалённых удалённо обсуждений и перестроение графа связей. Большинство из них работают в первую очередь офлайн; их онлайн-фазы следуют той же дисциплине регулирования, что и batch (см. rate-limiting.md). Все они принимают общие параметры (--account, --out, --cookies-from, --transport, …).
- Принцип сохранения локального архива: ни одна команда обслуживания никогда не удаляет и не перемещает заархивированное содержимое обсуждений — архив является резервной копией.
- Офлайн-команды (
re-render,relations,sync-space,spacesбез--fetch-metaи фазы по умолчанию ниже) не требуют транспорта; см. ../architecture/offline-operations.md.
a. re-render¶
Повторно генерирует conversation.md и turns/ из заархивированного сырого JSON (raw_entries.json / raw_blocks.json) после исправлений рендерера — без сети, все остальные файлы остаются нетронутыми.
| Флаг | Значение | По умолчанию |
|---|---|---|
--limit N |
Обработать только первые N каталогов обсуждений | все |
--dry-run |
Вывести список каталогов, которые будут обработаны, ничего не записывая | выкл |
--thread-json |
Также добавить/удалить ключи interruptions и answer_variants в thread.json на месте |
выкл |
Ключевые особенности:
- Перестраивает витки офлайн с тем же конвейером, что и экспорт: разбор, сортировка по
created_us, дедупликация цитирований и — для computer/council — блоки рабочего процесса, отображение под-агентов и приложение непотреблённого фона. - Перезаписываются только
conversation.mdиturns/turn_*.md;sources*,assets/,report.mdиthread.jsonостаются без изменений. Устаревшие файлыturn_*.mdс номерами выше текущего количества витков удаляются — ничего больше, поэтому неизменённые файлы сохраняют своё время модификации. --thread-jsonзаписывает только при фактическом изменении содержимого; недавно добавленные/изменённыеanswer_variantsвызывают предупреждениеANSWER_VARIANT_DETECTEDи добавляются вindex/answer_variants_log.jsonl(идемпотентные повторные запуски не засоряют).- Каталоги обсуждений без
raw_entries.jsonпропускаются и подсчитываются.
pplx-export re-render --limit 20 --thread-json --dry-run
b. assets-backfill¶
Исправляет активы, которые были заархивированы без подписанного URL — три поэтапных исправления: повторная загрузка отсутствующих блоков, офлайн-извлечение встроенных данных и опциональное онлайн-обновление.
| Флаг | Значение | По умолчанию |
|---|---|---|
--fetch-blocks |
Сначала повторно загрузить отсутствующие raw_blocks.json и их активы с подписанными URL (онлайн) |
выкл |
--online |
Включить онлайн-обновление отсутствующих/устаревших активов | выкл (только офлайн-извлечение встроенных данных, ноль запросов) |
--limit N |
Обработать только первые N каталогов обсуждений | все |
Ключевые особенности:
- Фаза по умолчанию (офлайн, ноль запросов): извлекает встроенные активы (
ASSET_DIFF/CODE_ASSET) изraw_blocks.jsonвassets/files/*.mdи регистрирует типы дескрипторов облачных рабочих пространств (DOC_FILE/CODE_FILE/UNKNOWN— пока без канала загрузки) вassets/assets_manifest.json. Идемпотентно: известные записи дедуплицируются по uuid, затем по file_handle; файлы с одинаковыми именами разных версий получают короткий суффикс uuid, чтобы повторные запуски не конфликтовали. --fetch-blocks(онлайн): повторно загружает отсутствующиеraw_blocks.jsonдля обсуждений deep-research/computer/council/study, а также их загружаемые активы; обсуждения группируются по папке учётной записи с лениво создаваемым адаптером для каждой учётной записи (cookies переключаются автоматически), 3 секунды между обсуждениями.--online: для версий манифеста, у которыхdownloaded_toотсутствует/устарел, загружает новый подписанный URL через/rest/assets/<uuid>/data(вызовы API последовательно, с интервалом 3 секунды), затем повторно загружает с CDN (6 параллельных потоков, без задержки — CDN, а не API). Код 404ASSET_NOT_FOUNDустанавливает терминальный флагasset_expired; межучётный код 403 повторяется один раз с учётной записью, владеющей папкой архива.countманифеста пересчитывается как общее количество версий при каждой обратной записи.
pplx-export assets-backfill --fetch-blocks --online --limit 30 --account alice
c. usage-backfill¶
Заполняет обратно использование кредитов на обсуждение (credits/thread-usage) для всех заархивированных обсуждений учётной записи в index/credit_usage_<account>.json.
| Флаг | Значение | По умолчанию |
|---|---|---|
--limit N |
Обработать только первые N обсуждений | все |
Ключевые особенности:
- Один GET на каждое заархивированное обсуждение (
thread_id=psc_uuidобсуждения), с интервалом 3 секунды; идемпотентно — обсуждения, уже присутствующие в выходном файле, пропускаются. - Код 403 (
thread_usage_forbidden, т.е. межучётное обсуждение) записывается какerrorи никогда не повторяется; другие сбои оставляются для следующего запуска. Прогресс сохраняется каждые 25 обработанных обсуждений. - Многопользовательский режим: запускать один раз для каждой учётной записи с
--account— cookies переключаются автоматически между запусками.
pplx-export usage-backfill --account alice
d. search-mode-backfill¶
Заполняет обратно авторитетное поле search_mode платформы в каждую строку index/library_<account>.json, чтобы batch --mode мог фильтровать точно, а не полагаться на эвристики.
| Флаг | Значение | По умолчанию |
|---|---|---|
--limit N |
Обработать только первые N ожидающих строк | все |
--offline |
Только локальное извлечение — строки без локальных сырых данных ждут следующего раунда, без онлайн-запасного варианта | выкл |
--delay-min SEC |
Нижняя граница случайного интервала между обсуждениями с онлайн-запасным вариантом | 10 |
--delay-max SEC |
Верхняя граница случайного интервала между обсуждениями с онлайн-запасным вариантом | 20 |
Ключевые особенности:
- Сохраняет сырое значение платформы (
SEARCH/RESEARCH/ASI/AGENTIC_RESEARCH/STUDY/STUDIO…); обсуждение, содержащее несколько значений, сохраняет наиболее специфичное по приоритету: computer > council > study > deep-research > search. - Локально в первую очередь: заархивированные обсуждения разрешаются из
raw_entries.jsonбез сети — полностью локальный запуск никогда даже не строит транспорт (даже пробный сеанс). - Онлайн-запасной вариант только для строк без локальных сырых данных:
GET /rest/thread/<uuid>со случайным интервалом 10–20 секунд; строки в терминальном состоянииexpiredпропускаются и записываются; обсуждения, обнаруженные онлайн как истёкшие/удалённые, помечаются вbatch_state.json, чтобы избежать будущих запросов. - Идемпотентно и возобновляемо: строки, уже имеющие
search_mode, пропускаются, прогресс сохраняется каждые 25 строк, а последующие обновленияindexсохраняют обогащение (сливаются обратно с помощьюentryUUID).
pplx-export search-mode-backfill --account alice --offline
e. sync-deleted¶
Определяет обсуждения, исчезнувшие из удалённой библиотеки (удалённые пользователем или платформой), и помечает их как удалённые — он никогда не удаляет и не перемещает файлы архива.
| Флаг | Значение | По умолчанию |
|---|---|---|
--online |
Проверить каждого кандидата онлайн | выкл (офлайн-пробный запуск: только список кандидатов) |
--limit N |
Обработать только первых N кандидатов | все |
--delay-min SEC |
Нижняя граница случайного интервала между кандидатами | 10 |
--delay-max SEC |
Верхняя граница случайного интервала между кандидатами | 20 |
Ключевые особенности:
- Обнаружение кандидатов происходит офлайн и межучётно: обсуждение со статусом
batch_stateok, отсутствующее в объединенииentryUUIDвсех файловindex/library_*.json, становится кандидатом — любой отдельный индекс, содержащий его, считается признаком жизни, поэтому обсуждения, экспортированные межучётно через общие пространства, не дают ложных срабатываний. Когда нет пригодного индекса, всё безопасно пропускается с подсказкой сначала запуститьindex. - По умолчанию — офлайн-пробный запуск: выводит список кандидатов и причины безопасного пропуска — ноль сети, ноль записей.
--onlineпроверяет каждого кандидата с помощьюGET /rest/thread/<uuid>под учётной записью, записанной вthread.jsonexport_via(cookies переключаются автоматически для каждого кандидата).- Подтверждено
ENTRY_DELETED/ENTRY_EXPIRED/ HTTP 404 →batch_stateпомечает терминальное состояниеdeleted(та же семантика, что иexpired: никогда не повторяется,--forceне реэкспортирует; см. incremental-sync.md), и каждый файлthread.jsonобсуждения получает временную меткуremote_deletedна месте (идемпотентно — существующий ключ сохраняется). - Обсуждение всё ещё существует → ложное срабатывание: сообщается как есть с подсказкой повторно запустить
index, ничего не изменено. Ошибки транспорта откладываются до следующего раунда; 3 последовательных сбоя аутентификации прерывают запуск до того, как что-либо будет неправильно помечено.
pplx-export sync-deleted
pplx-export sync-deleted --online --limit 20
Первый запуск выводит список кандидатов (офлайн-пробный запуск); второй проверяет их онлайн и помечает подтверждённые как удалённые.
f. status¶
Выводит состояние архива учётной записи и план инкрементальных изменений — ноль сети, только чтение. Он отвечает на вопрос "как сейчас выглядит архив и что сделает следующий запуск batch" без обращения к сети.
| Флаг | Значение | По умолчанию |
|---|---|---|
--account X |
Отчёт только по одной учётной записи | все учётные записи, имеющие файл index/library_*.json |
--json |
Полный машиночитаемый отчёт в stdout (игнорирует уровень подробности) | выкл (человеческие строки журнала) |
Ключевые особенности:
- Источники данных исключительно локальные:
index/library_*.json(строки индекса по учётным записям) иindex/batch_state.json(единственный источник состояний экспорта). Классификация изменений повторно использует ту же чистую функциюplan_incremental, что иbatch/schedule, поэтому семантикаnew/updated/done/expired/deletedидентична тому, что вычислил быbatch. - Вывод INFO по умолчанию печатает одну сводную строку на учётную запись (количество индексов + свежесть, подсчёты состояний
ok/expired/deleted/error, подсчёты измененийnew/updatedи число ранней остановки) плюс глобальную строку учётной записиbatch_state(например,559 ok + 13 expired + 12 deleted). - Уровни детализации следуют стандартному флагу подробности:
-vдобавляет заголовки обсужденийnew/updated/error(первая строка, обрезанная до 60 символов);-vvдобавляет обсужденияdone/expired/deletedсlastUpdated/exported_at;-vvvпечатает всё без обрезания с полями индексаmode/search_modeи список только состояний (записи, присутствующие вbatch_state, но отсутствующие в индексе каждой учётной записи — кандидаты на удалённое удаление для сверки с sync-deleted). - Защитные меры: отсутствие
index/или файла библиотеки завершается ошибкой с указанием наpplx-export index; отсутствиеbatch_state.jsonтрактуется как пустое состояние (всё считаетсяnew). Конфигурация на уровне пользователя не требуется — учётные записи перечисляются из имён файлов библиотеки. --jsonвыводит полный отчёт (учётные записи, изменения, обсуждения, только состояния, итоги) в виде однострочного JSON в stdout — тот же стиль контракта, что иpplx-ask.
pplx-export status # summary for every account
pplx-export status -vv # five-state thread details
pplx-export status --account alice --json
g. relations¶
Перестраивает граф связей обсуждений из экспортированных обсуждений → relations/edges.jsonl плюс человекочитаемый relations/graph.md в корне архива.
| Флаг | Значение | По умолчанию |
|---|---|---|
(только общие параметры; важен только --out) |
Ключевые особенности:
- Полностью офлайн, ноль сети, только чтение архива: повторно использует офлайн-конвейер перестроения re-render (
raw_entries.json/raw_blocks.json), поэтому сигналыsub_agents,query_sourceи цитирования доступны для обнаружения связей. - Обсуждения без сырых данных сводятся к оболочке
thread.json+conversation.md— для них могут срабатывать только ссылкиsame_spaceи ссылки на голый uuid.
pplx-export relations
h. debug-js¶
Выполняет фрагмент JavaScript в контексте текущей страницы браузера через локальный демон WebBridge (127.0.0.1:10086) и выводит результат в виде JSON — отладочный запасной выход.
| Флаг | Значение | По умолчанию |
|---|---|---|
JS代码 (позиционный) |
Код JavaScript для выполнения в контексте страницы (буквальный метапеременная argparse) | обязательно |
Ключевые особенности:
- Требует, чтобы демон WebBridge был доступен и целевая страница Perplexity была открыта в браузере; фрагмент выполняется с собственной сессией страницы.
- Выводимый JSON обрезается до 5000 символов.
pplx-export debug-js 'document.title'