All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 2s
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from __future__ import annotations
|
|
from typing import Dict, List
|
|
from .chunker import Chunk
|
|
from .parser import extract_wikilinks
|
|
|
|
def make_chunk_payloads(note_meta: Dict, path: str, chunks: List[Chunk]) -> List[Dict]:
|
|
res = []
|
|
for ch in chunks:
|
|
wikilinks = extract_wikilinks(ch.text)
|
|
payload = {
|
|
"id": ch.id,
|
|
"note_id": note_meta["id"],
|
|
"note_title": note_meta["title"],
|
|
"chunk_index": ch.index,
|
|
"char_start": ch.char_start,
|
|
"char_end": ch.char_end,
|
|
"token_count": ch.token_count,
|
|
"type": note_meta.get("type"),
|
|
"area": note_meta.get("area"),
|
|
"project": note_meta.get("project"),
|
|
"tags": note_meta.get("tags", []),
|
|
"section_title": ch.section_title,
|
|
"section_path": ch.section_path,
|
|
"lang": note_meta.get("lang"),
|
|
"wikilinks": wikilinks,
|
|
"external_links": [], # (optional später ergänzen)
|
|
"references": [{"target_id": w, "kind": "wikilink"} for w in wikilinks],
|
|
"neighbors": {
|
|
"prev": ch.neighbors_prev,
|
|
"next": ch.neighbors_next
|
|
},
|
|
"path": path,
|
|
}
|
|
# None/Leere bereinigen
|
|
payload = {k: v for k, v in payload.items() if v not in (None, [], {})}
|
|
res.append(payload)
|
|
return res
|