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

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

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

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

pplx-export

pplx-export — это CLI-архиватор: он извлекает индексы бесед из Perplexity, экспортирует треды в локальный архив и поддерживает производные представления (индекс пространства, фрагмент cron). Эта страница охватывает подкоманды захвата — index, space-index, export, batch, spaces, sync-space, schedule — а также одноразовую команду настройки init. Подкоманды обратного заполнения/восстановления находятся в maintenance-commands.md; CLI запросов описан в pplx-ask.md.

a. Общие параметры

Каждая подкоманда принимает эти флаги (определены один раз в pplx_export/commands/common.py):

Флаг Значение По умолчанию
--account NAME Целевая учетная запись. Когда email из cookie не совпадает с зарегистрированным email, перечисляются токены сеанса браузера для каждой учетной записи для автоматического переключения default_account из конфигурации пользователя
--config PATH Файл конфигурации пользователя (реестр учетных записей). Приоритет: --config > env PPLX_EXPORT_CONFIG > ~/.config/pplx-export/config.toml цепочка поиска по умолчанию
--skip-auth-check Пропустить начальный зонд сеанса атрибуции учетной записи и доверять текущему входу, избегая длительного ожидания запуска при плохой сети; batch выполняет отложенную проверку учетной записи, если накапливаются ошибки — см. Configuration выкл
--site NAME Адаптер сайта perplexity
--out DIR Корень вывода архива --out > config archive_root > ./web_archive
--cookies-from BROWSER Импортировать куки из браузера (edge/chrome/firefox/safari/brave…)
--cookies FILE Файл куки в формате Netscape или JSON
--transport MODE cookie = запросы напрямую через куки; webbridge = выборка в контексте страницы браузера cookie
-v, --verbose Вывод DEBUG (трассировка запросов, внутренние решения); повторяемый выкл
--log-file [PATH] Записать полный журнал на диск; без значения автоматический путь <out>/index/logs/<cmd>-<timestamp>.log выкл
  • --cookies-from / --cookies взаимно исключают --transport webbridge — мост работает в контексте страницы и уже несет куки браузера.
  • pplx-export --version выводит версию пакета и завершает работу (только верхний уровень, не флаг подкоманды).
  • Регистрация учетной записи, источники куки и переключение между несколькими учетными записями: configuration.md. Где все сохраняется на диске: archive-layout.md.

b. init

Обнаружить учетные записи из куки браузера и записать конфигурацию пользователя — автоматическая альтернатива ручному копированию config.example.toml (см. configuration.md).

Флаг Значение По умолчанию
--force Перезаписать существующий файл конфигурации выкл (отказывается перезаписывать)
--create-bot-space [TITLE] Создать пространство BOT через API, когда ни одно название пространства не совпадает (операция записи в учетную запись); явный TITLE управляет как сопоставлением, так и созданием, иначе название берется из --bot-title; без этого флага [bot_space] записывается пустым выкл
--bot-title TITLE Название пространства, используемое как для сопоставления существующего пространства, так и для именования созданного BOT
(применяются общие параметры) Флаги источника куки определяют, где обнаруживаются учетные записи; только для init, --config — это путь записи (строгая загрузка конфигурации пропускается)

Ключевые особенности:

  • Перечисление токенов: куки сеанса для каждой учетной записи (__Secure-pplx.session.<uid>) собираются из хранилищ браузера — или, с --cookies FILE, сканируются из файла куки (полный экспорт может содержать несколько учетных записей). Если нет перечисляемых токенов, проверяется только текущий активный сеанс.
  • Зонд сеанса: каждый токен проверяется на GET /api/auth/session, чтобы узнать email / отображаемое имя учетной записи; токены, которые не проходят проверку или не возвращают email, пропускаются с предупреждением.
  • Сборка реестра: ключ каждой учетной записи формируется из локальной части email (коллизии получают суффиксы -2/-3…); default_account устанавливается на текущую активную учетную запись, иначе на первую обнаруженную.
  • Пространство BOT: пространство сопоставляется по точному названию (без учета регистра) через list_user_collections; если ничего не совпадает, --create-bot-space [TITLE] создает его на месте (явный TITLE переопределяет --bot-title как для сопоставления, так и для создания), иначе [bot_space] остается пустым.
  • TOML записывается атомарно (временный файл + переименование) с правами 0600, и существующий файл никогда не перезаписывается без --force. Команда завершается строкой JSON сводки: путь к конфигурации, ключи учетных записей, учетная запись по умолчанию, uuid/slug пространства BOT.
  • Заполнение моделей (по возможности): после записи конфигурации init получает models/config/v2 и заполняет управляемую машиной таблицу [models], чтобы свежая конфигурация уже содержала текущие модели по умолчанию/каталог; при сбое пропускается с предупреждением (обновить позже с pplx-ask models --refresh). См. Configuration.
  • --transport webbridge отклоняется — канал контекста страницы не может перечислять токены для каждой учетной записи.
pplx-export init                          # write the default ~/.config/pplx-export/config.toml
pplx-export init --create-bot-space [TITLE]  # create the BOT space when no title matches (custom title optional)
pplx-export init --config /path/to/config.toml --force   # custom path, overwrite allowed

c. index

Обновить индекс списка бесед учетной записи index/library_<account>.json — базовый уровень, с которым сравнивается каждая другая команда.

Флаг Значение По умолчанию
--full Пролистать всю библиотеку и перезаписать индекс; сбрасывает инкрементальный счетчик инкрементально

Ключевые особенности:

  • Инкрементально по умолчанию. Пролистывает сначала новые и останавливается, когда полная страница (_STOP_RUN) последовательных строк уже известна и не изменена, затем объединяет полученную голову с существующим индексом — старые строки переносятся дословно (без потерь). Первый запуск или любой запуск без существующего индекса — полный проход.
  • --full пролистывает все и перезаписывает индекс; используйте его как периодический интерфейс сверки.
  • Слепое пятно инкрементального пути: удаленные удаления и изменения пространства старых тредов никогда не появляются в полученной голове, поэтому они не наблюдаются. Авторитет удаления остается за sync-deleted --online. Документ индекса отслеживает incremental_runs_since_full; после достаточного количества инкрементальных запусков он предупреждает вас о необходимости запустить --fullsync-deleted --online).
  • Сохраняет обогащение search_mode, записанное search-mode-backfill, объединенное обратно entryUUID.
  • Запустите его перед batch, sync-space и sync-deleted — их различия актуальны настолько, насколько свеж этот индекс.
pplx-export index --account alice          # incremental refresh
pplx-export index --account alice --full   # full sweep + reconciliation front-end

d. sync

Высокочастотная удобная точка входа: инкрементальный index + инкрементальный batch, ориентированный только на беседы.

Флаг Значение По умолчанию
--full Полная сверка: полный проход index + полный batch (и выполняет шаги удаления/пространства ниже) выкл
--check-deleted Также запустить sync-deleted --online для проверки и пометки удаленных на сервере тредов выкл
--refresh-spaces Также перестроить spaces --fetch-meta и запустить sync-space выкл
--limit N / --mode X / --delay-min / --delay-max Передаются в фазу batch

Ключевые особенности:

  • Запуск по умолчанию получает только новые/обновленные беседы и пропускает обнаружение удалений и обновление пространства — самая дешевая форма для частой синхронизации.
  • Сверка удалений/пространства включается по желанию (--check-deleted / --refresh-spaces) или объединяется --full. Счетчик index (incremental_runs_since_full) является предохранителем: он напоминает вам, когда сверка --full просрочена.
pplx-export sync --account alice                     # conversations only (fast)
pplx-export sync --account alice --full              # periodic full reconciliation
pplx-export sync --account alice --check-deleted     # also mark remote deletions

e. space-index

Извлечь список бесед "Все" одного пространства — включая треды, опубликованные другими участниками — в index/space_<slug>.json.

Флаг Значение По умолчанию
SPACE_URL (позиционный) URL страницы пространства обязательно
--transport webbridge Использовать устаревший путь рендеринга браузера вместо REST cookie (REST напрямую)

Ключевые особенности:

  • Путь по умолчанию — REST напрямую: list_collection_threads через транспорт куки с постраничной навигацией по смещению; строки включают context_uuid и answer_preview.
  • С --transport webbridge он возвращается к прокрутке отрисованной страницы пространства и извлечению свойств строк — резервный вариант на случай изменения структуры REST.
  • Строки записываются сначала новые по lastUpdated.
pplx-export space-index "https://www.perplexity.ai/spaces/<space-slug>" --account alice

f. export

Экспортировать один тред (URL или голый UUID) в его каталог архива <out>/<account-folder>/<mode>/<thread-dir>/.

Флаг Значение По умолчанию
THREAD (позиционный) URL треда или UUID обязательно
--force Повторный экспорт, даже если lastUpdated не изменился выкл

Ключевые особенности:

  • Если архивная копия уже актуальна, экспорт пропускается без записи; --force переопределяет проверку.
  • lastUpdated берется из локального индекса библиотеки, если тред там указан (те же семантика и формат, что и batch), иначе используется значение платформы.
  • Конечные состояния регистрируются корректно, без traceback: ENTRY_DELETED помечает deleted в batch_state.json, ENTRY_EXPIRED помечает expired — существующий локальный архив в любом случае остается нетронутым.
  • Успешный экспорт записывает ok в index/batch_state.json, поэтому инкрементальный план считает тред "экспортированным и неизменным".
  • Что попадает в каталог треда: archive-layout.md; конвейер экспорта: ../architecture/export-pipeline.md.
pplx-export export "https://www.perplexity.ai/search/<thread-uuid>" --account alice

g. batch

Массовый экспорт тредов учетной записи — ежедневный драйвер, с инкрементальной ранней остановкой и возобновляемыми контрольными точками.

Флаг Значение По умолчанию
--force Повторный экспорт всех тредов (исключая конечные состояния) выкл
--full Полное сканирование: неизмененные треды все равно пропускаются, но без ранней остановки выкл
--limit N Обработать только первые N строк списка (сначала новые) все
--mode MODE Экспортировать только треды search / deep-research / computer / council / study все режимы
--delay-min SEC Нижняя граница случайного интервала между тредами 10
--delay-max SEC Верхняя граница случайного интервала между тредами 20

Ключевые особенности:

  • Требует index/library_<account>.json — сначала запустите index.
  • Инкрементальная ранняя остановка по умолчанию: список сортируется сначала новые, и хвостовой прогон "экспортированных и неизменных" тредов обрезается целиком; пробелы, оставленные прерванными запусками (ошибка/никогда не экспортирован), находятся выше этого суффикса и все равно исправляются. --full отключает раннюю остановку (периодический предохранитель или при подозрении на пробелы в архиве); --force повторно экспортирует все, кроме конечных состояний, которые никогда не повторяются. Полная семантика: incremental-sync.md.
  • Фильтрация --mode: строки, несущие search_mode (авторитетное поле платформы, обогащенное search-mode-backfill), сопоставляются точно через SEARCH_MODE_MAP — на этом пути --mode search больше не подтягивает треды deep-research/council/study. Строки без search_mode возвращаются к эвристикам индекса: computer = режим COMPUTER; deep-research = displayModel pplx_alpha; council = pplx_agentic_research; study = pplx_study; search = оставшиеся строки режима-SEARCH (включая эти три вида — отфильтруйте их точно, экспортируя конкретные режимы отдельно).
  • Состояние сохраняется в index/batch_state.json после каждого треда — прерывайте и запускайте заново свободно.
  • Быстрый отказ при аутентификации: 3 последовательных ответа 401/403 прерывают запуск (просроченный куки не может самовосстановиться, и продолжение приведет к сбою сотен тредов один за другим).
  • Темп: случайная пауза --delay-min--delay-max между тредами; 429/5xx обрабатываются транспортным уровнем с откатом. Подробности: rate-limiting.md.
  • Треды, попадающие на варианты переписанных ответов, регистрируются в index/answer_variants_log.jsonl с предупреждением о необходимости обработать их вручную как можно скорее (см. ../reference/api/api-responses-errors.md).
pplx-export batch --account bob --mode deep-research --limit 50

h. spaces

Перестроить индекс представления пространства — одну страницу Markdown на пространство плюс реестр spaces.json — из локальных индексов библиотеки.

Флаг Значение По умолчанию
--fetch-meta Обновить метаданные владельца/участника перед перестроением выкл

Ключевые особенности:

  • Без --fetch-meta команда является чисто локальной (ноль сети): она агрегирует треды по слагу пространства во всех файлах library_*.json, со статистикой участвующих учетных записей и обратными ссылками на каталоги экспортированных тредов.
  • Вывод идет в ./spaces/ относительно текущего рабочего каталога — запускайте его из каталога, содержащего web_archive/, чтобы обратные ссылки на страницах пространства разрешались.
  • --fetch-meta сначала обновляет кеш владельца/участника каждого пространства через get_collection (1 запрос на пространство, интервал 3 с) в index/space_meta.json; когда текущая учетная запись не видит пространство, автоматически повторяется попытка с учетной записью, которая может (куки переключаются сами).
pplx-export spaces --fetch-meta --account alice

i. sync-space

Синхронизировать поле space уже заархивированных файлов thread.json с текущим индексом — чисто локально, ноль сети.

Флаг Значение По умолчанию
(только общие параметры; важен только --out)

Ключевые особенности:

  • Предварительное условие: сначала запустите index — обновленный library_*.json является источником истины для текущего владения пространством.
  • Сравнивает слоги пространств для каждого треда и исправляет thread.json на месте при расхождении; первые 30 изменений регистрируются.
  • После любого изменения индекс spaces/ перестраивается автоматически.
pplx-export index --account alice && pplx-export sync-space

j. schedule

Вычислить инкрементальный план экспорта на этот раунд и записать фрагмент cron, который системный cron может вызывать напрямую.

Флаг Значение По умолчанию
(только общие параметры)

Ключевые особенности:

  • Получает живой индекс и сообщает план в виде количества всего/нового/обновленного, используя ту же чистую функцию ранней остановки (plan_incremental), что и batch — см. incremental-sync.md.
  • Записывает <out>/index/cron_snippet.txt, содержащий одну строку 17 3 * * * вида cd '<archive-parent>' && '<abs-path-to-pplx-export>' batch --account '<account>' --out '<abs-archive-root>' — пути абсолютные и в кавычках, потому что cwd и PATH cron непредсказуемы. Путь к исполняемому файлу разрешается через shutil.which; при сбое фрагмент возвращается к голому имени pplx-export.
  • Плановые запуски по замыслу только инкрементальные; запускайте batch --full вручную в качестве периодического предохранителя.
pplx-export schedule --account alice