∞ Markdown Composer¶
Documentation¶
- Class name:
LLMMarkdownComposer
- Category:
SALT/Language Toolkit/Tools/Markdown
- Output node:
False
The LLMMarkdownComposer node is designed to transform input text into well-structured Markdown documents. It leverages a language model to interpret and format the given text according to specified classifiers and additional directions, ensuring the output adheres to Markdown syntax while incorporating all provided data.
Input types¶
Required¶
llm_model
- Specifies the language model to use for generating the Markdown document. It plays a crucial role in understanding the input text and formatting it according to Markdown syntax.
- Comfy dtype:
LLM_MODEL
- Python dtype:
dict
text_input
- The primary text input that will be transformed into a Markdown document. This text serves as the base content for the Markdown generation process.
- Comfy dtype:
STRING
- Python dtype:
str
classifier_list
- A comma-separated list of classifiers that guide the language model in structuring the Markdown document. These classifiers help in categorizing and formatting the input text appropriately.
- Comfy dtype:
STRING
- Python dtype:
str
Optional¶
extra_directions
- Additional instructions for the language model to follow when generating the Markdown document. These directions can include specific formatting requests or content structuring guidelines.
- Comfy dtype:
STRING
- Python dtype:
str
Output types¶
markdown_output
- Comfy dtype:
STRING
- The generated Markdown document, structured and formatted according to the input specifications and additional directions.
- Python dtype:
str
- Comfy dtype:
Usage tips¶
- Infra type:
CPU
- Common nodes: unknown
Source code¶
class LLMMarkdownComposer:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"llm_model": ("LLM_MODEL",),
"text_input": ("STRING", {"multiline": True, "dynamicPrompts": False, "placeholder": "Data..."}),
"classifier_list": ("STRING", {"multiline": False, "dynamicPrompts": False}),
},
"optional": {
"extra_directions": ("STRING", {"multiline": True, "dynamicPrompts": False, "placeholder": "Extra directions for the LLM to follow..."}),
}
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("markdown_output",)
FUNCTION = "compose_markdown"
CATEGORY = f"{MENU_NAME}/{SUB_MENU_NAME}/Tools/Markdown"
def compose_markdown(self, llm_model, text_input, classifier_list, extra_directions=""):
classifier_list = [item.strip() for item in classifier_list.split(",") if item.strip()]
prompt = (
f"{text_input}\n\n###\n\n"
"Given the above text, create a valid Markdown document utilizing *all* of the data; "
f"using the following classifiers: {classifier_list}.\n\n"
f"{extra_directions}\n\n"
"Please ensure the Markdown output is well-structured, and does not omit any data."
)
response = llm_model['llm'].complete(prompt)
return (response.text,)