- extract_knowledge.py: LLM processes sampled pages from all conversations - Extracts structured JSON: topics, decisions, insights, open questions - Stores as queryable Parquet tables (knowledge_topics, knowledge_decisions, knowledge_insights, knowledge_questions) - Each finding traces to source conversation + page number - Fixed Unicode chunker crash (byte boundary on multi-byte chars) - Tested on 8 real ChatGPT PDFs, 477 pages: 496 topics, 300 decisions, 100 insights, 200 open questions extracted Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
51 lines
1.2 KiB
JSON
51 lines
1.2 KiB
JSON
{
|
|
"id": "799c825c-950e-480e-a38e-4407377e43e3",
|
|
"name": "knowledge_topics",
|
|
"schema_fingerprint": "356c37c8fef56ce7f7882c80f1301cc2f70bcbf874719cb0628b42179874494c",
|
|
"objects": [
|
|
{
|
|
"bucket": "data",
|
|
"key": "datasets/knowledge_topics.parquet",
|
|
"size_bytes": 14252,
|
|
"created_at": "2026-03-28T04:06:05.358571822Z"
|
|
}
|
|
],
|
|
"created_at": "2026-03-28T04:06:05.358572461Z",
|
|
"updated_at": "2026-03-28T04:06:05.358833280Z",
|
|
"description": "",
|
|
"owner": "",
|
|
"sensitivity": null,
|
|
"columns": [
|
|
{
|
|
"name": "conversation",
|
|
"data_type": "Utf8",
|
|
"sensitivity": null,
|
|
"description": "",
|
|
"is_pii": false
|
|
},
|
|
{
|
|
"name": "page",
|
|
"data_type": "Int64",
|
|
"sensitivity": null,
|
|
"description": "",
|
|
"is_pii": false
|
|
},
|
|
{
|
|
"name": "topic",
|
|
"data_type": "Utf8",
|
|
"sensitivity": null,
|
|
"description": "",
|
|
"is_pii": false
|
|
}
|
|
],
|
|
"lineage": {
|
|
"source_system": "csv",
|
|
"source_file": "knowledge_topics.csv",
|
|
"ingest_job": "ingest-1774670765358",
|
|
"ingest_timestamp": "2026-03-28T04:06:05.358571822Z",
|
|
"parent_datasets": []
|
|
},
|
|
"freshness": null,
|
|
"tags": [],
|
|
"row_count": 496
|
|
} |