prompttrail.agent.session_transformers package

Module contents

class prompttrail.agent.session_transformers.CodeBlock(lang: str, code: str)

Bases: object

A code block extracted from markdown.

__init__(lang: str, code: str) None
code: str
lang: str
class prompttrail.agent.session_transformers.DangerouslyEvaluatePythonCode(key: str, code: str)

Bases: MetadataTransformer

A hook that evaluates Python code blocks.

__init__(key: str, code: str)

Initialize the hook.

Parameters:
  • key – Key to store evaluation result in metadata

  • code – Key of code block to evaluate from metadata

process_metadata(metadata: Metadata, session: Session) Metadata

Evaluate Python code from metadata and store result.

Parameters:
  • metadata – Current metadata

  • session – Current conversation session

Returns:

Updated session with evaluation result stored in metadata[key]

Raises:

KeyError – If code_key is not found in metadata

class prompttrail.agent.session_transformers.Debugger(message_shown_when_called: str)

Bases: MetadataTransformer

Hook that prints debug information.

__init__(message_shown_when_called: str)

Initialize logging for the class.

process_metadata(metadata: Metadata, session: Session) Metadata

Print debug info about session.

Parameters:
  • metadata – Current metadata

  • session – Current conversation session

Returns:

Unmodified session

class prompttrail.agent.session_transformers.ExtractMarkdownCodeBlock(key: str, lang: str, raise_error_on_empty: bool = False)

Bases: MetadataTransformer

A hook that extracts code blocks from markdown content.

__init__(key: str, lang: str, raise_error_on_empty: bool = False)

Initialize the hook.

Parameters:
  • key – Key to store the extracted code block in metadata

  • lang – Programming language of the code block to extract

process_metadata(metadata: Metadata, session: Session) Metadata

Extract code block from last message content.

Parameters:
  • metadata – Current metadata

  • session – Current conversation session

Returns:

Updated session with extracted code stored in metadata[key]

class prompttrail.agent.session_transformers.LambdaSessionTransformer(transform_fn)

Bases: SessionTransformer

Hook that transforms the session using a lambda function.

__init__(transform_fn)

Initialize logging for the class.

process(session: Session) Session

Execute the hook functionality on the session.

Parameters:

session – Current conversation session

Returns:

Modified session

class prompttrail.agent.session_transformers.MetadataTransformer

Bases: SessionTransformer

Hook that transforms the session.

__init__()

Initialize logging for the class.

final process(session: Session) Session

Execute the hook functionality on the session.

Parameters:

session – Current conversation session

Returns:

Modified session

abstract process_metadata(metadata: Metadata, session: Session) Metadata

Transform session using provided function.

Parameters:
  • metadata – Current metadata

  • session – Current conversation session

Returns:

Modified metadata

class prompttrail.agent.session_transformers.ResetMetadata(keys: str | List[str] | None = None)

Bases: MetadataTransformer

Hook that resets metadata in session.

__init__(keys: str | List[str] | None = None)

Initialize logging for the class.

process_metadata(metadata: Metadata, session: Session) Metadata

Reset specified or all metadata keys.

Parameters:
  • metadata – Current metadata

  • session – Current conversation session

Returns:

Session with reset metadata

class prompttrail.agent.session_transformers.SessionTransformer

Bases: Debuggable

Base class for hooks in the agent template.

__init__()

Initialize logging for the class.

abstract process(session: Session) Session

Execute the hook functionality on the session.

Parameters:

session – Current conversation session

Returns:

Modified session

class prompttrail.agent.session_transformers.UpdateMetadata(key: str, value: Any)

Bases: MetadataTransformer

Hook that updates a metadata value.

__init__(key: str, value: Any)

Initialize logging for the class.

process_metadata(metadata: Metadata, session: Session) Metadata

Update specified metadata key with new value.

Parameters:
  • metadata – Current metadata

  • session – Current conversation session

Returns:

Session with updated metadata