Dateien nach "scripts" hochladen
All checks were successful
Deploy mindnet to llm-node / deploy (push) Successful in 2s

This commit is contained in:
Lars 2025-11-08 16:02:18 +01:00
parent 0ca54f429e
commit c487db6534

View File

@ -2,13 +2,15 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """
Script: scripts/import_markdown.py Markdown Qdrant (Notes, Chunks, Edges) Script: scripts/import_markdown.py Markdown Qdrant (Notes, Chunks, Edges)
Version: 3.8.2 Version: 3.8.3
Datum: 2025-11-08 Datum: 2025-11-08
Änderungen gegenüber 3.8.1 Änderungen gegenüber 3.8.2
-------------------------- --------------------------
- Behebt IndentationError bei der vorherigen Patch-Einfügung. - Ruft **ensure_collections nie direkt** auf, sondern ausschließlich über
- Konsolidiert alle Abwärtskompatibilitäten (Qdrant-Indices, qdrant_points, dim-Ermittlung). `_ensure_collections_compat(client, cfg, dim)`.
- Payload-Index-Erzeugung ausschließlich via `_ensure_payload_indexes_compat(client, cfg)`.
- Keine Annahmen über Signaturen im Projektstand; alle Varianten sind abgefedert.
""" """
from __future__ import annotations from __future__ import annotations
@ -38,7 +40,7 @@ except Exception: # pragma: no cover
from app.core.qdrant import ( from app.core.qdrant import (
QdrantConfig, QdrantConfig,
get_client, get_client,
ensure_collections, ensure_collections, # nur für Wrapper, unten niemals direkt aufrufen!
) )
# Abwärtskompatibler Import für Payload-Index-Erzeugung # Abwärtskompatibler Import für Payload-Index-Erzeugung
@ -122,51 +124,6 @@ except Exception:
# Helper # Helper
# --------------------------------------------------------------------- # ---------------------------------------------------------------------
# Compatibility wrappers for legacy qdrant helpers
def _ensure_collections_compat(client, cfg, dim):
"""
Call ensure_collections with the correct signature across releases:
- preferred: ensure_collections(client, cfg)
- fallbacks: (client, cfg.prefix, dim) -> (client, cfg.prefix) -> (client)
"""
try:
return ensure_collections(client, cfg)
except TypeError:
pass
try:
return ensure_collections(client, cfg.prefix, dim)
except TypeError:
pass
try:
return ensure_collections(client, cfg.prefix)
except TypeError:
pass
try:
return ensure_collections(client)
except TypeError:
pass
# If everything fails, do nothing
return None
def _ensure_payload_indexes_compat(client, cfg):
"""
Try calling payload index creation with cfg, then prefix; ignore if unsupported.
"""
try:
_ensure_payload_indexes(client, cfg)
return
except TypeError:
pass
try:
_ensure_payload_indexes(client, cfg.prefix)
return
except TypeError:
pass
except AttributeError:
pass
# final no-op
return
def iter_md(root: str) -> List[str]: def iter_md(root: str) -> List[str]:
out: List[str] = [] out: List[str] = []
for dirpath, _, filenames in os.walk(root): for dirpath, _, filenames in os.walk(root):
@ -286,6 +243,54 @@ def _resolve_dim(cfg) -> int:
return 384 return 384
# ---- Compatibility wrappers (no direct calls to project-specific signatures) ----
def _ensure_collections_compat(client, cfg, dim):
"""
Call ensure_collections with the correct signature across releases:
- preferred: ensure_collections(client, cfg)
- fallbacks: (client, cfg.prefix, dim) -> (client, cfg.prefix) -> (client)
"""
try:
return ensure_collections(client, cfg)
except TypeError:
pass
try:
return ensure_collections(client, cfg.prefix, dim)
except TypeError:
pass
try:
return ensure_collections(client, cfg.prefix)
except TypeError:
pass
try:
return ensure_collections(client)
except TypeError:
pass
# If everything fails, do nothing
return None
def _ensure_payload_indexes_compat(client, cfg):
"""
Try calling payload index creation with cfg, then prefix; ignore if unsupported.
"""
try:
_ensure_payload_indexes(client, cfg)
return
except TypeError:
pass
except AttributeError:
pass
try:
_ensure_payload_indexes(client, getattr(cfg, "prefix", None))
return
except TypeError:
pass
except AttributeError:
pass
# final no-op
return
# --------------------------------------------------------------------- # ---------------------------------------------------------------------
# Main # Main
# --------------------------------------------------------------------- # ---------------------------------------------------------------------
@ -332,16 +337,10 @@ def main() -> None:
cfg.prefix = args.prefix.strip() cfg.prefix = args.prefix.strip()
client = get_client(cfg) client = get_client(cfg)
dim = _resolve_dim(cfg) dim = _resolve_dim(cfg)
# ensure_collections signature compatibility
try: # Collections & Indexe (nur über Wrapper)
ensure_collections(client, cfg.prefix, dim) _ensure_collections_compat(client, cfg, dim)
except TypeError: _ensure_payload_indexes_compat(client, cfg)
try:
ensure_collections(client, cfg.prefix)
except TypeError:
ensure_collections(client)
# abwärtskompatible Index-Erstellung
_ensure_payload_indexes(client, cfg.prefix)
# Type-Registry laden (optional) # Type-Registry laden (optional)
reg = None reg = None