Zum Inhalt springen
XICBOT

Einstellungen

English
Dokumentation · Schnittstelle (API)

Schnittstelle: Wissen und Assistenten

Wege der App-Schnittstelle für Wissensquellen, Suche, Prüfsatz, Einrichtung, Assistenten, Abnahmeprüfungen und Werkzeuge, mit Feldern, Rollen und Fehlern.

In einfacher Sprache

Über diese Wege verwaltet die Anwendung das Wissen und die Assistenten. Sie legen Quellen für das Wissen an. Sie pflegen Paare aus Frage und Antwort. Sie prüfen, wie gut die Suche trifft. Sie richten einen Assistenten aus Ihrer Website ein. Sie verwalten Assistenten, ihre Fassungen und den Code zum Einbau. Für jeden Weg müssen Sie in der Anwendung angemeldet sein.

Stand

Alle Themen der Dokumentation

Diese Seite beschreibt die Wege der App-Schnittstelle, über die Sie Wissensquellen, Frage-Antwort-Paare, den Prüfsatz der Suche, die Einrichtung aus der eigenen Website, Assistenten samt Fassungen und Einbaucode, Abnahmeprüfungen und Werkzeuge verwalten. Jeder Weg liegt unter /api/v1/ und verlangt eine Anmeldung an der App. Für Anbindungen mit einem API-Schlüssel gilt Integration.

Zugang, Rollen und Drosseln

Alle Wege dieser Seite verlangen eine gültige Anmeldung, wie sie Anmeldung beschreibt, ein aktives Konto und eine bestätigte E-Mail-Adresse. Lesen darf jede Rolle; auch Suche und Probefrage sind für jede Rolle offen, weil sie nichts schreiben. Jede Änderung am Bestand verlangt mindestens die Rolle Bearbeiten. Einen Assistenten löschen und seinen öffentlichen Schlüssel tauschen darf erst die Rolle Verwaltung.

Rolle in der AppKennungRang
Lesenviewer10
Bearbeiteneditor20
Verwaltungadmin30
Inhaberowner40

Wer welche Rolle bekommt, steht unter Team und Rollen.

Drosseln

Einige Wege tragen eine benannte Drossel. Sie zählt je angemeldeter Person und Minute; wer darüber liegt, bekommt 429. Die allgemeinen Regeln stehen unter Grenzen.

DrosselAnfragen je MinuteWege
knowledge-sources20Quelle anlegen, neu einlesen, Fassung zurückholen, Vektoren nachbauen, Einrichtung starten
knowledge-search60POST /knowledge/search
knowledge-ask30POST /knowledge/ask
knowledge-probes6POST /knowledge/probes/run
knowledge-tune2POST /knowledge/probes/tune
assistants30Assistent anlegen und ändern, Fassungen, Schlüssel tauschen, Abnahme starten und Prüffragen anlegen oder ändern, Werkzeuge anlegen und ändern

Gemeinsame Fehler

StatusKennungBedeutung
403email_unverifiedDie E-Mail-Adresse ist noch nicht bestätigt.
403no_tenant, tenant_…Kein Konto oder das Konto ist nicht aktiv; der Zusatz nennt seinen Stand.
403role_too_lowDie eigene Rolle reicht nicht; required nennt die verlangte.
402plan_limit_reachedDie Paketgrenze ist erreicht; allowed, used und plan_name nennen Grenze, Verbrauch und Paket.
503plan_limit_unmeasuredDer Verbrauch ließ sich gerade nicht messen; die Anfrage wurde nicht ausgeführt.
404not_foundDer Eintrag gehört nicht zu Ihrem Konto oder existiert nicht.
422FeldfehlerEine Angabe passt nicht zu den Regeln der Tabellen unten.
429–Die Drossel ist erschöpft.
500not_loggedDie Protokollzeile ließ sich nicht schreiben; die Änderung wurde darum nicht ausgeführt.

Wie viele Quellen, Dokumente, Abschnitte und Assistenten Ihr Paket erlaubt, steht unter Pakete und Kontingente und auf der Seite Preise.

Wissensquellen

In der App liegen die Quellen unter Wissen (app.xicbot.de/wissen). Was eine Quelle fachlich ist und wie aus ihr Antworten entstehen, erklären Wissen und Wissensaufbau und Antworten.

GET /api/v1/knowledge/sources

Listet die Quellen des Kontos, die neuesten zuerst, höchstens 200. Dazu kommen der Stand der Vektoren (vectors), der Stand der Anreicherung mit Schlüsselwörtern und Fragen (enrichment) und die Grenzen der Eingabefelder (limits).

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
Feld in limitsWertBedeutung
chunk_default_chars800Vorgabe der Abschnittsgröße in Zeichen
chunk_overlap_default_chars120Vorgabe der Überlappung in Zeichen
chunk_defaults_by_typeje Art target, overlapVorgabe je Quellenart; Dateien starten mit 1400 und 200
chunk_min_chars, chunk_max_chars200, 4000kleinste und größte einstellbare Abschnittsgröße
exclude_max_patterns50höchstens so viele Ausgeschlossene Pfade je Quelle
exclude_max_length300höchste Länge eines Musters in Zeichen
crawl_max_pages25so viele Seiten liest ein Durchgang einer Website höchstens
refresh_min_days, refresh_max_days1, 365zulässiger Bereich für refresh_days
refresh_default_daysZahlVorgabe, wenn refresh_days leer bleibt
Feld in vectors und enrichmentBedeutung
chunksZahl aller Abschnitte
embeddedAbschnitte mit fertigem Vektor (nur vectors)
enrichedangereicherte Abschnitte (nur enrichment)
pendingAbschnitte, die noch fehlen
modelKennung des Verfahrens, das die Vektoren bildet (vectors) oder die Abschnitte anreichert (enrichment)

Jede Quelle erscheint in der Liste mit diesen Feldern:

FeldBedeutung
id, type, title, createdKennung, Art, Bezeichnung, Anlagezeit
originbei Websites die Startadresse, bei Dateien der ursprüngliche Dateiname
status, errorStand der Aufnahme und gegebenenfalls der Fehler, siehe Stände
documents, chunksZahl der Dokumente und Abschnitte
version, versions_keptNummer der Fassung, die gerade antwortet, und wie viele Fassungen vorgehalten werden (5)
refresh_daysdie an der Quelle eingetragene Frist; null heißt: nichts eingetragen
last_checked, last_failedZeitpunkt der letzten Bestätigung (Zuletzt bestätigt) und des letzten Fehlschlags (Fehlgeschlagen am)
fresh, fresh_measured, fresh_reasonnur bei Websites gemessen: Aktuell oder Veraltet; sonst fresh_measured false mit Grund not_applicable, bei nie bestätigten Websites never_checked
crawl_truncated, crawl_pending, crawl_measured, crawl_reasonob der letzte Durchgang am Seitendeckel abbrach und wie viele Verweise offen blieben; Grund not_applicable bei anderen Arten, never_crawled vor dem ersten Durchgang
chunk_target, chunk_overlap, exclude_patternseigene Einstellungen der Quelle
pairsZahl der Frage-Antwort-Paare einer Quelle der Art faq
pairs_matchabledavon die aktiven Paare mit Antwort, also die, die eine Frage beantworten können; wie pairs nur in dieser Liste gezählt

Stände einer Quelle

statusIn der AppBedeutung
newneuangelegt, Aufnahme noch nicht begonnen
runningwird aufgenommendie Website wird gelesen
readyaufgenommenInhalt steht bereit
failednicht aufgenommenAufnahme gescheitert, error nennt den Grund
stalenicht mehr aktuelleine Website wurde als veraltet markiert

GET /api/v1/knowledge/sources/{id}

Liefert eine Quelle (source) mit ihren Dokumenten (documents), sortiert nach Titel, höchstens 200. Jedes Dokument trägt id, title, url, characters, is_draft, published_at und published. Entwürfe und noch nicht veröffentlichte Dokumente sind hier mit aufgeführt. documents_total nennt, wie viele Dokumente die Quelle hat, documents_limit den Deckel der Liste (200); ist documents_total größer, ist die Liste gekürzt.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

POST /api/v1/knowledge/sources

Legt eine Quelle an. Text- und Dateiquellen werden sofort aufgenommen und kommen mit 201 zurück, auch wenn die Aufnahme scheitert: dann steht die Quelle mit status failed und error. Eine Website wird im Hintergrund gelesen; die Antwort ist 202 mit der Quelle und dem Auftrag (job mit id, status, task). Eine Quelle der Art faq steht sofort bereit und bleibt leer, bis Sie Paare anlegen. Sie gibt es je Konto einmal: Besteht schon eine, ist die Antwort 422 mit faq_exists und source_id, der Kennung der Sammlung, in die neue Paare gehen. Nach Text, Datei und Website folgt ein Auftrag, der die Vektoren bildet. In der App: Neue Quelle, dann Quelle aufnehmen.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher; Paketgrenzen für Quellen, Dokumente und Abschnitte
Begrenzung
Drossel knowledge-sources: 20 Anfragen je Minute und Person, siehe Grenzen
FeldPflichtRegel
typejatext, file, website oder faq (Art der Quelle)
titlejahöchstens 200 Zeichen (Bezeichnung)
textbei texthöchstens 1 000 000 Zeichen (Inhalt)
urlbei websitegültige Adresse, höchstens 500 Zeichen (Startadresse)
filebei filehochgeladene Datei (Datei auswählen), als multipart/form-data
refresh_daysneinnur bei website; ganze Zahl von 1 bis 365
exclude_patternsneinnur bei website; Liste mit höchstens 50 Mustern zu je höchstens 300 Zeichen (Ausgeschlossene Pfade)
chunk_targetneinganze Zahl von 200 bis 4000 (Abschnittsgröße)
chunk_overlapneinganze Zahl ab 0 (Überlappung); wirksam höchstens die halbe Abschnittsgröße
draftneinnur bei text und file; wahr oder falsch
published_atneinnur bei text und file; Datum der Veröffentlichung

Eine Website-Adresse wird vor dem Anlegen geprüft. Lässt sie sich nicht lesen, nutzt sie ein anderes Schema als erlaubt, lässt sich der Name nicht auflösen oder zeigt sie auf ein nicht erlaubtes Ziel, kommt 422 mit url_unreadable, scheme_not_allowed, name_unresolvable oder target_not_allowed.

PUT /api/v1/knowledge/sources/{id}

Ändert die Einstellungen einer Quelle; PATCH wirkt genauso. Alle Felder sind freiwillig: title (höchstens 200 Zeichen), refresh_days, exclude_patterns, chunk_target, chunk_overlap mit den Regeln wie beim Anlegen; null setzt refresh_days und exclude_patterns auf die Vorgabe zurück, bei Websites auch chunk_target und chunk_overlap; title nimmt kein null an. Aufgenommen wird dabei nichts: neue Abschnittsgrößen wirken erst beim nächsten Durchgang. Bei einer Quelle, die keine Website ist, ergeben diese Angaben 422 website_only, und field nennt das betroffene Feld, bei mehreren das erste in der Reihenfolge refresh_days, exclude_patterns, chunk_target, chunk_overlap: ein Wert für refresh_days, eine nicht leere Liste in exclude_patterns, die von der gespeicherten abweicht, und ein Wert für chunk_target oder chunk_overlap, der vom gespeicherten abweicht, auch null. Dort erlaubt bleiben null für refresh_days, null oder eine leere Liste für exclude_patterns sowie die gespeicherte Liste und die gespeicherten Abschnittsgrößen. Ohne Protokolleintrag bleibt die Quelle unverändert; die Antwort ist dann 500 mit not_logged. Antwort: source.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

DELETE /api/v1/knowledge/sources/{id}

Löscht eine Quelle; die Protokollzeile hält fest, wie viele Dokumente und Abschnitte sie hatte. Zuerst wird die Protokollzeile geschrieben, im selben Schritt wie das Löschen; gelingt sie nicht, bleibt die Quelle stehen und die Antwort ist 500 mit not_logged. Antwort: {"deleted": true}.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

POST /api/v1/knowledge/sources/{id}/refresh

Liest eine Website neu ein (Neu einlesen). Mit "rebuild": true werden auch unveränderte Seiten neu in Abschnitte zerlegt (Vollständig neu aufbauen); das braucht es nach einer Änderung der Abschnittsgröße. Ist für diese Quelle schon ein Auftrag zur Aufnahme oder zum Neueinlesen offen, wartend oder laufend, wird er weiterverwendet und already_open ist true; task nennt dann seine Art, source.ingest oder source.refresh. Einen verlangten Neuaufbau nimmt ein wartender Auftrag noch mit; läuft er schon ohne Neuaufbau, kommt 409 refresh_running. Zusätzlich reiht die Schnittstelle den Vektorbau für die Quelle ein. Andere Arten als Websites ergeben 422 website_only. Antwort: 202 mit job (id, status, task) und already_open.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher; Paketgrenzen für Dokumente und Abschnitte
Begrenzung
Drossel knowledge-sources: 20 Anfragen je Minute und Person, siehe Grenzen

GET /api/v1/knowledge/jobs/{id}

Zeigt den Stand eines Auftrags aus diesem Konto: id, task, status, attempts, error, result und finished_at. Damit verfolgen Sie Aufnahme, Neueinlesen und Vektorbau. Wie Aufträge ablaufen, beschreibt Hintergrundaufträge.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

Fassungen einer Quelle

GET /api/v1/knowledge/sources/{id}/versions

Listet die vorgehaltenen Fassungen einer Quelle (Fassungen). current ist die Fassung, die gerade antwortet (antwortet), kept die Zahl der vorgehaltenen Fassungen (5), versions die Liste.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

POST /api/v1/knowledge/sources/{id}/versions/{number}/restore

Holt eine frühere Fassung zurück (Zurückholen). Fassungen über der genannten werden verworfen. Eine Nummer, die nicht vor der aktuellen liegt, ergibt 422 not_a_previous_version; eine nicht mehr vorgehaltene 422 version_not_kept; ein offener Auftrag zur Aufnahme oder zum Neueinlesen dieser Quelle, wartend oder laufend, 409 refresh_running. Antwort: restored, source, current, kept (wie viele Fassungen höchstens vorgehalten werden), discarded (Zahl der verworfenen Fassungen) und versions (Liste der Fassungen).

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel knowledge-sources: 20 Anfragen je Minute und Person, siehe Grenzen

POST /api/v1/knowledge/embed

Stößt den Bau der fehlenden Vektoren an, für das ganze Konto oder mit source_id für eine Quelle. Wartet schon ein solcher Auftrag, wird er weiterverwendet. Antwort: 202 mit job, already_open, vectors und enrichment.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel knowledge-sources: 20 Anfragen je Minute und Person, siehe Grenzen

Suchen und Probefrage

POST /api/v1/knowledge/search

Sucht Abschnitte zu einer Frage, ohne eine Antwort zu formulieren. Damit sehen Sie, was ein Assistent zu einer Frage findet.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
Drossel knowledge-search: 60 Anfragen je Minute und Person, siehe Grenzen
FeldPflichtRegel
questionjahöchstens 2000 Zeichen
source_idneinKennung einer Quelle, um die Suche auf sie zu begrenzen
countnein1 bis 20 Treffer, Vorgabe 6
contextneinwahr oder falsch, Vorgabe wahr: liefert das Umfeld des Abschnitts im Dokument mit
languageneinSprachkürzel, höchstens 5 Zeichen
Feld eines TreffersBedeutung
chunk_id, source_idKennung des Abschnitts und seiner Quelle
document, headingTitel des Dokuments und Überschrift des Abschnitts
excerptdie ersten 400 Zeichen des Abschnitts
keywords, questionsSchlüsselwörter und Fragen aus der Anreicherung; null heißt: noch nicht angereichert, eine leere Liste: nichts gefunden
contextUmfeld im Dokument, wenn context wahr ist
valueTrefferwert, auf fünf Stellen gerundet
pathsüber welche Suchwege der Abschnitt gefunden wurde

Felder ohne Wert fehlen im Treffer.

POST /api/v1/knowledge/ask

Stellt eine Probefrage an die Wissensbasis und liefert eine Antwort mit Belegstellen, wie sie die App unter Antwort prüfen zeigt. Trifft die Frage ein aktives Frage-Antwort-Paar, kommt dessen Antwort im Wortlaut, ohne Modellaufruf. Sonst sind die Grundlage bis zu fünf gefundene Abschnitte und, sobald deren Deckung reicht, bis zu zwölf weitere Abschnitte aus Textbausteinen. Geantwortet wird in der Sprache der Frage, wenn sie sich als Deutsch oder Englisch erkennen lässt. Wie eine Antwort entsteht, erklärt Wissensaufbau und Antworten.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
Drossel knowledge-ask: 30 Anfragen je Minute und Person, siehe Grenzen
FeldPflichtRegel
questionjahöchstens 2000 Zeichen (Ihre Frage)
languageneinde oder en; gilt nur, wenn sich die Frage nicht sicher als Deutsch oder Englisch erkennen lässt, dann mit der Vorgabe de
source_idneinKennung einer Quelle
AntwortfeldBedeutung
answeredob eine Antwort zustande kam
textAntworttext oder die Absage
citationsBelegstellen mit number, chunk_id, document, heading, excerpt
pathmodel für eine formulierte Antwort, qa_pair für die Antwort aus einem Frage-Antwort-Paar, none für eine Absage
reasonGrund der Absage, sonst null
blocksZahl der Abschnitte aus Textbausteinen, die über die Treffer hinaus mitgegeben wurden, siehe Textbausteine; null bei einer Absage und bei einer Antwort aus einem Frage-Antwort-Paar
modelKennung des verwendeten Verfahrens

Eine Absage kommt mit diesen Gründen und Texten:

reasonText
empty_question„Bitte stellen Sie eine Frage.“
nothing_found, not_covered, model_declined, without_citation„Dazu steht nichts in der hinterlegten Wissensbasis.“
no_model„Die Antwort ist gerade nicht möglich. Bitte versuchen Sie es später erneut.“

Frage-Antwort-Paare

Ohne source_id landet ein neues Paar in der ältesten Quelle der Art faq; gibt es keine, wird eine angelegt. Ihr Titel folgt locale der angemeldeten Person (Konto und Profil): „Questions and answers“ bei en, sonst „Fragen und Antworten“. Diese neue Quelle zählt gegen die Paketgrenze für Quellen; ist sie erreicht, wird kein Paar angelegt, und die Antwort ist dieselbe wie beim Anlegen einer Quelle. Mit source_id nennen Sie die Quelle selbst.

GET /api/v1/knowledge/qa-pairs

Listet die Paare, sortiert nach position, Anlagezeit und Kennung, höchstens 500; mit source_id nur die einer Quelle. Jedes Paar trägt id, source_id, question, answer, variants, position, is_active und created. Dazu kommt matching: limit nennt, wie viele aktive Paare mit Antwort die Antwortsuche höchstens vergleicht (300, in der Reihenfolge dieser Liste), active, wie viele solche Paare es gibt. Ist active größer als limit, greifen die übrigen nicht. variants nennt die Grenzen der Varianten je Paar: max (20) und length (500 Zeichen je Variante).

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

POST /api/v1/knowledge/qa-pairs

Legt ein Paar an. Ein Paar ohne Antwort wird inaktiv gespeichert. Doppelte Varianten fallen weg. Ohne Protokolleintrag wird kein Paar angelegt; die Antwort ist dann 500 mit not_logged. Antwort: 201 mit pair.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine
FeldPflichtRegel
questionjahöchstens 500 Zeichen
answerneinhöchstens 5000 Zeichen
variantsneinhöchstens 20 weitere Formulierungen zu je höchstens 500 Zeichen
positionnein0 bis 9999
is_activeneinVorgabe wahr; ohne Antwort falsch
source_idneinKennung einer Quelle Ihres Kontos; eine unbekannte ergibt 404 not_found

PUT /api/v1/knowledge/qa-pairs/{id}

Ändert ein Paar; alle Felder freiwillig, Regeln wie beim Anlegen. Bleibt die Antwort leer, wird das Paar inaktiv. variants ersetzt die Liste der Varianten, doppelte fallen weg; ohne variants bleibt sie stehen. Ohne Protokolleintrag bleibt das Paar unverändert; die Antwort ist dann 500 mit not_logged. Antwort: pair.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

DELETE /api/v1/knowledge/qa-pairs/{id}

Löscht ein Paar. Ohne Protokolleintrag bleibt es bestehen; die Antwort ist dann 500 mit not_logged. Antwort: {"deleted": true}.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

Prüfsatz und Gewichtung

Der Prüfsatz misst, ob die Suche zu einer Frage das erwartete Dokument findet. Eine Prüfzeile besteht aus einer Frage und dem erwarteten Dokument (Erwartetes Dokument). Ein Lauf fragt nur die eigene Suche, kein Modell und kein fremdes Netz, und läuft darum direkt in der Anfrage. Je Konto sind 100 Prüfzeilen möglich; gesucht wird bis Platz 10.

GET /api/v1/knowledge/documents

Listet die Dokumente, aus denen Sie ein erwartetes Dokument wählen: id, title, source_title; höchstens 500, limit nennt die Zahl.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

GET /api/v1/knowledge/probes

Liefert die Prüfzeilen (probes), die Grenze (limit, 100), die Suchtiefe (depth, 10), die Gewichtung (weights) und den letzten Lauf (run mit probes, hits, mrr, ran_at, oder null).

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
Feld einer PrüfzeileBedeutung
id, question, languageKennung, Frage, Sprache
expected_document_id, expected_titleerwartetes Dokument und sein Titel
last_rankPlatz beim letzten Lauf (Platz {n}); 0 heißt gemessen, aber nicht gefunden; null heißt nie gemessen
last_run_atZeitpunkt des letzten Laufs

POST /api/v1/knowledge/probes

Legt eine Prüfzeile an (Prüfzeile anlegen): question (Pflicht, höchstens 500 Zeichen), expected_document_id (Pflicht, Kennung eines Dokuments), language (de oder en, freiwillig). Sind schon 100 Zeilen angelegt, kommt 422 probe_limit; ein unbekanntes Dokument ergibt 404. Ohne Protokolleintrag wird keine Prüfzeile angelegt; die Antwort ist dann 500 mit not_logged. Antwort: 201 mit probe.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

DELETE /api/v1/knowledge/probes/{id}

Löscht eine Prüfzeile. Ohne Protokolleintrag bleibt sie bestehen; die Antwort ist dann 500 mit not_logged. Antwort: {"deleted": true}.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

POST /api/v1/knowledge/probes/run

Misst alle Prüfzeilen (Messen) und liefert run mit probes, hits (Gefunden), mrr und ran_at sowie die aktualisierten Zeilen. mrr ist die Trefferqualität: der Mittelwert aus eins geteilt durch den Platz des erwarteten Dokuments, auf drei Stellen gerundet; ein nicht gefundenes Dokument zählt 0. Ohne Prüfzeilen kommt 422 no_probe.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel knowledge-probes: 6 Anfragen je Minute und Person, siehe Grenzen

Gewichtung

Zwei Stellschrauben bestimmen, wie die Suche Treffer ordnet: der Titelfaktor (title_factor, 1,0 bis 5,0, Vorgabe 1,8) hebt Treffer im Dokumenttitel an, das Schlüsselwortgewicht (keyword_tf, 0 bis 10, Vorgabe 3) Treffer in den angereicherten Schlüsselwörtern. weights enthält title_factor und keyword_tf (geltend), set (selbst eingetragen), default (Vorgabe) und bounds (Grenzen).

PUT /api/v1/knowledge/weights

Speichert die Gewichtung (Gewichtung speichern). Beide Felder sind freiwillig; null setzt auf die Vorgabe zurück. title_factor wird auf zwei Stellen gerundet. Ohne Protokolleintrag bleibt die Gewichtung unverändert; die Antwort ist dann 500 mit not_logged. Antwort: weights.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

POST /api/v1/knowledge/probes/tune

Probiert an den ältesten höchstens 20 Prüfzeilen des Prüfsatzes zuerst jeden Titelfaktor (1,0; 1,4; 1,8; 2,2; 2,6; 3,0) beim geltenden Schlüsselwortgewicht durch, dann jedes Schlüsselwortgewicht (0; 1; 2; 3; 5; 8) beim besten Titelfaktor (Abstimmen). Ohne apply wird nur gemessen. Mit "apply": true (Bestwert übernehmen) wird der beste Kandidat übernommen, aber nur, wenn er den geltenden Stand echt schlägt; bei Gleichstand bleibt alles, wie es ist (Kein Kandidat ist besser als die geltende Einstellung.). Kommt der Protokolleintrag zum Übernehmen nicht zustande, bleibt die geltende Gewichtung; die Antwort ist dann 500 mit not_logged. Antwort: tuning mit rows_used, rows_total, current, best, candidates, dazu applied und weights.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel knowledge-tune: 2 Anfragen je Minute und Person, siehe Grenzen

Einrichtung aus der Website

Die Einrichtung liest Ihre Website, schlägt daraus einen Assistenten vor und legt ihn nach Ihrer Auswahl an. In der App heißt das Einrichtung (app.xicbot.de/einrichtung); den Ablauf beschreibt Einrichtung. Das Anlegen eines Durchgangs zählt gegen dieselben Grenzen wie eine Wissensquelle, denn es legt eine an.

statusBedeutung
liestdie Website wird gelesen
schlaegt_vorder Vorschlag entsteht (Der Vorschlag entsteht.)
entscheidungder Vorschlag liegt bereit und wartet auf Ihre Auswahl
uebernommender Assistent ist angelegt (Der Assistent ist angelegt.)
fehlerder Durchgang ist gescheitert; hinweis nennt den Grund (Der Durchgang ist gescheitert)
leeraus der Website entstand kein Inhalt; hinweis nennt den Grund (Kein Vorschlag)

GET /api/v1/setup/runs

Listet die letzten 20 Durchgänge, die neuesten zuerst (Frühere Durchgänge). Antwort: runs.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
Feld eines DurchgangsBedeutung
id, website, statusKennung, gelesene Adresse, Stand
languagede oder en: in dieser Sprache entstehen Vorschlag und erste Fassung; ohne gespeicherte Angabe de
vorschlagder Vorschlag mit zweck und rolle (je text und fundstelle), name, tonfall, erster_satz, fragen (je frage, antwort, fundstelle), schweigethemen, luecken und removed: was aus dem Vorschlag entfernt wurde (Aus dem Vorschlag entfernt), je Eintrag mit kind promise und dem Wort in word, no_source und dem Feld in field oder question_no_source und der Frage in question
angenommenIhre übernommene Auswahl
hinweisbei fehler und leer der Grund als Kennung: website_unreadable (bei leer gegebenenfalls mit dem Grund der Aufnahme nach einem Doppelpunkt), no_text, too_little_text: mit der Zahl der gelesenen Zeichen, model_unavailable, budget_exhausted, model_failed, reply_unreadable oder run_aborted; sonst null. Die App zeigt dazu einen Satz in der Sprache der Oberfläche.
assistent_idder angelegte Assistent
erstellt, beendetBeginn und Ende
dismissed_atZeitpunkt, zu dem der Durchgang verworfen wurde, sonst null; ein verworfener Durchgang wird in der App beim Öffnen nicht mehr von selbst gezeigt
taboo_limitwie viele schweigethemen die Übernahme annimmt (der Deckel der Tabuliste)

POST /api/v1/setup/runs

Startet einen Durchgang mit website (Pflicht, Adresse mit http oder https, höchstens 255 Zeichen; Adresse Ihrer Website, Knopf Website lesen) und optional language (de oder en, Sprache des Assistenten; ohne Angabe die locale Ihres Kontos, ein anderer Wert ergibt 422). Die Website wird als Wissensquelle angelegt; diese Quelle bleibt Ihnen erhalten, auch wenn Sie den Vorschlag nicht übernehmen. Läuft schon ein Durchgang (Stand liest oder schlaegt_vor), kommt 409 run_in_progress mit diesem Durchgang in run. Ein offener Durchgang, dessen Verarbeitung nicht mehr läuft und der seit über einer Minute unverändert ist, wird vor dem Start und vor der Liste der Durchgänge als fehler mit dem Hinweis run_aborted beendet; er hält dann keinen neuen Start auf. Antwort: 201 mit run.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher; Paketgrenzen für Quellen, Dokumente und Abschnitte
Begrenzung
Drossel knowledge-sources: 20 Anfragen je Minute und Person, siehe Grenzen

GET /api/v1/setup/runs/{id}

Liefert einen Durchgang (run). Damit fragen Sie den Stand ab, bis er entscheidung, fehler oder leer erreicht.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

POST /api/v1/setup/runs/{id}/accept

Übernimmt Ihre Auswahl aus dem Vorschlag und legt einen Assistenten als Entwurf an (Assistenten anlegen). Nur im Stand entscheidung möglich, sonst 409 not_ready mit dem aktuellen status; ein verworfener Durchgang lässt sich übernehmen, dismissed_at wird dabei geleert. Muss für die Fragen erst eine Quelle der Art faq entstehen und ist die Paketgrenze für Quellen erreicht, endet die Übernahme ohne Assistenten mit derselben Antwort wie das Anlegen einer Quelle (402 plan_limit_reached, bei nicht messbarem Verbrauch 503 plan_limit_unmeasured). Ohne Protokolleintrag für den Assistenten oder die neue Quelle bleibt die ganze Übernahme aus; die Antwort ist dann 500 mit not_logged. Antwort: 201 mit dem Durchgang (run) und assistant (id, name, slug, status).

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher; Paketgrenze für Assistenten
Begrenzung
keine
FeldRegelIn der AppWird zu
namePflicht, höchstens 80 ZeichenName des AssistentenName
zweckhöchstens 600 ZeichenWas Ihr Betrieb machtThemengrenze der ersten Fassung
rollehöchstens 200 ZeichenWen der Assistent vertrittRolle der ersten Fassung
toneneutral, friendly, concise oder detailedWie er spricht mit sachlich, freundlich, knapp und ausführlich, vorgewählt sachlich; der Tonfall aus dem Vorschlag steht nur als Hinweis darunterTon der ersten Fassung, ohne Angabe sachlich; der Satz tonfall aus dem Vorschlag wird nicht übernommen
erster_satzhöchstens 300 ZeichenSein erster SatzBegrüßung
fragenhöchstens 50, je frage (500) und antwort (4000) als PflichtFragen und AntwortenPaare in der ältesten Quelle der Art faq, sonst in einer neuen Quelle der Art faq, deren Titel locale der übernehmenden Person folgt („Questions and answers“ bei en, sonst „Fragen und Antworten“); Fragen, die es im Konto schon gibt (gleich bis auf Groß- und Kleinschreibung), werden übersprungen, und doppelte Fragen der Auswahl zählen einmal
schweigethemenhöchstens so viele wie taboo_limit (8) zu je 120 Zeichen; mehr oder länger ergibt 422Themen, zu denen er schweigtTabus der ersten Fassung, doppelte entfallen

POST /api/v1/setup/runs/{id}/discard

Verwirft einen Durchgang (Verwerfen): dismissed_at wird gesetzt, ein zweites Verwerfen behält den ersten Zeitpunkt. Gelöscht wird nichts; der Durchgang bleibt in der Liste und ein verworfener Vorschlag lässt sich weiter übernehmen. Nur in den Ständen entscheidung, leer und fehler, sonst 409 not_discardable mit dem aktuellen status; unbekannte Kennung 404 not_found. Antwort: 200 mit run.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

Die erste Fassung eines so angelegten Assistenten antwortet nur aus der Wissensbasis und hat die Sprache des Durchgangs (language); Übergaberegel und Notfallantwort kommen aus der Grundvorlage dieser Sprache, ebenso Rolle, Themengrenze und Begrüßung, wo Ihre Auswahl sie leer lässt.

Assistenten

In der App liegen Assistenten unter Assistenten (app.xicbot.de/assistenten). Was die einzelnen Bausteine fachlich bewirken, erklärt Assistenten. Ein Assistent hat Kopfdaten (Name, Status, Notfallantwort, Widget-Einstellungen) und Fassungen mit den Bausteinen, die die App unter Bausteine der Antwort zeigt. Kopfdaten ändern Sie direkt; eine Änderung an den Bausteinen legt eine neue Fassung an und überschreibt die alte nicht.

GET /api/v1/assistants/templates

Listet die Vorlagen (Vorlage), gruppiert nach Branchen und Aufgaben. Mit ?language=en kommen die englischen Texte, Vorgabe ist de. Antwort: templates.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

GET /api/v1/assistants

Listet die Assistenten nach Namen, höchstens 200, jeweils mit ihrer aktiven Fassung. Antwort: assistants.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

GET /api/v1/assistants/{id}

Liefert einen Assistenten (assistant) und seine Fassungen (versions), die neuesten zuerst, höchstens 50.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
Feld von assistantBedeutung
id, name, slug, templateKennung, Name, Kurzname, Vorlage
statusdraft (Entwurf), active (aktiv) oder paused (pausiert)
fallback_replyNotfallantwort
versiondie aktive Fassung
widgetWidget-Einstellungen: is_active, title, color, position, vertical, offset_x, offset_y, width, height, scale, radius, avatar, outreach_rules, domains, consent, consent_text, attachments, base_url und key, der öffentliche Schlüssel (Öffentlicher Schlüssel)

POST /api/v1/assistants

Legt einen Assistenten als Entwurf an (Neuer Assistent, Assistent anlegen), zusammen mit Fassung 1. Felder: name (Pflicht, höchstens 120 Zeichen), template (Kennung einer Vorlage, höchstens 40 Zeichen; ohne Angabe ohne Vorlage), language (de oder en). Der Kurzname entsteht aus dem Namen, höchstens 50 Zeichen; ist er im Konto schon vergeben, wird -2, -3 und so weiter angehängt. Die erste Fassung antwortet nur aus der Wissensbasis. Eine unbekannte Vorlage ergibt 422 unknown_template. Ohne Protokolleintrag entsteht weder Assistent noch Fassung; die Antwort ist dann 500 mit not_logged. Antwort: 201 mit assistant.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher; Paketgrenze für Assistenten
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen

PUT /api/v1/assistants/{id}

Ändert die Kopfdaten; alle Felder sind freiwillig. Die Widget-Felder beschreibt Widget-Einstellungen im Einzelnen. Antwort: assistant.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen
FeldRegel
namehöchstens 120 Zeichen
statusdraft, active oder paused (Status)
fallback_reply5 bis 500 Zeichen (Notfallantwort)
widget_enabledwahr oder falsch
widget_titlehöchstens 80 Zeichen
widget_colorFarbe als #rrggbb
widget_position, widget_verticalright oder left; bottom oder top
widget_offset_x, widget_offset_y0 bis 400
widget_width, widget_height280 bis 720; 320 bis 1200
widget_scale, widget_radius80 bis 150; 0 bis 40
widget_avatarBild als PNG, JPEG oder WebP in einer data:-Adresse; Fehler widget_avatar_format, widget_avatar_too_large, widget_avatar_not_an_image
widget_domainshöchstens 500 Zeichen
widget_consent, widget_consent_textwahr oder falsch; höchstens 500 Zeichen
widget_outreach_rules, widget_attachmentssiehe Ansprache und Widget-Einstellungen
widget_base_urlhöchstens 200 Zeichen, absolute Adresse mit http oder https, ohne Abfrageteil und Sprungmarke; ein Schrägstrich am Ende wird entfernt; Fehler widget_base_url_not_absolute, widget_base_url_scheme, widget_base_url_has_query

Fassungen

POST /api/v1/assistants/{id}/version

Veröffentlicht eine neue Fassung (Neue Fassung veröffentlichen). Sie bekommt die nächsthöhere Nummer und wird sofort aktiv. Die Pflichtfelder der Tabelle senden Sie jedes Mal mit. taboos, facts, master_data, escalation_topics, escalation_threshold, escalation_words und handoff_email übernimmt sie aus der aktiven Fassung, wenn Sie sie nicht senden; knowledge_only steht ohne Angabe auf wahr. Ohne Protokolleintrag entsteht keine neue Fassung, und die bisher aktive bleibt aktiv; die Antwort ist dann 500 mit not_logged. Antwort: 201 mit version.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen
FeldPflichtRegelIn der App
personajahöchstens 200 ZeichenRolle
tonejaneutral, friendly, concise oder detailedTon: sachlich, freundlich, knapp, ausführlich
topic_scopejahöchstens 600 ZeichenThemengrenze
handoff_rulejahöchstens 400 ZeichenÜbergaberegel
greetingjahöchstens 500 ZeichenBegrüßung
languagejade oder en–
knowledge_onlyneinwahr oder falsch, Vorgabe wahrNur aus der Wissensbasis antworten
taboosneinhöchstens 8 Einträge zu je 120 ZeichenTabuthemen
factsneinhöchstens 12 Einträge zu je 200 Zeichenfeste Angaben
master_dataneinsiehe StammdatenStammdaten
escalation_topicsneinKennungen bekannter Themen; unbekannte ergeben 422 unknown_topic mit topicsÜbergabethemen
escalation_thresholdnein1 bis 20, Vorgabe 3Schwelle der Übergabe
escalation_wordsneinje Thema höchstens 20 Wörter mit 3 bis 40 ZeichenSignalwörter
handoff_emailneinE-Mail-Adresse, höchstens 190 Zeichen; ändern darf nur der InhaberÜbergabeadresse

Wer die Übergabeadresse ändert, ohne Inhaber zu sein, bekommt 403 role_too_low mit required owner und field handoff_email. Wer die bisherige Adresse unverändert mitschickt, ändert nichts und wird nicht abgewiesen.

Stammdaten

Teil von master_dataRegel
opening_hourshöchstens 14 Einträge mit day (mon bis sun), from, to (Uhrzeit HH:MM)
locationshöchstens 5 mit name (Pflicht), street, postal_code, city
service_areahöchstens 20 Einträge zu je 80 Zeichen
contactshöchstens 5 mit role (Pflicht), name, email, phone
price_rangeshöchstens 10 mit item, from_cents (Pflicht, ab 0), to_cents, unit, currency (drei Buchstaben)

Weitere Felder in master_data ergeben 422 unknown_master_field mit fields.

Die Antwort einer Fassung (version) enthält neben diesen Feldern id, number, restored_from, published_at und die Grenzen, die die App zum Ausfüllen braucht, etwa taboo_limit, fact_limit, master_data_limits, escalation_threshold_min und escalation_threshold_max.

POST /api/v1/assistants/{id}/versions/{number}/restore

Holt eine frühere Fassung zurück, indem eine neue Fassung mit ihrem Inhalt angelegt wird; restored_from nennt die Vorlage. Die Zwischenfassungen bleiben erhalten. Eine unbekannte Nummer ergibt 404 version_not_found, die bereits aktive 422 already_active. Enthält die alte Fassung eine andere Übergabeadresse, gilt die Inhaberregel wie oben. Ohne Protokolleintrag entsteht keine neue Fassung, und die bisher aktive bleibt aktiv; die Antwort ist dann 500 mit not_logged. Antwort: 201 mit restored, from und version.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen

Löschen, Einbaucode und Schlüssel

DELETE /api/v1/assistants/{id}

Löscht einen Assistenten mit seinen Fassungen und allen seinen Gesprächen. Zuerst wird die Protokollzeile geschrieben; gelingt sie nicht, bleibt alles stehen und die Antwort ist 500 mit not_logged. Antwort: {"deleted": true}.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Verwaltung oder höher
Begrenzung
keine

GET /api/v1/assistants/{id}/embed

Liefert den Einbaucode und seine Bestandteile. Wie Sie ihn auf Ihrer Seite einsetzen, beschreiben Widget einbauen und Script-Attribute.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
AntwortfeldBedeutung
snippetder Einbaucode
url, api, keyAdresse der Einbaudatei, Adresse der Schnittstelle, öffentlicher Schlüssel
base, snippet_first_partyeigene Basisadresse und der Einbaucode dafür, wenn widget_base_url gesetzt ist
sri, reasonPrüfsumme der ausgelieferten Einbaudatei oder, wenn sie fehlt, der Grund (file_missing, file_unreadable); beide gehen nicht in den Einbaucode ein
seen_at, seen_hostwann und auf welcher Seite der Einbau zuletzt gemeldet wurde

Quelltext html

<script src="{url}/einbetten.js" data-xicbot="{key}" data-api="{api}" defer></script>

Ist die Einwilligung am Assistenten eingeschaltet, trägt der Einbaucode zusätzlich data-einwilligung="erforderlich".

POST /api/v1/assistants/{id}/key

Tauscht den öffentlichen Schlüssel aus (Neuen Schlüssel erzeugen). Danach lädt kein bisheriger Einbau mehr; die App meldet: *Neuer Schlüssel ist aktiv. Bitte den Einbaucode überall austauschen.* Zuerst wird die Protokollzeile geschrieben; gelingt sie nicht, bleibt der bisherige Schlüssel gültig und die Antwort ist 500 mit not_logged. Ein unbekannter Assistent ergibt 404 not_found. Antwort: key, der neue Schlüssel aus 32 Hexadezimalzeichen.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Verwaltung oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen

GET /api/v1/usage

Zeigt das Kontingent des laufenden Monats (Kontingent in diesem Monat). Ab 80 Prozent Verbrauch steht level auf warning, bei erschöpftem Kontingent auf exhausted, sonst auf ok. Ohne Konto kommt 403 no_tenant. Die Kontingente der Pakete stehen unter Pakete und Kontingente.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
Feld in usageBedeutung
monthMonat
used, budget, remainingverbraucht, verfügbar, übrig
messagesZahl der Nachrichten
shareAnteil des Verbrauchs
warn_atWarnschwelle
warning, throttled, exhaustedWarnung, gedrosselt, erschöpft
reply_tokens, tool_roundsObergrenzen je Antwort, ab der Warnschwelle niedriger
levelok, warning oder exhausted

Abnahmeprüfungen

Eine Abnahme stellt der aktiven Fassung eines Assistenten feste Prüffragen und vergleicht die Antworten mit einer Musterantwort. Den Ablauf in der App beschreibt Probieren und abnehmen. Je Assistent sind 50 Prüffragen möglich.

GET /api/v1/assistants/{id}/checks

Listet die Prüffragen (checks), jede mit last_result und last_run_at, dazu limit (50), terms_limit (10 Begriffe je Liste) und den letzten Lauf (last_run).

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

POST /api/v1/assistants/{id}/checks

Legt eine Prüffrage an (Prüffrage anlegen); sie wird hinten angestellt. Sind schon 50 angelegt, kommt 422 limit_reached. Antwort: 201 mit check.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen
FeldPflicht beim AnlegenRegelIn der App
questionja3 bis 500 ZeichenFrage
expectedja3 bis 4000 ZeichenMusterantwort
must_containneinhöchstens 10 Begriffe zu je 80 ZeichenMuss enthalten
must_not_containneinhöchstens 10 Begriffe zu je 80 ZeichenDarf nicht enthalten
min_overlapnein0 bis 1, Vorgabe 0,5Mindestdeckung
languageneinde oder en–
positionnein0 bis 9999–
is_activeneinwahr oder falschLäuft mit

PUT /api/v1/assistants/{id}/checks/{check}

Ändert eine Prüffrage; alle Felder sind freiwillig. Antwort: check.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen

DELETE /api/v1/assistants/{id}/checks/{check}

Löscht eine Prüffrage. Antwort: {"deleted": true}.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

POST /api/v1/assistants/{id}/checks/run

Startet eine Abnahme (Abnahme starten) mit allen Prüffragen, die mitlaufen. Der Lauf arbeitet im Hintergrund; wartet oder läuft schon einer, wird er weiterverwendet. Ohne aktive Fassung kommt 422 no_version, ohne mitlaufende Prüffrage 422 no_check, bei erschöpftem Kontingent 422 quota_exhausted. Antwort: 202 mit run.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen

GET /api/v1/assistants/{id}/check-runs

Listet die letzten 30 Läufe, die neuesten zuerst. Antwort: runs.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine

GET /api/v1/assistants/{id}/check-runs/{run}

Liefert einen Lauf (run) mit den Ergebnissen je Prüffrage (results).

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
FeldBedeutung
statuspending (eingereiht), running (läuft), done (fertig), failed (abgebrochen)
checks, passed, failed, erroredZahl der Prüffragen, Bestanden, Durchgefallen, Nicht messbar
rateQuote: bestanden geteilt durch bestanden plus durchgefallen, auf drei Stellen; null, solange nichts gewertet ist
version_iddie geprüfte Fassung
started_at, finished_at, duration_ms, reason, created_atZeiten, Dauer und Abbruchgrund

Ein Ergebnis (result) ist pass (bestanden), fail (durchgefallen) oder error (nicht messbar). Bestanden ist eine Antwort, wenn jeder Begriff aus Muss enthalten vorkommt, keiner aus Darf nicht enthalten und die Deckung mit der Musterantwort die Mindestdeckung erreicht; ist die Mindestdeckung 0 oder die Deckung nicht messbar, entfällt der letzte Teil. Groß- und Kleinschreibung zählen nicht. Jedes Ergebnis nennt answer, missing, forbidden, overlap, reason, conversation_id und duration_ms.

Werkzeuge

Werkzeuge geben einem Assistenten Handlungen, etwa eine Anfrage aufnehmen oder in einem Katalog suchen. Was jede Bauform fachlich tut, erklären Werkzeuge und Werkzeugbausatz. Anlegen, Ändern und Löschen verlangt die Rolle Bearbeiten; Adresse der Schnittstelle, Zugangsmarke und Mindestrolle verlangen darüber hinaus die Rolle Verwaltung.

Bauform (type)ArtVorgabe der Freigabe
leadschreibendconfirm
appointmentschreibendconfirm
handoffschreibendconfirm
product_searchlesendautomatic
cartnicht umkehrbarconfirm
httplesendconfirm
form_fillschreibendconfirm

Dazu kommen die Bauformen aus dem Werkzeugbausatz; ihre Art und die Vorgabe der Freigabe bringt jede selbst mit. Nur lesende Werkzeuge dürfen auf automatic stehen; bei allen anderen setzt die Schnittstelle confirm, gleich was Sie senden.

GET /api/v1/assistants/{assistant}/tools

Listet die Werkzeuge eines Assistenten.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, jede Rolle
Begrenzung
keine
Feld eines WerkzeugsBedeutung
id, key, title, descriptionKennung, Schlüssel, Bezeichnung, Wann soll der Assistent es benutzen?
adapter, kindBauform und Art
approval, min_roleFreigabe, Mindestrolle
required_fields, required_effectiveeingetragene und tatsächlich geltende Pflichtangaben
schemaFelder der Eingabe
settingsEinstellungen; eine gesetzte Zugangsmarke erscheint als __set__
is_activeAktiv
timezone_validbei der Bauform appointment, ob die Zeitzone in settings gilt (true oder false), nach demselben Urteil wie beim Speichern; bei allen anderen Bauformen null

POST /api/v1/assistants/{assistant}/tools

Legt ein Werkzeug an (Werkzeug hinzufügen). Antwort: 201 mit tool.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen
FeldPflichtRegel
typejaeine der Bauformen oben oder aus dem Werkzeugbausatz (Bauform)
keyjaKleinbuchstabe am Anfang, dann Kleinbuchstaben, Ziffern oder _, 3 bis 64 Zeichen; je Assistent eindeutig
titlejahöchstens 120 Zeichen
descriptionjahöchstens 600 Zeichen
approvalneinautomatic oder confirm
min_roleneinpublic, member, admin oder owner; Vorgabe public
required_fieldsneinhöchstens 20 Namen zu je 40 Zeichen
settingsneinEinstellungen der Bauform, bei http mit Adresse und Zugangsmarke
schemaneineigene Eingabefelder, siehe unten
is_activeneinwahr oder falsch
StatusKennungBedeutung
422key_takenDiesen Schlüssel gibt es bei diesem Assistenten schon.
422shape_unknownunbekannte Bauform
422url_requiredBauform http ohne Adresse
422url_unreadable, scheme_not_allowed, name_unresolvable, target_not_alloweddie Adresse besteht die Adressprüfung nicht
422Codes der Einstellungsprüfung, etwa appointment_timezone_invaliddie Einstellungen der Bauform appointment, cart oder form_fill bestehen die Prüfung nicht; appointment_timezone_invalid heißt: unbekannte Zeitzone in settings, eine leere Angabe gilt als Vorgabe
403role_too_low mit field min_roledie gewählte Mindestrolle liegt über der eigenen (Zur Wahl stehen die Stufen bis zur eigenen Rolle.)
403role_too_low mit required admin und fieldAdresse, Zugangsmarke oder Mindestrolle geändert ohne Rolle Verwaltung
402plan_feature_missingdie Bauform gehört nicht zum Paket; feature, plan, plan_name und available_in nennen Merkmal, Paket und die Pakete, die es enthalten

Eigene Eingabefelder

Bei der Bauform http legen Sie unter Felder der Eingabe fest, welche Angaben der Assistent übergibt. schema ist eine Liste von Feldern mit Feldname, Typ, Beschreibung und Pflicht. Es gelten diese Regeln: höchstens 20 Felder; ein Name beginnt mit einem Kleinbuchstaben und hat danach bis zu 39 Kleinbuchstaben, Ziffern oder _; die Namen tenant_id, mandant, mandant_id und konto_id sind gesperrt; Typen sind string, integer, number und boolean, jeder andere wird zu string; die Beschreibung wird auf 200 Zeichen gekürzt und ist ohne Angabe der Feldname. Ein Schema, das diese Regeln verletzt, lehnt der Dienst mit 422 ab: schema_field_name_invalid oder schema_field_name_reserved mit dem Feldnamen unter field, schema_fields_too_many mit max, schema_required_unknown für eine Pflichtangabe ohne Feld. Gespeichert wird dann nichts.

PUT /api/v1/tools/{id}

Ändert ein Werkzeug. Die Bauform bleibt, wie sie ist; title und description sind wieder Pflicht, die übrigen Felder freiwillig. Senden Sie als Zugangsmarke __set__, bleibt die gespeicherte erhalten. Antwort: tool.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
Drossel assistants: 30 Anfragen je Minute und Person, siehe Grenzen

DELETE /api/v1/tools/{id}

Löscht ein Werkzeug. Gelingt die Protokollzeile nicht, bleibt es stehen und die Antwort ist 500 mit not_logged. Antwort: {"deleted": true}.

Anmeldung
Angemeldet, bestätigte E-Mail-Adresse, Rolle Bearbeiten oder höher
Begrenzung
keine

Häufige Fragen

Warum kommt beim Anlegen einer Website-Quelle 202 statt 201?

Eine Website wird im Hintergrund gelesen. Die Antwort enthält den Auftrag; seinen Stand fragen Sie mit GET /api/v1/knowledge/jobs/{id} ab, den der Quelle mit GET /api/v1/knowledge/sources/{id}.

Wie prüfe ich, ob die Suche das richtige Dokument findet?

Legen Sie Prüfzeilen mit Frage und erwartetem Dokument an und messen Sie mit POST /api/v1/knowledge/probes/run. POST /api/v1/knowledge/probes/tune probiert danach andere Gewichtungen und übernimmt mit "apply": true nur einen echten Gewinn.

Verliere ich neuere Fassungen, wenn ich zurückhole?

Bei einer Wissensquelle ja: Fassungen über der zurückgeholten werden verworfen. Bei einem Assistenten nein: das Zurückholen legt eine neue Fassung mit dem alten Inhalt an.

Warum bekomme ich 403 beim Ändern der Übergabeadresse?

Die Übergabeadresse darf nur der Inhaber des Kontos ändern. Die Antwort nennt required owner und field handoff_email.

Was passiert mit eingebauten Seiten, wenn ich den Schlüssel tausche?

Sie laden das Widget nicht mehr, bis dort der neue Einbaucode steht. Den holen Sie mit GET /api/v1/assistants/{id}/embed.

Eine Stelle ist unklar geblieben?

Schreiben Sie uns, welche Seite und welcher Schritt gemeint ist. Wir antworten persönlich.

Anfrage in drei Schritten

  1. 1. Anliegen
  2. 2. Ihr Fall
  3. 3. Kontakt

Worum geht es?

Ein Klick genügt, alles Weitere ist freiwillig.

Erzählen Sie kurz von Ihrem Fall

Alle Angaben in diesem Schritt sind freiwillig. Sie helfen uns, gleich mit etwas Konkretem zu antworten statt mit Rückfragen.

Anfragen im Monat, ungefähr (optional)
Wann soll es losgehen? (optional)
Wie erreichen wir Sie?

Name und E-Mail-Adresse genügen. Wir antworten persönlich.

Wir verwenden Ihre Angaben, um Ihre Anfrage zu bearbeiten. Mehr dazu in der Datenschutzerklärung.