WZ-IT Logo

Contextual Retrieval: RAG-Chunks mit Kontext und lokalem LLM

Timo WevelsiepTimo Wevelsiep•Aktualisiert: 24.09.2026

Hinweis zum Inhalt: Versionen, Befehle und Preise können sich ändern. Bitte prüfen Sie kritische Schritte vor dem produktiven Einsatz eigenständig. Dieser Leitfaden ersetzt keine individuelle Beratung.

Die Trefferqualität eines RAG-Systems messbar verbessern? WZ-IT baut RAG-Systeme auf eigener Infrastruktur, mit lokalem Modell, hybrider Suche und nachvollziehbaren Quellen. Der RAG Proof of Value misst einen abgegrenzten Wissensbestand mit vereinbarten Referenzfragen, vor und nach zwei Optimierungszyklen. RAG Proof of Value ansehen · Interne KI-Assistenten

Ein RAG-System zerlegt Dokumente in Abschnitte, sogenannte Chunks, und sucht bei jeder Frage die passenden heraus. Dabei geht Kontext verloren: Ein Chunk mit dem Satz „Der Umsatz stieg um 3 % gegenüber dem Vorquartal" sagt nicht, welche Firma und welches Quartal gemeint sind. Contextual Retrieval setzt vor jeden Chunk einen kurzen, maschinell erzeugten Kontext und macht ihn damit auffindbar. Anthropic hat das Verfahren beschrieben und mit Claude umgesetzt. Dieser Artikel erklärt es auf Deutsch und zeigt, wie es mit einem lokalen Modell über vLLM oder Ollama funktioniert. Stand September 2026.

Inhaltsverzeichnis

Das Problem: Chunks ohne Kontext

Ein klassisches RAG-System verarbeitet den Bestand in drei Schritten (Was ist RAG?): Dokumente in Chunks zerlegen, jeden Chunk mit einem Embedding-Modell in einen Vektor übersetzen, die Vektoren in einer Datenbank wie Qdrant oder pgvector ablegen. Viele Systeme ergänzen einen lexikalischen Index mit BM25, weil Vektoren exakte Kennungen wie Fehlercodes, Aktenzeichen oder Artikelnummern schlecht treffen.

Beide Indizes sehen aber nur den Chunk. Was im Dokument davor steht, also Titel, Kapitel, Vertragspartner, Geltungsbereich oder Stichtag, fehlt im Chunk. Typische Fälle in deutschen Unternehmensdokumenten:

Chunk-Inhalt Was fehlt Folge bei der Suche
„Die Frist beträgt 14 Tage ab Zugang." Welcher Vertrag, welche Partei Frage nach „Kündigungsfrist Rahmenvertrag Logistik" findet den Chunk nicht
„Abweichend davon gilt Absatz 3 nicht." Welche Richtlinie, welche Fassung Treffer aus einer alten Fassung wirkt gleichwertig
„Der Wert liegt unter dem Vorjahr." Welche Kennzahl, welches Jahr Semantisch passend zu vielen Fragen, inhaltlich zu keiner
Tabellenzeile ohne Kopfzeile Spaltenbedeutung Zahlen ohne Einheit und Bezug

Wie Dokumente sinnvoll geschnitten werden, damit solche Brüche seltener auftreten, beschreibt Chunking für RAG. Contextual Retrieval setzt danach an: Der Schnitt bleibt, jeder Chunk bekommt seinen Kontext zurück.

Wie Contextual Retrieval funktioniert

Anthropic hat das Verfahren im September 2024 veröffentlicht (Anthropic, Introducing Contextual Retrieval). Es besteht aus zwei Teilen: Contextual Embeddings und Contextual BM25. In beiden Fällen wird vor jeden Chunk ein chunk-spezifischer, erklärender Kontext gesetzt, bevor er eingebettet und in den BM25-Index geschrieben wird.

Den Kontext erzeugt ein Sprachmodell. Es erhält das Gesamtdokument und den einzelnen Chunk und soll einen kurzen Kontext formulieren, der den Chunk im Dokument einordnet. Anthropic hat dafür diesen Prompt mit Claude 3 Haiku verwendet:

<document>
{{WHOLE_DOCUMENT}}
</document>
Here is the chunk we want to situate within the whole document
<chunk>
{{CHUNK_CONTENT}}
</chunk>
Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.

Der erzeugte Kontext umfasst laut Anthropic meist 50 bis 100 Tokens. Aus dem Beispiel der Quelle wird so aus „The company's revenue grew by 3% over the previous quarter." ein Chunk, dem vorangestellt ist, dass er aus einer SEC-Meldung zur ACME Corp für Q2 2023 stammt und der Umsatz im Vorquartal 314 Millionen US-Dollar betrug.

Abgegrenzt davon sind verwandte Ansätze: generische Dokumentzusammenfassungen an jedem Chunk (laut Anthropic nur sehr begrenzte Verbesserungen), Hypothetical Document Embeddings und zusammenfassungsbasierte Indizes (in Anthropics Tests schwache Ergebnisse). Der Unterschied liegt darin, dass der Kontext für jeden Chunk einzeln erzeugt wird.

Was die Messungen von Anthropic zeigen

Anthropic hat über mehrere Wissensdomänen gemessen (Codebasen, Belletristik, ArXiv-Paper, wissenschaftliche Veröffentlichungen). Metrik ist 1 minus Recall@20, also der Anteil relevanter Dokumente, die nicht unter den Top-20-Chunks landen. Die Durchschnittswerte beziehen sich auf die beste Embedding-Konfiguration im Test, Gemini Text 004.

Konfiguration Fehlerquote Top 20 Reduktion ggü. Ausgangswert
Embeddings (Ausgangswert) 5,7 % -
Contextual Embeddings 3,7 % 35 %
Contextual Embeddings + Contextual BM25 2,9 % 49 %
Contextual Embeddings + Contextual BM25 + Reranking 1,9 % 67 %

Beim Reranking hat Anthropic die Top 150 aus der ersten Suche an einen Reranker (Cohere) gegeben und die Top 20 an das Modell weitergereicht. Weitere Befunde aus derselben Quelle: Embeddings mit BM25 schlagen Embeddings allein, 20 Chunks im Prompt funktionierten besser als 10 oder 5, und die Effekte addieren sich.

Zwei Einschränkungen gehören zur Einordnung. Die Messung stammt vom Anbieter des verwendeten Modells, und die Datensätze sind englisch. Übertragbar ist die Richtung, nicht die Zahl. Ob und wie stark der eigene Bestand profitiert, zeigt nur eine Messung mit eigenen Referenzfragen, siehe RAG-Qualität messen.

Der Preis: ein Modellaufruf pro Chunk

Contextual Retrieval verschiebt Rechenaufwand in die Indexierung. Für jeden Chunk läuft ein Modellaufruf, und jeder Aufruf enthält das ganze Dokument. Bei der Suchanfrage selbst entsteht kein zusätzlicher Modellaufruf.

Anthropic rechnet mit 800-Token-Chunks, 8.000-Token-Dokumenten, 50 Tokens Anweisung und 100 Tokens Kontext pro Chunk und kommt mit Prompt Caching auf einmalig 1,02 US-Dollar pro Million Dokument-Tokens. Das bezieht sich auf die Preise von Claude 3 Haiku zum Zeitpunkt der Veröffentlichung.

Bei einem lokalen Modell fallen keine Token-Preise an, der Aufwand zeigt sich in GPU-Zeit. Mit denselben Annahmen ergibt sich pro Dokument (eigene Rechnung):

Größe ohne Prefix Caching mit Prefix Caching
Chunks pro Dokument 10 10
Zu verarbeitende Eingabe-Tokens pro Chunk 8.850 850 (Dokument einmalig 8.000)
Eingabe-Tokens pro Dokument 88.500 rund 16.500
Verhältnis zur Dokumentlänge rund 11-fach rund 2-fach
Erzeugte Tokens pro Dokument 1.000 1.000

Ohne Cache liest das Modell jedes Dokument so oft, wie es Chunks hat. Mit Cache wird das Dokument einmal verarbeitet, danach nur noch der jeweilige Chunk und die Anweisung. Die Erzeugung der Kontexte selbst (Decoding) bleibt gleich.

Prefix Caching in vLLM als lokales Gegenstück

vLLM bringt mit Automatic Prefix Caching (APC) das Gegenstück zum Prompt Caching der Cloud-APIs mit. APC speichert den KV-Cache bereits verarbeiteter Anfragen. Beginnt eine neue Anfrage mit demselben Präfix, überspringt vLLM die Berechnung des gemeinsamen Teils (vLLM, Automatic Prefix Caching). Die Dokumentation nennt als typischen Anwendungsfall genau das Muster von Contextual Retrieval: viele Anfragen zum selben langen Dokument.

Eigenschaft Verhalten in vLLM Quelle
Standard aktiv, enable_prefix_caching ist in der Cache-Konfiguration auf True gesetzt, abschaltbar mit --no-enable-prefix-caching vLLM CacheConfig, Engine-Argumente
Granularität Nur volle KV-Cache-Blöcke werden gecacht, Blöcke werden über ihre Tokens und das vorangehende Präfix gehasht vLLM Design: Prefix Caching
Wirkung Beschleunigt die Verarbeitung des Prompts (Prefill), nicht die Erzeugung neuer Tokens (Decoding) vLLM, Automatic Prefix Caching
Verdrängung Nicht mehr genutzte Blöcke werden nach LRU verdrängt, wenn Speicher gebraucht wird vLLM Design: Prefix Caching
Mandantentrennung Optionales cache_salt pro Anfrage beschränkt die Wiederverwendung auf Anfragen mit demselben Salt vLLM Design: Prefix Caching
Hash-Verfahren SHA-256 als Standard seit v0.11, wählbar über --prefix-caching-hash-algo vLLM Design: Prefix Caching

Daraus folgen drei Regeln für die Pipeline:

  1. Das Dokument steht am Anfang des Prompts. Anthropics Prompt ist bereits so aufgebaut: erst das Dokument, dann der Chunk, dann die Anweisung. Alles, was sich von Chunk zu Chunk ändert, gehört hinter das Dokument.
  2. Der Präfix muss Token für Token gleich sein. Systemprompt, Chat-Template und Dokumenttext bleiben für alle Chunks eines Dokuments identisch. Eine Chunk-Nummer oder ein Zeitstempel vor dem Dokument verhindert jeden Cache-Treffer.
  3. Aufträge nach Dokument gruppieren. Werden die Chunks eines Dokuments zusammen abgearbeitet, liegt dessen Präfix noch im Cache. Eine über den ganzen Bestand gemischte Warteschlange riskiert, dass der Präfix vor dem nächsten Chunk verdrängt wurde.

Ob der Cache greift, zeigen die Prometheus-Metriken vllm:prefix_cache_queries und vllm:prefix_cache_hits (vLLM, Metrics). Wie vLLM grundsätzlich arbeitet, erklärt Was ist vLLM?.

Ollama und llama.cpp

Mit Ollama lässt sich Contextual Retrieval ebenfalls umsetzen, zwei Punkte sind aber zu beachten.

Das Kontextfenster. Ollama verwendet standardmäßig ein Kontextfenster von 4.096 Tokens (Ollama FAQ). Ein Dokument mit 8.000 Tokens passt nicht hinein. Das Fenster wird über die Umgebungsvariable OLLAMA_CONTEXT_LENGTH oder den API-Parameter num_ctx erhöht. Der Speicherbedarf steigt mit OLLAMA_NUM_PARALLEL mal Kontextlänge; der Standard für parallele Anfragen je Modell ist 1.

Das Caching. Ollama dokumentiert kein konfigurierbares Prefix Caching wie vLLM. Der llama.cpp-Server, auf dessen Technik Ollama ursprünglich aufbaut, hat die Option cache_prompt (standardmäßig aktiv): Der Prompt wird mit der vorherigen Anfrage verglichen, und nur der abweichende Rest wird neu verarbeitet (llama.cpp Server README). Das hilft bei aufeinanderfolgenden Chunks desselben Dokuments, ist aber an einen Slot gebunden und nicht mit dem blockbasierten Cache von vLLM vergleichbar.

Für die einmalige Indexierung eines großen Bestands ist vLLM deshalb meist die bessere Wahl, für kleine Bestände und Tests reicht Ollama. Den Vergleich der Inferenz-Server insgesamt zeigt vLLM vs. Ollama.

Umsetzung mit lokalem LLM

Die Pipeline braucht keinen eigenen Dienst. Sie ist ein zusätzlicher Schritt zwischen Chunking und Einbettung, der gegen eine OpenAI-kompatible Schnittstelle läuft.

Schritt Was passiert Hinweis
1. Dokument laden Text extrahieren, Metadaten erfassen Titel, Fassung, Datum gehören auch in die Metadaten, nicht nur in den Kontext
2. Chunking Dokument wie bisher schneiden Chunk-Grenzen bleiben unverändert
3. Kontext erzeugen Pro Chunk ein Modellaufruf mit Dokument und Chunk Dokument vorn, Aufträge je Dokument gebündelt
4. Kontext speichern Kontext und Original-Chunk getrennt ablegen Quellenanzeige zeigt den Original-Chunk
5. Indexieren Kontext plus Chunk einbetten und in BM25 schreiben Beide Indizes mit derselben Zeichenkette füttern

Ein Modell mit OpenAI-kompatibler API in vLLM starten, hier als Beispiel ein kleines Instruct-Modell unter Apache-2.0-Lizenz:

vllm serve Qwen/Qwen3-4B-Instruct-2507 --max-model-len 32768

Der Aufruf pro Chunk, mit einem deutschen Prompt für deutsche Dokumente, damit der Kontext dieselben Fachbegriffe verwendet wie die späteren Fragen:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="local")

def kontext(dokument: str, chunk: str) -> str:
    prompt = (
        f"<document>\n{dokument}\n</document>\n"
        "Hier ist der Abschnitt, den wir im Gesamtdokument einordnen wollen:\n"
        f"<chunk>\n{chunk}\n</chunk>\n"
        "Formuliere einen kurzen Kontext, der diesen Abschnitt im Gesamtdokument "
        "einordnet, um ihn bei der Suche besser auffindbar zu machen. "
        "Antworte nur mit dem Kontext."
    )
    antwort = client.chat.completions.create(
        model="Qwen/Qwen3-4B-Instruct-2507",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=150,
        temperature=0,
    )
    return antwort.choices[0].message.content.strip()

Zur Modellwahl: Anthropic hat mit Claude 3 Haiku bewusst ein kleines Modell genutzt. Die Aufgabe verlangt Leseverständnis über lange Texte und kurze Ausgaben, keine tiefe Argumentation. Entscheidend sind ein Kontextfenster, das die längsten Dokumente aufnimmt, und gute Deutschkenntnisse. Modelle mit Denkmodus sollten für diese Aufgabe ohne ihn laufen, sonst wachsen Ausgabelänge und Laufzeit. Anthropic empfiehlt zudem, den Prompt an die Domäne anzupassen, etwa durch ein Glossar mit Begriffen, die nur in anderen Dokumenten definiert sind.

Welche Hardware für welches Modell reicht, beschreibt GPU & VRAM dimensionieren. Die Indexierung läuft typischerweise auf derselben Hardware wie der Chatbetrieb, zum Beispiel nachts.

Kombination mit BM25 und Reranking

Contextual Retrieval ersetzt die hybride Suche nicht, es verbessert beide Teile. Der Kontext enthält oft genau die Begriffe, die BM25 braucht: Firmenname, Vertragsbezeichnung, Paragraf, Produktnummer. Ein Chunk, der vorher nur „die Gesellschaft" sagte, ist danach auch über den Namen auffindbar.

Baustein Beitrag Lokale Umsetzung
Contextual Embeddings Semantische Suche findet Chunks über den Dokumentzusammenhang Embedding-Modell wie BGE-M3 (MIT-Lizenz) oder Qwen3-Embedding
Contextual BM25 Exakte Begriffe aus dem Kontext werden lexikalisch auffindbar OpenSearch, Sparse-Vektoren in Qdrant oder lexikalisch über die Postgres-Volltextsuche
Rank Fusion Ergebnisse beider Suchen zusammenführen und deduplizieren Reciprocal Rank Fusion in der Anwendung oder der Datenbank
Reranking Cross-Encoder bewertet die Kandidaten neu, die besten gehen an das Modell bge-reranker-v2-m3 oder Qwen3-Reranker, beide Apache 2.0

Wie hybride Suche und Reranking im Detail aufgebaut werden, beschreibt Hybrid Search und Reranking. Welches Embedding-Modell für deutsche Texte passt, vergleicht der Beitrag Embedding-Modelle für Deutsch.

Bei der Antwortgenerierung empfiehlt Anthropic, dem Modell den kontextualisierten Chunk zu übergeben und dabei zu kennzeichnen, was Kontext und was Originaltext ist. Die Quellenangabe für den Nutzer bezieht sich immer auf den Originaltext, weil der erzeugte Kontext nicht im Dokument steht.

Grenzen und Betriebsfragen

Kleine Bestände brauchen kein RAG. Anthropic nennt rund 200.000 Tokens (etwa 500 Seiten) als Grenze, unter der der ganze Bestand direkt in den Prompt passt. Lokal hängt die Grenze vom Kontextfenster des Modells und vom Grafikspeicher ab.

Lange Dokumente sprengen das Kontextfenster. Ein Handbuch mit 300 Seiten passt nicht in jeden Prompt. Dann wird statt des Gesamtdokuments das umgebende Kapitel übergeben, ergänzt um Titel und Inhaltsverzeichnis. Das ist eine Abweichung vom Originalverfahren und sollte gemessen werden.

Änderungen wirken auf das ganze Dokument. Der Kontext eines Chunks hängt vom Gesamtdokument ab. Ändert sich ein Abschnitt, wird das Dokument komplett neu kontextualisiert. Die Indexierung muss daher dokumentweise versionieren, nicht chunkweise.

Der Kontext kann falsch sein. Das Modell kann einen Chunk falsch einordnen, etwa einer falschen Fassung zuordnen. Stichproben der erzeugten Kontexte gehören in die Abnahme, und die Anzeige für Nutzer zeigt den Originaltext.

Berechtigungen gelten auch für den Kontext. Der Kontext enthält Informationen aus dem Gesamtdokument. Er erbt deshalb die Zugriffsrechte des Dokuments, genau wie der Chunk (RAG mit Berechtigungen). Teilen sich mehrere Mandanten einen vLLM-Server, trennt cache_salt die Caches.

Indexgröße und Chunklänge steigen. Jeder Chunk wird um 50 bis 100 Tokens länger. Das betrifft Speicher im Index und die Zahl der Tokens, die bei jeder Antwort in den Prompt gehen.

Was das für Ihr Projekt heißt

Contextual Retrieval ist ein Indexierungsschritt, kein Produktwechsel. Er lässt sich in eine bestehende Pipeline einfügen, braucht keine Cloud-API und läuft mit einem lokalen Modell auf derselben Hardware wie der Assistent, auf einem AI Cube im eigenen Netzwerk oder auf einem Managed GPU-Server von WZ-IT. Der Aufwand liegt in der GPU-Zeit bei der Indexierung, und Prefix Caching in vLLM senkt ihn deutlich.

Ob sich der Schritt lohnt, entscheidet eine Messung: dieselben Referenzfragen vor und nach der Kontextualisierung, bewertet mit Recall@k und Antwortqualität. Genau diesen Vergleich von Ausgangswert und Optimierung sieht der RAG Proof of Value vor, mit Support, Beratung und Implementierung durch WZ-IT.

Die Grundlagen stehen in Was ist RAG?, der Schritt davor in Chunking für RAG, der Schritt danach in Hybrid Search und Reranking. Wie die Wirkung belastbar gemessen wird, zeigt RAG-Qualität messen, und welche Vektordatenbank die hybride Suche trägt, vergleicht Qdrant vs. pgvector.

Quellen

Lieber betreiben lassen?

Sie möchten Lokale KI für Unternehmen nicht selbst betreiben? WZ-IT übernimmt Einrichtung, Betrieb und Wartung - datenschutzorientiert aus Deutschland.

Anfrage

Lokale KI für Ihren Einsatz einordnen

Starten Sie mit dem AI Cube oder lassen Sie eine individuelle KI-Plattform, Wissensanbindung oder Integration einordnen.

Wie sollen wir antworten?

Häufig gestellte Fragen

Antworten auf die wichtigsten Fragen

Ein Vorverarbeitungsschritt für RAG, den Anthropic im September 2024 beschrieben hat. Ein Sprachmodell liest für jeden Chunk das Gesamtdokument und formuliert einen kurzen Kontext von meist 50 bis 100 Tokens, etwa zu welchem Dokument, welcher Firma und welchem Zeitraum der Abschnitt gehört. Dieser Kontext wird vor den Chunk gesetzt, bevor er eingebettet und in den BM25-Index geschrieben wird.

In den Tests von Anthropic sank die Fehlerquote beim Abruf der Top-20-Chunks (gemessen als 1 minus Recall@20) um 35 Prozent mit kontextualisierten Embeddings (5,7 auf 3,7 Prozent), um 49 Prozent zusammen mit kontextualisiertem BM25 (auf 2,9 Prozent) und um 67 Prozent mit zusätzlichem Reranking (auf 1,9 Prozent). Die Werte gelten für Anthropics Testdatensätze und Modelle, nicht automatisch für den eigenen Bestand.

Nein. Das Verfahren ist ein Prompt, kein Produktmerkmal. Jedes Instruct-Modell mit ausreichend langem Kontextfenster kann den Kontext erzeugen, auch ein lokal betriebenes Modell über vLLM oder Ollama. Anthropic nutzte für die Messungen das kleine Modell Claude 3 Haiku.

Nein. Eine allgemeine Zusammenfassung ist für alle Chunks eines Dokuments gleich. Contextual Retrieval erzeugt für jeden Chunk einen eigenen Kontext, der genau diesen Abschnitt einordnet. Anthropic hat generische Dokumentzusammenfassungen ebenfalls getestet und nur sehr begrenzte Verbesserungen gesehen.

Kaum. Der Kontext wird einmal bei der Indexierung erzeugt, nicht bei jeder Anfrage. Zur Laufzeit ändert sich nur, dass jeder Chunk um den Kontext länger ist. Was zusätzliche Latenz bringt, ist ein eventuell ergänzter Reranker, nicht die Kontextualisierung selbst.

Das Automatic Prefix Caching von vLLM. Es speichert den KV-Cache bereits verarbeiteter Prompt-Anfänge und verwendet ihn wieder, wenn eine neue Anfrage mit demselben Präfix beginnt. Steht das Dokument am Anfang des Prompts, wird es für alle Chunks dieses Dokuments nur einmal berechnet. In aktuellen vLLM-Versionen ist Prefix Caching standardmäßig aktiv.

Ja, mit einer wichtigen Einschränkung: Ollama nutzt standardmäßig ein Kontextfenster von 4.096 Tokens. Ein Dokument von mehreren tausend Tokens passt dann nicht vollständig in den Prompt. Das Kontextfenster muss über OLLAMA_CONTEXT_LENGTH oder den Parameter num_ctx erhöht werden, sonst entsteht der Kontext aus einem abgeschnittenen Dokument.

Nicht der ganze Bestand, aber das ganze Dokument. Der Kontext eines Chunks hängt vom Gesamtdokument ab. Ändert sich ein Abschnitt, können sich die Kontexte aller anderen Chunks desselben Dokuments ebenfalls ändern. Die Neuindexierung erfolgt deshalb pro Dokument, nicht pro Chunk.

Oft nicht. Anthropic nennt als Grenze rund 200.000 Tokens, etwa 500 Seiten: Darunter kann der gesamte Bestand direkt in den Prompt, ganz ohne RAG. Bei lokalen Modellen hängt diese Grenze vom Kontextfenster des Modells und vom verfügbaren Grafikspeicher ab.

Kontakt

Lassen Sie uns über Ihre Idee sprechen

Ob konkrete IT-Herausforderung oder einfach eine Idee - wir freuen uns auf den Austausch. In einem kurzen Gespräch prüfen wir gemeinsam, ob und wie Ihr Projekt zu WZ-IT passt.

Rückruf vereinbaren

Rückruf

Rückruf vereinbaren

Nummer hinterlassen, wir rufen zurück — spätestens am nächsten Werktag.

Für ein ausführliches Gespräch können Sie alternativ einen Termin buchen.

Unternehmen weltweit vertrauen WZ-IT

  • ml&s
  • Rekorder
  • Keymate
  • Führerscheinmacher
  • SolidProof
  • ARGE
  • Boese VA
  • nextGYM
  • SweetConnect GmbH
  • Golem.de
  • Millenium
  • Paritel
  • Yonju
  • EVADXB
  • Mr. Clipart
  • Aphy AG
  • Negosh
  • ABCO Water Systems
1/3 - Themenauswahl33%

Worum geht es bei Ihrer Anfrage?

Wählen Sie zuerst den Leistungsbereich, der am besten zu Ihrem Vorhaben passt.