Skip to content

Quickstart Guide

Get started with ASHA in 5 minutes (v0.4.2 developer preview)


Install

pip install asha

Or from source:

pip install -e .
python examples/developer_preview_demo.py

Process a prompt

from asha import process

result = process("Hey bro analyze my dataset with john@email.com")
print(result)  # ProcessResult - str() returns optimized output

With typed fields:

result = process("Contact john@example.com for data analysis", mode="balanced")
print(result.output)
print(result.metrics)
print(result.security)

Privacy and security

PII is detected and masked automatically (emails, phones, SSNs, API keys, etc.):

prompt = "Contact John at john@company.com or 555-123-4567"
result = process(prompt, mode="strict")
print(result.output)
# Sensitive values replaced with [EMAIL_HASH]_..., [PHONE_HASH]_..., etc.

For regulated workloads, use fail-closed mode:

process(prompt, mode="strict")

Wrap an LLM client

from asha.integrations import wrap_llm
import openai

client = openai.OpenAI()
secure = wrap_llm(client, mode="balanced")

response = secure.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Analyze data with john@email.com"}],
)

Use mode="off" for passthrough without preprocessing.


Policy modes

Mode Behavior
balanced Default - security + optimization
strict Fail-closed on total failure
lite Minimal policy features
off Passthrough - no modification
process(prompt, mode="lite")
process(prompt, mode="off")

Advanced policy via PolicyConfig:

from asha.core.policy_config import PolicyConfig

process(prompt, policy=PolicyConfig(pii_mode="hybrid", reversible=True))

Debugging

result = process(
    "Analyze data with john@example.com",
    trace=True,
    debug=True,
)
print(result.trace)
print(result.diff)

Async

import asyncio
from asha.utils.dropin import process_async

async def main():
    result = await process_async("prompt", mode="balanced")
    print(result)

asyncio.run(main())

Agent

from asha import Agent

agent = Agent(model="mock")
response = agent.run("Summarize this dataset")
print(response)

Canonical imports

from asha import process, sanitize, optimize, Agent
from asha.runtime import PromptProcessor
from asha.integrations import wrap_llm, auto_patch
from asha.types import ProcessResult
from asha.core.policy_config import PolicyConfig

See api-reference.md and deprecations.md.