RAG Chatbot mit LLMClient (Groq, OpenAI & Hugging Face)¶
- Überblick über Retrieval-Augmented Generation (RAG)
- Inhalt des Notebooks
- Erforderliche API Keys
- Hugging Face Access Token erstellen
- Groq API Key erstellen
- OpenAI API Key erstellen
- API Keys als Secrets in Google Colab hinterlegen
- Nutzung von LLMClient im Notebook
- Ressourcen zu RAG
- Lizenz
Das Notebook RAGChatbot_groq_API.ipynb zeigt, wie man mit der Klasse LLMClient einen Retrieval-Augmented-Generation (RAG)-Chatbot erstellt, der wahlweise über Groq, OpenAI oder Ollama betrieben wird.

Überblick über Retrieval-Augmented Generation (RAG)¶
Retrieval-Augmented Generation (RAG) kombiniert Wissen aus eigenen Dokumenten mit der Sprachkompetenz großer KI-Modelle wie ChatGPT. Statt dass das Modell nur auf sein internes (und begrenztes) Trainingswissen zugreift, sucht RAG zuerst gezielt in einer Wissensdatenbank oder Dokumentsammlung nach relevanten Textstellen („Retrieval“) und übergibt diese dann zusammen mit der Nutzerfrage an das Large Language Model („Generation“).
So kann das System aktuelle, überprüfbare und kontextbezogene Antworten geben – z. B. auf Basis von PDF-Berichten, Forschungsartikeln oder internen Dokumentationen. Typische Anwendungsfälle sind Chatbots für Fachwissen, intelligente Assistenzsysteme oder unternehmensinterne Wissensassistenten.
Das folgende Schaubild zeigt den grundlegenden Aufbau eines RAG-Systems:

Abbildung: „High-level overview of the Retrieval Augmented Generation System“ von Maanjunath S Naragund, entnommen aus diesem Blogbeitrag auf Medium. Icons von Flaticon. Verwendung im Rahmen des Zitatrechts (§ 51 UrhG). Diese Abbildung steht nicht unter der MIT-Lizenz dieses Repositories.
Die folgenden beiden Abbildungen veranschaulichen, wie Satz-Embeddings die semantische Bedeutung von Sätzen in einem gemeinsamen Vektorraum darstellen. Sätze mit ähnlicher Bedeutung (z. B. Paraphrasen) werden als nahe beieinanderliegende Vektoren abgebildet, während inhaltlich verschiedene Sätze weiter voneinander entfernt liegen. Sogenannte Embedding-Modelle (eine Form von LLM) wandeln Sätze dabei in diese numerischen Vektoren um, die die semantischen Eigenschaften der Sätze mathematisch erfassbar machen.
Die erste Abbildung zeigt drei Beispielsätze und deren Einbettungen in einem dreidimensionalen Raum – zwei semantisch ähnliche Sätze (in Rot) und einen thematisch unabhängigen Satz (in Blau).

Abbildung: Visualisierung der semantischen Ähnlichkeit von Satz-Embeddings in einem dreidimensionalen Vektorraum. Eigene Darstellung, inspiriert durch das Kursmaterial aus "Retrieval Augmented Generation (RAG)" von DeepLearning.AI auf Coursera.
Die zweite Abbildung erweitert dieses Beispiel um einen Frage-Vektor und demonstriert, wie semantische Ähnlichkeit genutzt werden kann, um relevante Informationen in einem Retrieval-Augmented-Generation-System abzurufen.

Abbildung: Visualisierung der semantischen Ähnlichkeit von Satz-Embeddings in einem dreidimensionalen Vektorraum inklusive einer Frage. Eigene Darstellung, inspiriert durch das Kursmaterial aus "Retrieval Augmented Generation (RAG)" von DeepLearning.AI auf Coursera.
🚀 Inhalt des Notebooks¶
Das Notebook demonstriert:
- Installation der benötigten Packages in Google Colab
- Nutzung der
LLMClient-Klasse mit: - 🧩 Groq API (optional)
- 🔮 OpenAI API (optional)
- 💻 Ollama (local) (Fallback)
- Aufbau eines einfachen RAG-Workflows:
- PDF Dokumente laden mit
UnstructuredReadervonllamaindex - Embeddings mit einem Embedding-Modell von
Hugging Faceerzeugen - Antworten aus LLM +
ChromaDB-Vektordatenbank kombinieren
🔑 Erforderliche API Keys¶
| Dienst | Pflicht | Zweck |
|---|---|---|
| Hugging Face Access Token | ✅ erforderlich | Herunterladen des Embedding-Modells zur lokalen Ausführung |
| Groq API Key | optional | Nutzung der Groq LLM-API |
| OpenAI API Key | optional | Nutzung der OpenAI LLM-API |
Wenn weder Groq- noch OpenAI-Key gesetzt sind, nutzt LLMClient automatisch Ollama (funktioniert nur lokal und nicht in Google Colab).
🦮 Hugging Face Access Token erstellen¶
Der Hugging Face Access Token wird benötigt, um auf Embedding-Modelle und andere KI-Modelle aus der Hugging Face Model Hub zuzugreifen, die zur Berechnung der Satz-Embeddings verwendet werden. Diese werden von dem Model Hub heruntergeladen und lokal ausgeführt.
-
Erstelle kostenlosen Account bei https://huggingface.co/ oder logge dich ein (falls nötig).

- Klicke auf die Schaltfläche „Create new token“

- Gib einen Namen ein (z. B.
colab-rag) und wähle Type: Write

- Kopiere den angezeigten Token (beginnt meist mit
hf_...).
⚡️ Groq API Key erstellen¶
Der Groq API Key ermöglicht den Zugriff auf öffentlich verfügbare LLMs, die für besonders schnelle Textgenerierung und Beantwortung von Fragen im RAG-Workflow eingesetzt werden können. Diese LLMs werden in der GroqCloud ausgeführt.
- Erstelle kostenlosen Account bei https://groq.com/ oder logge dich ein (falls nötig).
- Besuche https://console.groq.com/keys
- Klicke auf „Create API Key“

- Kopiere den Schlüssel (beginnt meist mit
groq_...).
🔮 OpenAI API Key erstellen¶
Der OpenAI API Key erlaubt die Nutzung von OpenAI-Modellen (z. B. GPT-4 oder GPT-4o), um kontextbezogene Antworten im Retrieval-Augmented-Generation-System zu erzeugen.
- Melde dich bei https://platform.openai.com/account/api-keys an

- Klicke auf „Create new secret key“

- Kopiere den Key (beginnt meist mit
sk-...).
Google Gemini API Key erstellen¶
- Besuche Google AI Studio
- Klicke auf "Get API Key" oder "Create API Key"
- Wähle ein Google Cloud Projekt oder erstelle ein neues
- Kopiere den generierten API Key (beginnt mit
AIzaSy...)
Hinweis: Die Gemini API wird über den OpenAI-Kompatibilitätsmodus angesprochen, benötigt deshalb nur das openai Python-Package.
☁️ API Keys als Secrets in Google Colab hinterlegen¶
- Klicke im Menü links auf das Schlüssel-Symbol 🔑

- Lege folgende Secrets an:
| Name | Wert |
|---|---|
HF_TOKEN |
dein Hugging Face Access Token |
GROQ_API_KEY |
(optional) dein Groq API Key |
OPENAI_API_KEY |
(optional) dein OpenAI API Key |
⚙️ Nutzung von LLMClient im Notebook¶
from llm_client import LLMClient
# LLMClient erkennt automatisch, welche Keys gesetzt sind
client = LLMClient()
print("Verwendete API:", client.api_choice)
print("Modell:", client.llm)
Falls kein Groq- oder OpenAI-Key gefunden wird, fällt der Client automatisch auf Ollama zurück (lokaler Betrieb).
Ressourcen zu RAG¶
Coursera Kurs zu Retrieval Augmented Generation (RAG) von DeepLearning.AI
🧩 Lizenz¶
Dieses Notebook ist Teil des Repositories dgaida/llm_client. © 2025 – Daniel Gaida, Technische Hochschule. Lizenziert unter der MIT License.