Перейти к содержанию

Машинный перевод

Эта страница была автоматически переведена ИИ и может содержать ошибки. Если что-то неясно, обращайтесь к английскому источнику.

Английский источник · Сообщить о проблеме перевода

Команды обслуживания

Подкоманды обслуживания 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). Код 404 ASSET_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_state ok, отсутствующее в объединении entryUUID всех файлов index/library_*.json, становится кандидатом — любой отдельный индекс, содержащий его, считается признаком жизни, поэтому обсуждения, экспортированные межучётно через общие пространства, не дают ложных срабатываний. Когда нет пригодного индекса, всё безопасно пропускается с подсказкой сначала запустить index.
  • По умолчанию — офлайн-пробный запуск: выводит список кандидатов и причины безопасного пропуска — ноль сети, ноль записей.
  • --online проверяет каждого кандидата с помощью GET /rest/thread/<uuid> под учётной записью, записанной в thread.json export_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'