Published on

KI-Server-RAG: Vom PDF zur abfragebereiten Wissensdatenbank

Authors

RAG: Von PDF zu abfragebereitem Wissen

Die RAG-Pipeline verbindet firmeneigene Dokumente mit einem LLM — so antwortet die KI nicht mit Halluzinationen, sondern mit Fakten aus Ihren Dokumenten.

Die 5 Schritte der RAG-Pipeline

1. Dokumenten-Extraktion

from langchain_community.document_loaders import PyPDFLoader, DocxLoader, UnstructuredMarkdownLoader

def load_document(file_path):
    if file_path.endswith('.pdf'):
        return PyPDFLoader(file_path).load()
    elif file_path.endswith('.docx'):
        return DocxLoader(file_path).load()
    elif file_path.endswith('.md'):
        return UnstructuredMarkdownLoader(file_path).load()

2. Chunking (Aufteilung in kleinere Abschnitte)

from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=500,      # 500 Tokens pro Chunk
    chunk_overlap=50,    # 50 Tokens Overlap
    length_function=len,
)
chunks = splitter.split_documents(docs)
# 1000 Seiten → ~500 Chunks

3. Embedding (Vektor-Erstellung)

from langchain_community.embeddings import OllamaEmbeddings

embeddings = OllamaEmbeddings(model="nomic-embed-text")
for chunk in chunks:
    embedding = embeddings.embed_query(chunk.page_content)

4. Speicherung in Qdrant

from qdrant_client import QdrantClient, models

client = QdrantClient(path="./qdrant_wissen")
client.create_collection("firmen_wissen", 
                         vectors_config=models.VectorParams(
                             size=768, 
                             distance=models.Distance.COSINE
                         ))

client.upsert(
    collection_name="firmen_wissen",
    points=models.Batch(
        ids=list(range(len(chunks))),
        vectors=[embeddings.embed_query(c.page_content) for c in chunks]
    )
)

5. Abfrage (Retrieval + Generation)

from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA

llm = Ollama(model="llama3.3:70b")
qa = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=client.as_retriever(search_kwargs={"k": 5})
)

result = qa.invoke("Was sagt die Dokumentation über Wartung?")
print(result["result"])

Chunking-Strategien

|| Strategie | Chunk Size | Overlap | Einsatz | ||---|---|---|---| || Recursive | 500 | 50 | General Purpose | || Markdown | Variable | 0 | Markdown-Dokumente | || Semantic | ~1000 | 100 | Semantisch sinnvolle Blöcke | || Fixed | 300 | 50 | Kurze Texte |

Performance

|| Schritt | Zeit (100 PDFs) | Hardware | ||---|---|---| || Dokumenten-Extraktion | ~2 min | RTX 4090 | || Chunking | ~1 min | CPU | || Embedding | ~3 min | RTX 4090 | || Speicherung Qdrant | ~30s | SSD | || RAG-Abfrage | ~2s | RTX 4090 |

Fazit

Eine RAG-Pipeline ist in einem Nachmittag implementiert — und transformiert Ihr firmeninternes Wissen in eine KI-abfragebare Wissensdatenbank.

👉 RAG mit LangChain: Python Guide 👉 Qdrant Cluster: Enterprise RAG 👉 Pexon Consulting: RAG-Implementierung

📖 Verwandte Artikel

Weitere interessante Beiträge zu ähnlichen Themen

Bereit für KI im Mittelstand?

Nutzen Sie unsere 10 kostenlosen KI-Tools und Praxis-Guides – oder sprechen Sie direkt mit unseren Experten.

Pexon Consulting – KI-Beratung für den Mittelstand | Scaly Academy – Geförderte KI-Weiterbildung (KI-Spezialist, KI-Experte, Workflow-Automatisierung)