1001 B
1001 B
Package: dirigent_chatgpt
Pure-Rust parser for OpenAI's ChatGPT conversations.json data export.
Scope
parse_export(path)— reads aconversations.jsonfile on disk and returnsVec<ParsedConversation>.parse_str(json)— parses an in-memory JSON string (useful for tests and piped inputs).- Types:
ParsedConversation,ParsedMessage,ContentPart(Text,Code,Tool).
No dirigent-specific types. dirigent_archivist::import::sources::chatgpt
consumes this crate and maps into the archivist's internal types.
Example
let convs = dirigent_chatgpt::parse_export(path)?;
for c in convs {
println!("{}: {} messages", c.title.as_deref().unwrap_or("(untitled)"), c.messages.len());
}
Failure modes
- Truly broken JSON →
ParseError::Json. - Malformed individual messages are skipped where possible.
- Unknown content shapes are preserved as best-effort text in
ContentPart::Text { text: raw_json }so no user data is silently lost.