Files
Orchestrator/bahn/wissensdatenbank/src/connectors/base.py
T

23 lines
697 B
Python

"""Basis-Interface fuer alle Connectors."""
from __future__ import annotations
from abc import ABC, abstractmethod
from ..model import Document, Source, Tool
class Connector(ABC):
"""Ein Connector holt fuer eine Quelle 0..n Dokumente."""
name: str = "base"
@abstractmethod
def fetch(self, source: Source, tool: Tool | None) -> list[Document]:
"""Holt Rohdaten und liefert (noch ungefilterte) Dokumente.
tool ist None bei tool-uebergreifenden 'general'-Quellen.
Bei Fehlern (z.B. fehlende Credentials) sollte eine leere Liste
zurueckgegeben und geloggt werden, damit der lokale Lauf nicht bricht.
"""
raise NotImplementedError