3.3 KiB
3.3 KiB
tags
| tags | |
|---|---|
|
∞ Semantics Splitter Node Parser
Documentation
- Class name:
LLMSemanticSplitterNodeParser - Category:
SALT/Language Toolkit/Parsing - Output node:
False
This node is designed to parse documents semantically using a specified language model for embeddings, optionally incorporating sentence splitting, metadata inclusion, and relationship analysis between sequential elements. It aims to enhance the understanding and structuring of text by leveraging deep learning models to identify and organize semantic components.
Input types
Required
document- The primary text document to be parsed. It serves as the core input for semantic analysis and structuring.
- Comfy dtype:
DOCUMENT - Python dtype:
str
llm_embed_model- The language model used for generating embeddings, which is crucial for the semantic parsing process.
- Comfy dtype:
LLM_EMBED_MODEL - Python dtype:
object
Optional
buffer_size- Determines the size of the processing buffer, affecting the granularity of parsing and potentially the performance.
- Comfy dtype:
INT - Python dtype:
int
sentence_splitter- An optional model or method for splitting the document into sentences, enhancing the semantic parsing accuracy.
- Comfy dtype:
LLM_SENTENCE_SPLITTER - Python dtype:
object
include_metadata- Flag to include metadata in the parsing process, enriching the semantic understanding of the document.
- Comfy dtype:
BOOLEAN - Python dtype:
bool
include_prev_next_rel- Flag to analyze and include the relationships between sequential elements, offering deeper insights into the document structure.
- Comfy dtype:
BOOLEAN - Python dtype:
bool
Output types
llm_node_parser- Comfy dtype:
LLM_NODE_PARSER - The result of the semantic parsing process, structured to reflect the semantic components and relationships identified within the document.
- Python dtype:
object
- Comfy dtype:
Usage tips
- Infra type:
CPU - Common nodes: unknown
Source code
class LLMSemanticSplitterNodeParser:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"document": ("DOCUMENT",),
"llm_embed_model": ("LLM_EMBED_MODEL",),
},
"optional": {
"buffer_size": ("INT", {"default": 1, "min": 1}),
"sentence_splitter": ("LLM_SENTENCE_SPLITTER",),
"include_metadata": ("BOOLEAN", {"default": True}),
"include_prev_next_rel": ("BOOLEAN", {"default": True}),
},
}
RETURN_TYPES = ("LLM_NODE_PARSER",)
RETURN_NAMES = ("llm_node_parser",)
FUNCTION = "semantic_nodes"
CATEGORY = f"{MENU_NAME}/{SUB_MENU_NAME}/Parsing"
def semantic_nodes(self, document, llm_embed_model, buffer_size=1, sentence_splitter=None, include_metadata=True, include_prev_next_rel=True):
parser = SemanticSplitterNodeParser(
embed_model=llm_embed_model,
buffer_size=buffer_size,
sentence_splitter=sentence_splitter,
include_metadata=include_metadata,
include_prev_next_rel=include_prev_next_rel,
)
return (parser.build_semantic_nodes_from_documents(document, show_progress=True), )