# Suche nach Bedeutung

> Wie nexxus aus Wissenseinträgen, Dokumentinhalten und Gesprächen Embeddings macht, damit der KI-Assistent Dinge nach ihrer Bedeutung findet. Embedding-Modell wählen, Dokumente importieren, neu indexieren, abschalten und die Grenzen kennen.

Tom Keller fragt den KI-Assistenten: „Wie viele Urlaubstage habe ich bei einer Vier-Tage-Woche?“ Diesen Satz enthält das Mitarbeiterhandbuch nicht. Es hat einen Abschnitt „Urlaubsanspruch bei reduzierter Arbeitszeit“. Eine Suche nach Wörtern geht daran vorbei. Eine Suche nach Bedeutung findet ihn, weil beide vom selben sprechen.

Dafür macht nexxus aus Text **Embeddings**: lange Zahlenreihen (Vektoren), die Texte mit ähnlicher Bedeutung nahe beieinander ablegen. Eine deutsche Frage findet dann ein englisches Dokument, „PDF kaputt“ findet „PDF upload failure“, und eine Umschreibung findet das Original. Diese Seite erklärt, was nexxus einbettet, welches Modell die Arbeit macht und was Sie steuern können.

## So funktioniert es

<Flow
  steps={[
    { icon: 'file-text', title: 'Text kommt an', text: 'Ein Wissenseintrag wird gespeichert oder ein Dokument in Dateien hochgeladen.' },
    { icon: 'scissors', title: 'Zerlegen', text: 'Dokumente werden an ihren Überschriften in Abschnitte geteilt.', tone: 'neutral' },
    { icon: 'scatter-chart', title: 'Einbetten', text: 'Das Embedding-Modell macht aus jedem Abschnitt einen Vektor.', tone: 'cyan' },
    { icon: 'database', title: 'Speichern', text: 'nexxus legt die Vektoren in PostgreSQL mit pgvector ab.', tone: 'lavender' },
    { icon: 'search', title: 'Finden', text: 'Der KI-Assistent vergleicht eine Frage mit den Vektoren und prüft die Rechte.' },
  ]}
  caption="Das Embedding-Modell läuft bei Ihrem KI-Anbieter. Die Vektoren bleiben in Ihrer nexxus-Datenbank."
/>

## Was eingebettet wird

| Inhalt | Wann | Wer ihn finden kann |
|---|---|---|
| Einträge in <Ui>KI-Wissen</Ui> (Name, Beschreibung und Inhalt) | Nach jedem Speichern. Aus einem Dokument importierte Abschnitte erst, wenn Sie <Ui>Embeddings generieren</Ui> ausführen. | Alle, für die der Eintrag sichtbar ist: <Ui>Persönlich</Ui> (nur wer ihn angelegt hat), <Ui>Geschäftsbereich</Ui> (die Einheit und ihre Unter-Einheiten) oder <Ui>Unternehmen</Ui> (alle) |
| Der Inhalt von Dokumenten in Dateien | Beim Hochladen, bei jeder neuen Version und wenn aus einem Entwurf eine Version wird | Nur Personen, die das Dokument mindestens ansehen dürfen. nexxus prüft das bei jeder Suche je Dokument. |
| Eine laufende Zusammenfassung jedes Gesprächs | Immer, wenn sich die Zusammenfassung ändert | Nur der Avatar, mit dem das Gespräch geführt wurde, und nur für die Person, die es geführt hat |

Die Zusammenfassungen sorgen dafür, dass sich ein Avatar an frühere Gespräche erinnert („Was hatten wir mit der Nordwind AG zum Relaunch vereinbart?“). Mit Suche meinen die meisten das Wissen und die Dokumente.

## Wie der KI-Assistent sucht

**Wissen** durchsucht nexxus auf zwei Wegen zugleich: nach Bedeutung (Ähnlichkeit der Vektoren) und nach Wörtern (Volltextsuche von PostgreSQL). Die beiden Trefferlisten führt nexxus über ihre Rangfolge zusammen. So finden eine wörtlich kopierte Fehlermeldung und eine lose Umschreibung beide ihren Eintrag. Ist der Embedding-Anbieter nicht erreichbar, antwortet die Wortsuche trotzdem.

Einträge, die in Antworten tatsächlich geholfen haben, rücken bei späteren Suchen nach vorn. Dieser Vorsprung schwindet um ein Prozent je Tag ohne Nutzung. Wissen, das niemand mehr braucht, sinkt so wieder ab.

Die Wissenssuche läuft in jedem Gespräch von selbst, in dem der Connector <Ui>Unternehmenswissen</Ui> aktiv ist. Er ist ab Werk installiert und aktiv. Schaltet jemand ihn in einem Gespräch aus, durchsucht der KI-Assistent dort kein Wissen. Siehe [Connectoren](/de/plugins/overview/).

**Dokumentinhalte** sucht der KI-Assistent nur nach Bedeutung. Er holt mehr Kandidaten als nötig, verwirft jeden Abschnitt aus einem Dokument, das die Person nicht ansehen darf, und gibt den Rest zurück.

## Bevor Sie beginnen

- Ein Anbieter mit einem Embedding-Modell ist angebunden und aktiv. Siehe [KI anbinden](/de/setup/connect-ai/).
- Für die Wahl des Modells brauchen Sie den Rechteblock <Ui>KI-Provider</Ui> mit <Ui>Schreiben</Ui>. Zum Ein- und Ausschalten der Embeddings brauchen Sie die Rolle Administrator.

## Das Embedding-Modell wählen

Das Embedding-Modell muss Vektoren mit genau **1536 Dimensionen** liefern, denn so groß sind die Vektorspalten in der Datenbank. `text-embedding-3-small` von OpenAI tut das. Modelle, die ihre Ausgabe kürzen können, etwa `text-embedding-3-large`, gehen auch, weil nexxus 1536 anfordert.

Wählen Sie nichts, nimmt nexxus `text-embedding-3-small` über Ihren OpenAI-Anbieter. Haben Sie keinen OpenAI-Anbieter, wählen Sie ein Modell ausdrücklich, sonst wird nichts eingebettet.

<Steps>

1. Öffnen Sie <MenuPath to="KI > KI einrichten > KI-Provider" /> und klicken Sie auf den Anbieter, der das Embedding-Modell hat.

2. Klicken Sie auf <Ui>Modelle synchronisieren</Ui>, falls der Anbieter das Modell seit dem letzten Abgleich neu hat. Der Reiter <Ui>Embeddings</Ui> erscheint, sobald der Anbieter mindestens ein Embedding-Modell hat.

3. Öffnen Sie <Ui>Embeddings</Ui> und schalten Sie beim Modell <Ui>Verwenden</Ui> ein. Liegt die Auswahl bei einem anderen Anbieter, sagt der Reiter das, und Ihre Wahl ersetzt sie.

   <Screenshot src={shot_ai_embeddings_tab} url="/ai-providers/openai" alt={"Der Reiter Embeddings mit dem gewählten Embedding-Modell"} caption={"Ein Embedding-Modell gilt für den ganzen Arbeitsbereich."} />

4. Klicken Sie auf <Ui>Speichern</Ui>. Ändert sich damit das Modell, mit dem Ihr Arbeitsbereich einbettet, fragt nexxus vorher: <Ui>Embedding-Modell wechseln?</Ui> Bestätigen Sie mit <Ui>Wechseln und neu berechnen</Ui>.

   <Screenshot src={shot_ai_embeddings_switch_dialog} url="/ai-providers/openai" alt={"Die Rückfrage vor dem Wechsel des Embedding-Modells"} caption={"Nach dem Wechsel berechnet nexxus jeden Vektor neu."} />

</Steps>

Vor dem Speichern bettet nexxus einen kurzen Testtext mit dem neuen Modell ein. Hat der Anbieter keinen nutzbaren Schlüssel oder haben die Vektoren die falsche Größe, lehnt nexxus das Speichern ab und nennt den Grund (siehe [Wenn etwas nicht klappt](#wenn-etwas-nicht-klappt)). Es ändert sich dann nichts.

## Wechselt das Modell, wird alles neu berechnet

Vektoren aus zwei verschiedenen Modellen lassen sich nicht vergleichen. Ändert sich das wirksame Embedding-Modell Ihres Arbeitsbereichs, verwirft nexxus deshalb alle gespeicherten Vektoren und berechnet sie aus dem gespeicherten Text neu, für Wissenseinträge und für Dokumentabschnitte. Die Dokumente selbst liest nexxus dafür nicht neu ein; neu sind nur die Vektoren.

Das passiert, wenn Sie ein anderes Modell wählen, wenn Sie den Anbieter mit der Auswahl löschen und wenn Sie ihn ausschalten. Bis die Neuberechnung durch ist, findet die Suche nach Bedeutung weniger. Sie kostet einen Embedding-Aufruf je Wissenseintrag und je Dokumentabschnitt. Hat das Modell einen Preis, sehen Sie das auf der Nutzungsseite.

## Dokumente in KI-Wissen importieren

Ein Handbuch in Dateien hochzuladen macht es für die Personen durchsuchbar, die es sehen dürfen. Soll es Teil des Unternehmenswissens werden, mit eigener Sichtbarkeit und dem Vorsprung für nützliche Einträge, importieren Sie es in <Ui>KI-Wissen</Ui>.

<Steps>

1. Öffnen Sie <MenuPath to="KI > Mit KI arbeiten > KI-Wissen" />.

2. Klicken Sie auf <Ui>Dokument importieren</Ui> und wählen Sie die Datei.

3. Ein Dialog fragt nach der <Ui>Kategorie für die importierten Abschnitte</Ui>. Vorgabe ist <Ui>Allgemein</Ui>. Tragen Sie etwas ein, das die Abschnitte bündelt, zum Beispiel „Personal“, und klicken Sie auf <Ui>Importieren</Ui>.

   <Screenshot src={shot_ai_knowledge_import} url="/ai-knowledge" alt={"Der Importdialog mit der Frage nach der Kategorie"} caption={"Die Kategorie bündelt die Abschnitte des importierten Dokuments."} />

4. Eine Meldung bestätigt, dass der Import läuft. Nach kurzer Zeit erscheinen die Abschnitte in der Liste, mit dem Typ <Ui>Dokument-Abschnitt</Ui>.

5. Klicken Sie auf <Ui>Embeddings generieren</Ui>. nexxus bettet jeden Eintrag ohne Vektor ein. Die Meldung kommt vom Server auf Englisch: „Bulk vectorization started for 12 items“ (mit Ihrer Zahl, die Vektorisierung läuft) oder „All knowledge items are already vectorized“ (es gibt nichts zu tun).

</Steps>

Auf der Detailseite zeigt jeder Eintrag, ob er <Ui>Vektorisiert</Ui> oder <Ui>Nicht vektorisiert</Ui> ist, und unter <Ui>Abruf-Statistik</Ui>, wie oft der KI-Assistent ihn gefunden und genutzt hat.

<Screenshot src={shot_ai_knowledge_list} url="/ai-knowledge" alt={"Die Wissensliste mit ihrer Aktionsleiste"} caption={"Dokument importieren und Embeddings generieren sitzen in der Aktionsleiste unten."} />

:::tip[Regeln, die immer gelten]
Ein Eintrag mit <Ui>Immer im Prompt</Ui> auf <Ui>In jedem Prompt</Ui> geht in jedes Gespräch ein, ob die Suche ihn findet oder nicht. Nutzen Sie das nur für kurze Regeln, die alle befolgen müssen. Lange Einträge in jedem Prompt machen jede Antwort langsamer und teurer, und genau das soll die Suche nach Bedeutung vermeiden.
:::

## Neu indexieren

| Lage | Was zu tun ist |
|---|---|
| Sie haben das Embedding-Modell gewechselt | Nichts. nexxus berechnet alle Vektoren von selbst neu. |
| Wissenseinträge zeigen <Ui>Nicht vektorisiert</Ui> | Klicken Sie in <Ui>KI-Wissen</Ui> auf <Ui>Embeddings generieren</Ui>. |
| Ein Dokument in Dateien hat sich geändert | Nichts. Jede neue Version wird neu zerlegt und eingebettet. |
| Dokumente stammen aus der Zeit vor der Inhaltssuche | Ihr Betreiber kann das Nachholen anstoßen: `POST /api/dms-document/reindex-content` indexiert jedes Dokument des Arbeitsbereichs, das noch keine Abschnitte hat. Das läuft im Hintergrund und überspringt erledigte Dokumente. |
| Dokumente wurden hochgeladen, während Embeddings aus waren | Ihre Abschnitte gibt es, aber ohne Vektoren. Vektoren bekommen sie mit der nächsten Version oder beim Wechsel des Embedding-Modells. |

## Embeddings ausschalten

Manche Unternehmen wollen keinen Text an einen Embedding-Anbieter geben. Sie können Embeddings für Ihren Arbeitsbereich ausschalten.

<Steps>

1. Öffnen Sie <MenuPath to="Administration > Betrieb > Systemkonfiguration" />.

2. Stellen Sie im Abschnitt <Ui>KI-Embeddings</Ui> den Schalter <Ui>Embeddings (Vektorisierung) aktivieren</Ui> auf <Ui>Ausgeschaltet</Ui>.

   <Screenshot src={shot_ai_system_config_embeddings} url="/system-config" alt={"Die Abschnitte für Embeddings und KI-Kosten in der Systemkonfiguration"} caption={"Ausgeschaltet geht kein Text an einen Embedding-Anbieter."} />

3. Klicken Sie auf <Ui>Speichern</Ui>. Die Einstellung greift nach wenigen Sekunden, ohne Neustart.

</Steps>

Was sich mit ausgeschalteten Embeddings ändert:

- Kein Text geht mehr zum Einbetten hinaus. Wissenseinträge und Dokumentabschnitte werden weiter gespeichert, nur ohne Vektor.
- Eine laufende Neuberechnung hält beim nächsten Eintrag an.
- Die Wissenssuche arbeitet über ihre Wortsuche weiter.
- Die Suche des KI-Assistenten im Inhalt von Dokumenten findet nichts mehr, weil sie nur nach Bedeutung sucht.
- Avatare erinnern sich an frühere Gespräche nur noch über die Wortsuche.

Das Wiedereinschalten berechnet nichts von selbst. Für Wissenseinträge nutzen Sie <Ui>Embeddings generieren</Ui>.

:::note[Vom Betrieb gesperrt]
Hat Ihr Betreiber Embeddings für die ganze Installation abgeschaltet (`AI_EMBEDDINGS_ENABLED=false`), zeigt die Systemkonfiguration einen Hinweis, der mit „Embeddings sind vom Betrieb gesperrt“ beginnt, und der Schalter lässt sich nicht einschalten. Ihre gespeicherte Einstellung gilt wieder, sobald die Sperre aufgehoben ist.
:::

## Die Vektoren ansehen

Administratoren öffnen <MenuPath to="KI > KI einrichten > Vektor-Viewer" /> und sehen die Vektorspalten der Chat-Zusammenfassungen, der Dokumenttexte und der Wissenseinträge: wie viele Zeilen Ihre Organisation darin hat und wie viele davon schon einen Vektor tragen. Zeilen und Treffer zeigen nur, was Sie auch sonst in der Anwendung sehen dürfen, Dokumenttext also nur aus Dokumenten, die Sie öffnen dürfen. Der Reiter <Ui>Suche</Ui> startet eine <Ui>Ähnlichkeitssuche</Ui>: <Ui>Suchtext</Ui> eingeben, <Ui>Max. Ergebnisse</Ui> wählen, auf <Ui>Suchen</Ui> klicken. Jeder Treffer zeigt seine <Ui>Ähnlichkeit</Ui>. So prüfen Sie schnell, ob ein neues Embedding-Modell findet, was Sie erwarten.

<Screenshot src={shot_ai_vector_viewer} url="/vectorViewer" alt={"Der Vektor-Viewer mit einer Ähnlichkeitssuche"} caption={"Ein schneller Test, ob das Embedding-Modell findet, was Sie erwarten."} />

## Was im Hintergrund passiert

- **Text auslesen.** nexxus schickt Dokumente an einen Docling-Dienst, der den Text ausliest, bei gescannten Seiten mit Texterkennung. Welcher Docling-Dienst das ist, legt Ihr Betreiber fest (Einstellung `docling.api.url`). Dürfen Dokumente Ihr Netz nicht verlassen, betreiben Sie Docling selbst.
- **Zerlegen.** Ein Abschnitt beginnt an jeder Überschrift. Nach etwa 2000 Zeichen schließt nexxus ihn und setzt mit derselben Überschrift und dem Zusatz „(continued)“ fort. Bruchstücke unter 50 Zeichen fallen weg.
- **Über das Gateway.** nexxus ruft den Embedding-Anbieter nie direkt auf. Es fragt das AI-Gateway, das Modell und Schlüssel Ihres Arbeitsbereichs nimmt.
- **Fehler halten die Arbeit nicht auf.** Scheitert das Einbetten für einen Eintrag oder Abschnitt, speichert nexxus ihn trotzdem, nur ohne Vektor. Der nächste Lauf von <Ui>Embeddings generieren</Ui> oder die nächste Version versucht es erneut.
- **Speicherung.** PostgreSQL mit der Erweiterung pgvector. Wissenseinträge und Dokumentabschnitte liegen mit Absicht in getrennten Tabellen: Dokumentinhalte gibt nexxus nur nach einer Rechteprüfung je Dokument heraus.

## Grenzen

- Die Vektorgröße ist fest 1536. Ein Embedding-Modell mit anderer Größe lässt sich nicht wählen. Damit fallen viele kleine Modelle weg, die Sie auf eigenen Servern betreiben könnten.
- Gespräche aus der Zeit, bevor ein Avatar ein Gedächtnis hatte, bekommen nachträglich keinen Vektor. Die Wortsuche findet sie trotzdem.
- Ein Wechsel des Embedding-Modells kostet einen Embedding-Aufruf je Eintrag und Abschnitt des ganzen Arbeitsbereichs.
- Chat, Sprache und Bilderzeugung hängen nicht an Embeddings. Ausgeschaltete Embeddings betreffen nur die Suche.

## Wenn etwas nicht klappt

| Meldung oder Anzeichen | Ursache und Abhilfe |
|---|---|
| Speichern scheitert mit „Embedding API error: Embedding model ... returns 768 dimensions, the vector store needs 1536.“ | Das Modell liefert Vektoren in der falschen Größe. Wählen Sie ein Modell mit 1536 Dimensionen. |
| Speichern scheitert mit einer Meldung, die `No usable provider` enthält | Der Anbieter dieses Modells ist ausgeschaltet oder hat keinen Schlüssel. Prüfen Sie <Ui>Provider aktiv</Ui> und <Ui>Zugangsdaten</Ui>. |
| Die Suche im Vektor-Viewer meldet <Ui>Embeddings sind deaktiviert</Ui> | Embeddings sind in der Systemkonfiguration ausgeschaltet oder vom Betrieb gesperrt. |
| Importierte Abschnitte erscheinen nie | Docling konnte die Datei nicht umwandeln. Der Grund steht im Server-Log; versuchen Sie ein anderes Format oder fragen Sie Ihren Betreiber. |
| Viele Einträge bleiben nach <Ui>Embeddings generieren</Ui> <Ui>Nicht vektorisiert</Ui> | Die Embedding-Aufrufe scheitern. Prüfen Sie den Embedding-Anbieter mit <Ui>Verbindung testen</Ui> und ob Embeddings eingeschaltet sind. |
| Die Suche findet weniger als vorher | Ein Modellwechsel rechnet noch. Warten Sie und prüfen Sie im Vektor-Viewer den Anteil der Zeilen mit Vektor. |
| Der KI-Assistent findet nichts in Dokumenten | Embeddings sind aus, das Dokument wurde hochgeladen, während sie aus waren, oder die Person darf das Dokument nicht ansehen. |

## Wie es weitergeht

<CardGrid>
  <LinkCard title="KI anbinden" description="Anbieter, Modelle und die übrigen Modellzwecke." href="/de/setup/connect-ai/" />
  <LinkCard title="Mit dem KI-Assistenten arbeiten" description="Wie Quellen unter den Antworten des KI-Assistenten erscheinen." href="/de/use/assistant/" />
  <LinkCard title="Dateien" description="Wo Dokumente liegen und wer sie sehen darf." href="/de/use/files/" />
</CardGrid>