Skip to main content

Prerequisites

  • pip install trajectory-sdk
  • A LangSmith API key (starts with lsv2_pt_...)
  • A LangSmith project ID with existing traces

Walkthrough

import trajectory_sdk as tj

# 1. Initialize
tj.init(
    provider="langsmith",
    api_key="lsv2_pt_...",
    project_id="your-project-id",
)

# 2. List conversations
conversations = tj.list_conversations(limit=50)

# 3. Import as Trajectories
trajectories = tj.import_conversations(conversations)

# 4. Save to disk
tj.save(trajectories, "./exports")
Each conversation becomes one JSON file in ./exports/, named by conversation ID.

Import by ID

If you already know which conversations you want:
trajectories = tj.import_conversations([
    "cc_abc123",
    "cc_def456",
])

LangSmith Notes

  • Conversations are identified by conversation_id or session_id in run metadata. Runs without either are treated as standalone conversations.
  • Roles are normalized: humanuser, aiassistant.
  • API responses are cached in-memory for 5 minutes to reduce load on repeated imports.