Funktionsweise
Minaya ist ein retrieval-augmentiertes System. Es wird kein Modell feinabgestimmt und kein Modell mit Ihren Daten trainiert — Ihre Inhalte werden gespeichert, indexiert und zum Zeitpunkt der Frage durchsucht.
Ingestion
Wenn Sie eine Quelle hinzufügen, führt ein Hintergrundjob Folgendes aus:
- Text extrahieren — crawlt die URL, parst das PDF oder übernimmt Ihren eingefügten Text.
- In Abschnitte zerlegen — in Stücke von ca. 600 Token mit ca. 100 Token Überlappung, damit ein Satz, der über eine Grenze hinweg geteilt ist, weiterhin auffindbar bleibt.
- Jeden Abschnitt einbetten in einen Vektor.
- Speichern der Abschnitte und Vektoren in Postgres über pgvector.
Die Ingestion läuft in einem separaten Worker-Prozess, getrennt von der API. Verlassen Quellen nie den Status
pending, läuft dieser Worker nicht.
Eine Frage beantworten
- Die Nachricht des Besuchers wird mit demselben Modell eingebettet wie Ihre Inhalte.
- Die ähnlichsten Abschnitte werden per Kosinus-Ähnlichkeit abgerufen.
- Schwache Treffer werden verworfen. Ist selbst der beste Treffer noch zu schwach, gilt die Frage als nicht abgedeckt.
- Die verbleibenden Abschnitte bilden den Kontext, und das Modell wird angewiesen, ausschließlich daraus zu antworten.
- Sind MCP-Server verbunden, kann das Modell vor der Antwort ein Tool aufrufen.
Embedding- und Chat-Anbieter
Welcher Anbieter zum Einsatz kommt, hängt davon ab, ob das Unternehmen einen eigenen Schlüssel hinterlegt hat, und welchen — die Entscheidung fällt pro Anfrage, nicht beim Kauf.
Sie können den Tarif mit eigenem API-Schlüssel wählen und den Schlüssel später hinzufügen, aber das Widget antwortet erst, sobald der Schlüssel gespeichert ist: Dieser Tarif schließt die Inferenz aus, daher stellen wir dafür kein eigenes Modell bereit. Das Dashboard weist auf der Übersichtsseite darauf hin, solange kein Schlüssel hinterlegt ist.
| Anbieter | Wann | Chat | Embeddings |
|---|---|---|---|
| OpenAI | Unternehmen hat einen OpenAI-Schlüssel hinterlegt | gpt-4o | text-embedding-3-large (1536-dim) |
| Anthropic | Unternehmen hat einen Claude-Schlüssel hinterlegt | claude-sonnet-5 | Cloudflare bge-base-en-v1.5 (768-dim) |
| Cloudflare | Kein Schlüssel (kostenlose Stufe) | llama-3.1-8b-instruct | bge-base-en-v1.5 (768-dim) |
Anthropic bietet keine Embeddings-API, daher wird ein Claude-Unternehmen über Cloudflare indexiert und gegen die 768-dimensionale Spalte durchsucht — denselben Weg, den auch ein Unternehmen ohne Schlüssel nimmt. Diese Embedding-Kosten übernehmen wir, statt einen zweiten Schlüssel zu verlangen. Claude beantwortet den Chat, worauf im Wesentlichen die gesamten Kosten entfallen.
Beide erzeugen unterschiedlich große Vektoren, weshalb sie in separaten Spalten gespeichert und nie miteinander verglichen werden.
Das Hinzufügen oder Entfernen eines Schlüssels ändert, welche Spalte durchsucht wird. Inhalte, die auf der kostenlosen Stufe erfasst wurden, werden nicht automatisch neu eingebettet — fügen Sie Ihre Quellen nach dem Wechsel erneut hinzu oder crawlen Sie sie neu.
Sitzungslimits
- 50 Nachrichten pro Chat-Sitzung.
- 10 MCP-Tool-Aufrufe pro Sitzung, separat gezählt.
- 2.000 Zeichen pro Besuchernachricht (das Widget begrenzt die Eingabe auf 500).
Unternehmen auf der kostenlosen Stufe unterliegen zudem einem täglichen Nachrichtenlimit. Die übrigen Sicherheitsmechanismen finden Sie unter Sicherheit.