Total Cost
Total Calls
Total Tokens
Live Updates
Cost per Day (last 7 days)
Cost by Model
Top Functions by Cost
| Function | Cost | Calls | Tokens | Avg ms |
|---|---|---|---|---|
| No data yet. Run some LLM calls with tokenspy.init(persist=True). | ||||
| Name | Duration | Tags | User | Status | Time |
|---|---|---|---|---|---|
| No traces yet. Use tokenspy.trace() to create traces. | |||||
Scores
Spans
No spans recorded.
Experiments
| Name | Items | Pass rate |
|---|---|---|
| No experiments yet. Use tokenspy.experiment(). | ||
Datasets
| Name | Items |
|---|---|
| No datasets yet. Use tokenspy.dataset(). | |
Prompt Versions
| Name | Version | Preview | Status |
|---|---|---|---|
| v | prod | ||
| No prompts yet. Use tokenspy.prompts.push(). | |||
Configuration
Dashboard version
tokenspy v0.2.0
WebSocket
Quick Start
import tokenspy
# Enable persistence (required for dashboard)
tokenspy.init(persist=True)
# Structured tracing
with tokenspy.trace("pipeline") as t:
with tokenspy.span("retrieve") as s:
docs = fetch(query)
s.update(output=docs)
t.score("relevance", 0.92)
# Evaluations
ds = tokenspy.dataset("golden")
ds.add(input={"q": "2+2?"}, expected_output="4")
# Prompt versioning
p = tokenspy.prompts.push("my-prompt", "Answer: {{q}}")
compiled = p.compile(q="What is 2+2?")