nemo_microservices.types.intake.entry_context#

Module Contents#

Classes#

API#

class nemo_microservices.types.intake.entry_context.EntryContext(/, **data: typing.Any)#

Bases: nemo_microservices._models.BaseModel

app: str#

None

Reference to the app that produced this entry, in the form namespace/name.

If the app doesn’t exist, it will be automatically created when the entry is ingested.

created_at: Optional[datetime.datetime]#

None

UTC timestamp when the entry was created.

session_id: Optional[str]#

None

Long-lived session identifier (e.g., user account or browser session).

Stored for post-processing analytics; not used by the Intake service at runtime.

task: str#

None

Name of the task within the app (e.g., ‘chat’, ‘completion’, ‘tool-call’).

If the task doesn’t exist, it will be automatically created when the entry is ingested.

thread_id: Optional[str]#

None

Logical thread identifier that groups related entries in a multi-turn conversation. If provided, entries with the same thread_id are treated as part of the same conversation. If omitted, the entry is treated as a single-turn interaction (e.g., a standalone tool call or completion).

trace_id: Optional[str]#

None

Distributed trace identifier (e.g., W3C traceparent).

Intake stores it verbatim and does not use it at ingestion time; helps with later cross-system joins.

user_id: Optional[str]#

None

Identifier of the application’s end-user who triggered this LLM interaction.

This represents the person using your application (e.g., ‘customer_123’, ‘employee@company.com’), NOT the service account that created the entry record (see ownership.created_by for that). Use this to track which of your users a conversation belongs to, filter entries by user, and enable per-user analytics. Format is application-defined.