Skip to content

llm.prompt — Prompt Rendering

Auto-documented module: spanforge.namespaces.prompt

The llm.prompt.* namespace records prompt rendering events, template version changes, and template load operations (RFC-0001 §3).

Payload classes

ClassEvent typeDescription
PromptRenderedPayloadllm.prompt.renderedA prompt template was rendered
PromptTemplateLoadedPayloadllm.prompt.template.loadedA template was loaded into the registry
PromptVersionChangedPayloadllm.prompt.version.changedThe active template version changed

PromptRenderedPayload — key fields

FieldTypeRequiredDescription
template_idstrRegistry identifier of the template
versionstrSemantic version of the template used
rendered_hashstrSHA-256 of the rendered prompt text (64 lowercase hex chars)
variable_countint | NoneNumber of variables substituted
variable_nameslist[str]Names of substituted variables
char_countint | NoneCharacter count of the rendered prompt
token_estimateint | NoneEstimated token count
languagestr | NoneTemplate language hint (e.g. "jinja2")
span_idstr | NoneParent span identifier

Example

import hashlib
from spanforge import Event, EventType
from spanforge.namespaces.prompt import PromptRenderedPayload

rendered = "You are a helpful assistant. User: Hello!"
rendered_hash = hashlib.sha256(rendered.encode()).hexdigest()

payload = PromptRenderedPayload(
    template_id="support-reply-v3",
    version="3.1.0",
    rendered_hash=rendered_hash,
    variable_names=["customer_name", "product"],
    variable_count=2,
    char_count=len(rendered),
    token_estimate=12,
)

event = Event(
    event_type=EventType.PROMPT_RENDERED,
    source="my-app@1.0.0",
    org_id="org_01HX",
    payload=payload.to_dict(),
)