AI Service

Unified interface for AI providers with runtime switching.

Provider Pattern

The AI service abstracts two providers behind a common interface:

  • Claude Provider — Anthropic Claude API (cloud)

  • Ollama Provider — Local Ollama instance (private)

Both implement: summarize(), explain_term(), generate_mindmap(), deep_dive()

Switching Providers

The active provider is set in backend/infra/config.py via AI_PROVIDER and can be changed at runtime.

Source Code

async backend.services.ai_service.deep_dive(node_label: str, node_detail: str, context: str) list[dict][source]

Generiert Unterknoten für einen Mindmap-Knoten (Reinzoomen). Gibt eine Liste von Kind-Knoten zurück.

async backend.services.ai_service.explain_term(term: str, context: str) str[source]

Erklärt einen Fachbegriff im Kontext des Dokuments. Gibt eine verständliche Erklärung zurück.

async backend.services.ai_service.generate_mindmap(text: str) list[dict][source]

Generiert eine Mindmap-Struktur aus einem Text. Gibt eine Liste von Knoten zurück: [{“label”: str, “detail”: str, “children”: […]}]

backend.services.ai_service.get_active_provider_name() str[source]

Gibt den Namen des aktuell aktiven Providers zurück.

backend.services.ai_service.get_provider()[source]

Gibt den aktuell aktiven AI-Provider zurück.

backend.services.ai_service.set_provider(name: str)[source]

Wechselt den aktiven AI-Provider. Erlaubte Werte: “claude” oder “ollama”

async backend.services.ai_service.summarize(text: str) dict[source]

Generiert eine Zusammenfassung mit Schlüsselbegriffen. Gibt zurück: {“summary”: str, “key_terms”: list[str]}