Skip to content

prompt

dandy.llm.prompt.prompt

Prompt dataclass

input = (None,) class-attribute instance-attribute

tag = (None,) class-attribute instance-attribute

estimated_token_count property

__post_init__

Source code in dandy/llm/prompt/prompt.py
def __post_init__(
        self,
):
    self.snippets: list[snippet.BaseSnippet] = []

    if isinstance(self.input, Prompt):
        self.text(text=self.input.to_str())

    if isinstance(self.input, str):
        self.text(text=self.input)

__str__

Source code in dandy/llm/prompt/prompt.py
def __str__(self) -> str:
    return self.to_str()

to_str

Source code in dandy/llm/prompt/prompt.py
def to_str(self) -> str:
    prompt_string = ''.join([snippet_.to_str() for snippet_ in self.snippets])

    if isinstance(self.tag, str):
        return f'<{self.tag}>\n{prompt_string}\n</{self.tag}>\n'

    return prompt_string

dict

Source code in dandy/llm/prompt/prompt.py
def dict(self, dictionary: dict, triple_backtick: bool = False) -> Self:
    self.snippets.append(
        snippet.DictionarySnippet(dictionary=dictionary, triple_backtick=triple_backtick)
    )

    return self

directory_list

Source code in dandy/llm/prompt/prompt.py
def directory_list(
        self,
        directory_path: str | Path,
        max_depth: int | None = None,
        file_extensions: Sequence[str] | None = None,
        triple_backtick: bool = False,
) -> Self:
    self.snippets.append(
        snippet.DirectoryListSnippet(
            directory_path=directory_path,
            triple_backtick=triple_backtick,
            max_depth=max_depth,
            file_extensions=file_extensions,
        )
    )

    return self

divider

Source code in dandy/llm/prompt/prompt.py
def divider(self) -> Self:
    self.snippets.append(snippet.DividerSnippet())

    return self

array

Source code in dandy/llm/prompt/prompt.py
def array(self, items: list[str]) -> Self:
    self.snippets.append(snippet.ArraySnippet(items=items))

    return self

array_random_order

Source code in dandy/llm/prompt/prompt.py
def array_random_order(self, items: list[str]) -> Self:
    self.snippets.append(snippet.ArrayRandomOrderSnippet(items=items))

    return self

file

Source code in dandy/llm/prompt/prompt.py
def file(
        self, file_path: str | Path,
        encoding: str = 'utf-8',
        triple_backtick: bool = False,
        triple_backtick_label: str | None = None
) -> Self:
    self.snippets.append(
        snippet.FileSnippet(
            file_path=file_path,
            encoding=encoding,
            triple_backtick=triple_backtick,
            triple_backtick_label=triple_backtick_label
        )
    )

    return self

heading

Source code in dandy/llm/prompt/prompt.py
def heading(
        self,
        heading: str,
) -> Self:
    self.snippets.append(
        snippet.HeadingSnippet(
            heading=heading,
        )
    )

    return self

lb

Source code in dandy/llm/prompt/prompt.py
def lb(self) -> Self:
    return self.line_break()

line_break

Source code in dandy/llm/prompt/prompt.py
def line_break(self) -> Self:
    self.snippets.append(snippet.LineBreakSnippet())

    return self

list

Source code in dandy/llm/prompt/prompt.py
def list(self, items: list[str], triple_backtick: bool = False) -> Self:
    self.unordered_list(items=items, triple_backtick=triple_backtick)

    return self

intel

Source code in dandy/llm/prompt/prompt.py
def intel(self, intel: BaseIntel, triple_backtick: bool = False) -> Self:
    self.snippets.append(
        snippet.IntelSnippet(intel=intel, triple_backtick=triple_backtick)
    )

    return self

intel_schema

Source code in dandy/llm/prompt/prompt.py
def intel_schema(
        self, intel_class: type[BaseIntel], triple_backtick: bool = False
) -> Self:
    self.snippets.append(
        snippet.IntelSchemaSnippet(
            intel_class=intel_class, triple_backtick=triple_backtick
        )
    )

    return self

module_source

Source code in dandy/llm/prompt/prompt.py
def module_source(self, module_name: str, triple_backtick: bool = True) -> Self:
    self.snippets.append(
        snippet.ModuleSourceSnippet(
            module_name=module_name,
            triple_backtick=triple_backtick,
            triple_backtick_label=module_name,
        )
    )

    return self

object_source

Source code in dandy/llm/prompt/prompt.py
def object_source(self, object_module_name: str, triple_backtick: bool = True) -> Self:
    self.snippets.append(
        snippet.ObjectSourceSnippet(
            object_module_name=object_module_name,
            triple_backtick=triple_backtick,
            triple_backtick_label=object_module_name,
        )
    )

    return self

ordered_list

Source code in dandy/llm/prompt/prompt.py
def ordered_list(
        self, items: builtins.list[str], triple_backtick: bool = False
) -> Self:
    self.snippets.append(
        snippet.OrderedListSnippet(items=items, triple_backtick=triple_backtick)
    )

    return self

prompt

Source code in dandy/llm/prompt/prompt.py
def prompt(self, prompt: Self | str, triple_backtick: bool = False) -> Self:
    self.snippets.append(
        snippet.PromptSnippet(prompt=prompt, triple_backtick=triple_backtick)
    )

    return self

random_choice

Source code in dandy/llm/prompt/prompt.py
def random_choice(
        self, choices: builtins.list[str], triple_backtick: bool = False
) -> Self:
    self.snippets.append(
        snippet.RandomChoiceSnippet(
            choices=choices,
            triple_backtick=triple_backtick,
        )
    )

    return self

sub_heading

Source code in dandy/llm/prompt/prompt.py
def sub_heading(
        self,
        sub_heading: str,
) -> Self:
    self.snippets.append(
        snippet.SubHeadingSnippet(
            sub_heading=sub_heading,
        )
    )

    return self

text

Source code in dandy/llm/prompt/prompt.py
def text(
        self,
        text: str = '',
        label: str = '',
        triple_backtick: bool = False,
        triple_backtick_label: str | None = None,
) -> Self:
    self.snippets.append(
        snippet.TextSnippet(
            text=text,
            label=label,
            triple_backtick=triple_backtick,
            triple_backtick_label=triple_backtick_label,
        )
    )

    return self

title

Source code in dandy/llm/prompt/prompt.py
def title(
        self,
        title: str,
) -> Self:
    self.snippets.append(
        snippet.TitleSnippet(
            title=title,
        )
    )

    return self

unordered_list

Source code in dandy/llm/prompt/prompt.py
def unordered_list(
        self, items: builtins.list[str], triple_backtick: bool = False
) -> Self:
    self.snippets.append(
        snippet.UnorderedListSnippet(items=items, triple_backtick=triple_backtick)
    )

    return self

unordered_random_list

Source code in dandy/llm/prompt/prompt.py
def unordered_random_list(
        self, items: builtins.list[str], triple_backtick: bool = False
) -> Self:

    self.snippets.append(
        snippet.UnorderedRandomListSnippet(
            items=items,
            triple_backtick=triple_backtick
        )
    )

    return self