> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ouraicalling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Wissensdatenbank (RAG)

> Lass Assistenten anhand deiner Dokumente per Retrieval-Augmented Generation antworten

Eine Wissensdatenbank macht deine Dokumente **während eines laufenden Anrufs** durchsuchbar. Fragt der Anrufer etwas, das dein Material abdeckt – Preise, Richtlinien, Öffnungszeiten, Produktdetails –, ruft der Assistent die passenden Passagen ab und antwortet daraus, statt zu raten.

## Selbstlernende FAQ (Beta)

Öffne eine Wissensdatenbank und wähle **FAQ (Beta)**. Unter **Einträge** liegen freigegebene Frage-Antwort-Paare; ein manuell gespeicherter Eintrag wird sofort gemeinsam mit Dokumenten und Websites indexiert. Im **Postfach** landen Faktenfragen, für die der Assistent eine Wissenssuche ohne relevanten Treffer abgeschlossen hat.

Agent-generierte Antworten werden nie automatisch veröffentlicht. Prüfe und korrigiere den Vorschlag und wähle **Freigeben & veröffentlichen**. Jeder Eintrag verlinkt auf den eigenen History-Datensatz, ohne Infrastruktur-, Modell- oder Providerdetails über die Public API offenzulegen.

Pro Assistent steht unter **Einstellungen → Allgemein → Umgang mit Wissenslücken (Beta)** zur Wahl: aus, nur Fragen sammeln, internen Entwurf zur Prüfung erstellen oder eine ausdrücklich vorläufige Antwort teilen. Auch vorläufig geteilte Antworten müssen menschlich freigegeben werden.

Beta Features müssen im Workspace aktiviert und eine Wissensdatenbank am Assistenten ausgewählt sein. Gesprächsentwürfe folgen der Workspace-Aufbewahrung; freigegebenes FAQ-Wissen bleibt bis zur Löschung erhalten.

## Wie es funktioniert

1. **Lade** Dokumente in eine Wissensdatenbank hoch: PDF, Word (DOCX), HTML oder reiner Text.
2. Die Plattform **extrahiert den Text, teilt ihn in überlappende Chunks** (\~500 Tokens) und berechnet Vektor-Embeddings.
3. Jedes Dokument durchläuft eine Statuskette: `processing → ready` (oder `error` mit einer Fehlermeldung). Aktualisierst du ein Dokument, wird es automatisch neu indexiert.
4. Verknüpfe die Wissensdatenbank mit einem Assistenten. Während Anrufen bekommt der Assistent ein `search_knowledgebase`-Tool und nutzt es, sobald die Frage es erfordert.
5. Der Abruf erfolgt semantisch (Vektor-Ähnlichkeit) – Anrufer müssen also nicht exakt den Wortlaut deines Dokuments treffen.

<Note>
  Während der Assistent sucht, kann er eine kurze Füllphrase sagen („Lass mich das kurz nachschauen…"), damit der Anrufer nie in Stille hängt. Jede Suche wird als Anrufereignis erfasst und ist in der Anrufdetailansicht sichtbar.
</Note>

## Wissensdatenbank erstellen

<Steps>
  <Step title="Erstellen">
    Gehe zu **Wissensdatenbanken → Neu**, vergib einen Namen und eine kurze Beschreibung. Die Beschreibung sieht der Assistent – formuliere sie wie einen Hinweis: *„Preise, Öffnungszeiten und Stornobedingungen der Beispiel GmbH."*
  </Step>

  <Step title="Dokumente hochladen">
    Ziehe PDFs, DOCX-, HTML- oder Textdateien hinein. Warte, bis jedes den Status **ready** erreicht.
  </Step>

  <Step title="Suche testen">
    Nutze die integrierte **Testsuche**, um Beispielfragen gegen den Index laufen zu lassen und zu prüfen, welche Chunks zurückkommen – bevor es ein echter Anrufer tut.
  </Step>

  <Step title="Mit einem Assistenten verknüpfen">
    Wähle im Assistenten-Editor die Wissensdatenbank aus. Fertig – am Prompt musst du nichts ändern.
  </Step>
</Steps>

## Dokumente schreiben, die sich gut abrufen lassen

* Bevorzuge **in sich abgeschlossene Abschnitte**: eine Überschrift plus die Fakten darunter. Chunks werden einzeln abgerufen, jeder Abschnitt sollte also für sich allein verständlich sein.
* Schreibe **Zahlen und Bedingungen in den Fließtext**, nicht nur in Tabellen, die über mehrere Seiten verteilt sind.
* Vermeide doppelte, widersprüchliche Dokumente – bei der Suche tauchen sonst beide auf.
* Halte nach Möglichkeit ein Thema pro Dokument (pricing.pdf, faq.pdf, policy.pdf).

## Eine Website crawlen

Statt Dateien einzeln hochzuladen, kannst du eine Wissensdatenbank auf eine **Website** zeigen lassen und den Crawler die Seiten für dich einsammeln lassen. Jede gecrawlte Seite wird zu einem Wissensdokument und genauso indexiert wie ein Upload.

<Steps>
  <Step title="Crawl-Quelle hinzufügen">
    Füge in der Wissensdatenbank eine **Crawl-Quelle** mit einer **Root-URL** hinzu (z. B. `https://example.com/docs`). Schränke sie optional auf Pfad-Präfixe ein (**Include Paths**, z. B. `/docs`), schließe unerwünschte Bereiche mit **Exclude Paths** aus (z. B. `/admin`), und lege ein Limit für **maximale Seiten** fest (1–500, Standard 50).
  </Step>

  <Step title="Ausführen">
    Starte einen Crawl. Der Crawler liest zuerst `robots.txt`, entdeckt dann Seiten über `sitemap.xml` (oder folgt ersatzweise Links auf demselben Host ausgehend von der Root-Seite), extrahiert den Haupttext jeder Seite und indexiert ihn.
  </Step>

  <Step title="Aktuell halten (optional)">
    Aktiviere **Auto-Sync** und ein **Sync-Intervall** (in Stunden). Die Plattform crawlt die Website dann nach Zeitplan erneut. Seiten ohne inhaltliche Änderung werden automatisch übersprungen – kein erneutes Embedding, keine zusätzlichen Kosten.
  </Step>
</Steps>

<Note>
  Website-Crawling und Auto-Sync sind **Plan-Features** (müssen in deinem Plan freigeschaltet sein) und werden als **Credits pro gecrawlter Seite** abgerechnet (nur neue oder geänderte Seiten zählen). Ein erneuter Crawl einer unveränderten Website ist praktisch kostenlos. Geht dein Guthaben mitten im Crawl zur Neige, stoppt der Lauf sauber – bereits abgerufene Seiten bleiben erhalten, und die Quelle zeigt den Status `error` mit der Meldung *insufficient credits*.
</Note>

### Crawler-Grenzen

* **Nur statisches HTML** – kein JavaScript-Rendering. Single-Page-Apps, die Inhalte clientseitig rendern (ohne serverseitiges HTML), liefern wenig bis gar keinen Text.
* **Nur derselbe Host.** Links zu anderen Domains werden nicht verfolgt.
* **Nur Textseiten** – Nicht-HTML-Antworten und Seiten über 2 MB werden übersprungen. Verlinkte Dateien (PDFs etc.) werden beim Crawl nicht heruntergeladen; füge sie stattdessen als Dokument-URLs hinzu.
* **Rücksichtnahme**: höchstens 2 parallele Anfragen mit kurzer Verzögerung, und `Disallow`-Regeln aus `robots.txt` werden respektiert.

## Limits und Pläne

Die Anzahl der Wissensdatenbanken pro Konto ist ein Plan-Limit (`max_knowledgebases`). Website-Crawling kostet Credits pro gecrawlter Seite (siehe Hinweis oben).

Jede Wissensdatenbank hat zusätzlich feste Ressourcen-Caps:

| Ressource                              | Limit                                            |
| -------------------------------------- | ------------------------------------------------ |
| Dateien                                | 25 pro Knowledge Base (je max. 20 MB)            |
| URLs (Einzelseiten + gecrawlte Seiten) | 500                                              |
| Text-Snippets                          | 50                                               |
| CSV / TSV                              | 1.000 Zeilen und 50 Spalten                      |
| Crawl-Exclude-Pfade                    | 200 pro Quelle, 500 insgesamt pro Knowledge Base |
