Skip to main content

Dakora Python SDK

Centralized prompt management with versioning, execution tracking, and analytics for production LLM applications.

Installation

pip install dakora

Quick Start

from dakora import Dakora

dakora = Dakora(api_key="dk_proj_...")

# Render versioned prompts
result = await dakora.prompts.render("greeting", {"name": "Alice"})
print(result.text)  # "Hello Alice! How can I help you today?"

# Use with agents (automatic tracking)
message = result.to_message()
response = await agent.run(message)

# Query execution history & analytics
executions = await dakora.executions.list(
    agent_id="support-bot"
)

All executions automatically tracked when using with dakora-agents.

Why Dakora?

  • Centralized Prompts - Version control, A/B testing, instant updates without code deploys
  • Automatic Tracking - Tokens, cost, latency tracked via OpenTelemetry
  • Template Linkage - Know exactly which prompts are used in production
  • Built-in Analytics - Query execution history by agent, session, template, cost

Template Management

# List prompts
prompts = await dakora.prompts.list(project_id="proj-123")

# Render with inputs
result = await dakora.prompts.render(
    prompt_id="support-response",
    inputs={"ticket": "...", "user": "Alice"}
)

# Version and metadata included
print(result.version)   # "2.1.0"
print(result.prompt_id) # "support-response"

# Convert to agent message (auto-tracking)
message = result.to_message()

Execution Analytics

# Filter by agent, session, template
executions = await dakora.executions.list(
    agent_id="support-bot",      # Specific agent
    session_id="session-789",    # User conversation
    prompt_id="greeting"         # Template used
)

# Calculate costs
total_cost = sum(e["cost_usd"] for e in executions)

# Get full details
execution = await dakora.executions.get(execution_id="trace-456")
print(execution["conversation_history"])
print(execution["templates_used"])

Agent Integration

Automatic execution tracking with Microsoft Agent Framework:

pip install dakora[maf]
from dakora_agents.maf import DakoraIntegration

middleware = DakoraIntegration.setup(dakora)
client = AzureOpenAIChatClient(..., middleware=[middleware])

# Every agent call automatically tracked:
# - Tokens (input/output)
# - Cost ($)
# - Latency (ms)
# - Template linkage
# - Conversation history

Advanced Usage

Pagination:

result = await dakora.executions.list(
    limit=50,
    offset=100,
    include_metadata=True
)

print(f"Showing {len(result['executions'])} of {result['total']}")

Singleton pattern:

# config.py
from dakora import Dakora
dakora = Dakora()  # Uses DAKORA_API_KEY env var

# anywhere.py
from myapp.config import dakora
result = await dakora.prompts.render("greeting", {"name": "Alice"})

Environment variables:

DAKORA_API_KEY=dk_proj_...
DAKORA_BASE_URL=http://localhost:8000  # Optional

FastAPI example:

from fastapi import FastAPI
from dakora import Dakora

dakora = Dakora()
app = FastAPI()

@app.get("/greet/{name}")
async def greet(name: str):
    result = await dakora.prompts.render("greeting", {"name": name})
    return {"message": result.text}

Development

cd packages/client-python
pip install -e .

Release files for dakora 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dakora 0.2.0
File Size Uploaded
dakora-0.2.0.tar.gz 17.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dakora 0.2.0
File Interpreter ABI Platform
dakora-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.6 kB

Release files / dakora-0.2.0.tar.gz

Download URL dakora-0.2.0.tar.gz
Size 17.5 kB
Tags Source
SHA-256 checksum
How to use checksums
854dde38ed0e9ab84f2718a1ccc67befc66eb6a22b19438e218bfe94e443c5b4
BLAKE2b-256 checksum
How to use checksums
491ff0e243b49e37b6b22b3f8faed4ee8b6adb643e1ac112c9506602a228f06f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.4

Release files / dakora-0.2.0-py3-none-any.whl

Download URL dakora-0.2.0-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f9481090d092858cd3ff6872a3a16c383f7a2781d1b0654d6265b7f886c5d96
BLAKE2b-256 checksum
How to use checksums
ffb123c7d3211fb4b9e1ef06695f59ea093dd30af1ddd0550f8a214c54da371d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.4

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page