Tool · Models & evaluation / Conversations & archives
Conversation Target Tagger
Label who or what a message is about while keeping the conversation context that explains it.
Repository: CinvanaAI/conversation-target-tagger
Recorded synthetic example. Source with a complete offline example.
See the idea in action.
Three chronologically indexed messages with project:GardenWatch labels from the declared demo callback.
The supplied synthetic GardenWatch conversations.
[
{
"conversation_id": "conversation-mapping",
"conversation_title": "Workshop notes",
"conversation_create_time": 90,
"conversation_create_time_iso": "1970-01-01T00:01:30Z",
"node_id": "old-1",
"parent_id": null,
"children_ids": [],
"role": "user",
"sender": "User",
"create_time": 101,
"create_time_iso": "1970-01-01T00:01:41Z",
"content_type": "text",
"content_parts": [
"Put the soldering station in the workshop."
],
"content_text": "Put the soldering station in the workshop.",
"hidden": false,
"model_slug": null,
"status": null,
"end_turn": null,
"sequence_in_conversation": 1,
"conversation_index": 2,
"sort_timestamp": 101.0,
"gidx": 1,
"targets": [
"place:Workshop"
]
},
{
"conversation_id": "conversation-new",
"conversation_title": "Garden sensor",
"conversation_create_time": 100,
"conversation_create_time_iso": "1970-01-01T00:01:40Z",
"node_id": "new-1",
"parent_id": null,
"children_ids": [],
"role": "user",
"sender": "User",
"create_time": 102,
"create_time_iso": "1970-01-01T00:01:42Z",
"content_type": "text",
"content_parts": [
"Could the GardenWatch project record soil moisture?"
],
"content_text": "Could the GardenWatch project record soil moisture?",
"hidden": false,
"model_slug": null,
"status": null,
"end_turn": null,
"sequence_in_conversation": 1,
"conversation_index": 1,
"sort_timestamp": 102.0,
"gidx": 2,
"targets": [
"project:GardenWatch"
]
},
{
"conversation_id": "conversation-new",
"conversation_title": "Garden sensor",
"conversation_create_time": 100,
"conversation_create_time_iso": "1970-01-01T00:01:40Z",
"node_id": "new-2",
"parent_id": null,
"children_ids": [],
"role": "assistant",
"sender": "Assistant",
"create_time": 103,
"create_time_iso": "1970-01-01T00:01:43Z",
"content_type": "text",
"content_parts": [
"Yes, the sensor can publish a bounded reading."
],
"content_text": "Yes, the sensor can publish a bounded reading.",
"hidden": false,
"model_slug": null,
"status": null,
"end_turn": null,
"sequence_in_conversation": 2,
"conversation_index": 1,
"sort_timestamp": 103.0,
"gidx": 3,
"targets": [
"project:GardenWatch"
]
}
]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.offline_demo
Three chronologically indexed messages with project:GardenWatch labels from the declared demo callback.
Complete setup and instructions ↗The interesting part.
Strict one-result-per-message alignment while retaining non-mainline, hidden, and empty exported nodes.
Where it came from.
A September 2025 chronological-target tagging script beside a ChatGPT export experiment.
September 2025 — Historical chronological target script. Source ↗
Separates normalization, batching, validation, transport and CLI; adds bounded context, local defaults and safe output.
Shared subject matter with other conversation tools does not establish code ancestry or plug-in compatibility.