CinvanaAI
← All projects

Tool · Conversations & archives

ChatGPT Export Archive and Migration Toolkit

Keep exported conversations, identify duplicate copies and prepare bounded migration batches.

Repository: CinvanaAI/chatgpt-export-to-conversation-engine

Recorded synthetic example. Source with a complete offline example.

See the idea in action.

Two retained variants, one skipped duplicate, four tracked messages, a two-message prepared batch, and a blocked second batch.

Example input
Three invented export objects: an original, an exact duplicate, and a changed answer with the same conversation ID.
Captured result
Indexed conversations-2.json: objects=1 new_unique=1 exact_duplicates=0
Indexed conversations.json: objects=2 new_unique=1 exact_duplicates=1
{
  "source_objects": 3,
  "canonical_variants": 2,
  "exact_duplicates_skipped": 1,
  "tracked_messages": 4,
  "preview_status": "dry_run",
  "batch_status": "prepared",
  "batch_messages": 2,
  "speakers": [
    "Assistant",
    "User"
  ],
  "next_batch_status": "blocked_by_open_batch",
  "deposit_executed": false,
  "synthetic_variants": [
    {
      "id": "synthetic-conversation",
      "question": "A synthetic question?",
      "answer": "A synthetic answer."
    },
    {
      "id": "synthetic-conversation",
      "question": "A synthetic question?",
      "answer": "A different synthetic answer."
    }
  ],
  "prepared_message_bodies": [
    {
      "speaker": "User",
      "timestamp": "2023-11-14T22:13:21+00:00",
      "text": "A synthetic question?"
    },
    {
      "speaker": "Assistant",
      "timestamp": "2023-11-14T22:13:22+00:00",
      "text": "A synthetic answer."
    }
  ]
}

Try the example.

From the repository root, follow the dependency requirements in the README. This example uses supplied synthetic material.

python -m pip install -e .
python -m examples.walkthrough

Two retained variants, one skipped duplicate, four tracked messages, a two-message prepared batch, and a blocked second batch.

Complete setup and instructions ↗

The interesting part.

Same-ID variants are preserved as evidence instead of being silently overwritten or merged into one claimed truth.

Focused extraction

Where it came from.

Archive Mutation migration workflow for ChatGPT exports and Conversation Engine envelopes.

Keeps inspection, variants, deduplication and batch state; replaces machine paths and personal role labels.

It stands alone; optional deposit and reconciliation require the separate Conversation Engine.

Source ↗

Follow the family: Conversation source, migration and Discord archives

  • Optional integration withConversation Engine

    Continue from reviewed exports into the documented Conversation Engine deposit/reconciliation path. Interoperation is explicit; it is not code ancestry or a mandatory dependency for inspection/extraction.

    Source ↗