Skip to main content

AI Answers – API-Referenz

Auf dieser Seite wird beschrieben, wie man eine Frage an die AI Answers-API sendet und wie man die zurückgesendete Antwort ausliest.

Bevor Sie beginnen, aktivieren Sie die API und kopieren Sie die API-Adresse, die Mandanten-ID und die Projekt-ID aus dem Reiter Zugriff . Falls für die API ein Schlüssel erforderlich ist, benötigen Sie außerdem einen der API-Schlüssel des Projekts. Weitere Informationen finden Sie unter API-Zugriff für AI Answers einrichten.

Eine Frage senden

Senden Sie eine POST-Anfrage an die API-Adresse des Projekts mit einem JSON-Hauptteil. Verwenden Sie dabei folgende Header:

Kopfzeile

Wert

Content-Type

application/json

Authorization

Bearer, gefolgt von Ihrem API-Schlüssel. Senden Sie diesen Header nur, wenn die API auf API-Schlüssel erforderlich eingestellt ist. Lassen Sie ihn weg, wenn die API öffentlich ist.

Der Textkörper enthält folgende Felder. Alle Felder sind Pflichtfelder, mit Ausnahme von history:

Feld

Wert

tenantId

Die Mieter-ID auf der Registerkarte Zugriff .

projectId

Die Projekt-ID auf der Registerkarte Zugriff .

language

Der Sprachcode des Inhalts, auf den geantwortet werden soll. Zum Beispiel: en.

message

Die Frage als Klartext.

history

Frühere Fragen und Antworten aus der Unterhaltung, beginnend mit der ältesten. Jeder Eintrag enthält eine role(entweder user oder assistant) sowie einen content. Maximal 20 Einträge.

Die API speichert keine Unterhaltungen. Um eine Folgefrage zu stellen, senden Sie bitte die früheren Fragen und Antworten aus history.

Zum Beispiel:

curl -N -X POST "<API address>" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API key>" \
  -d '{
    "tenantId": "<tenant ID>",
    "projectId": "<project ID>",
    "language": "en",
    "message": "Can I publish it to more than one channel?",
    "history": [
      {"role": "user", "content": "How do I publish a topic?"},
      {"role": "assistant", "content": "To publish a topic, add it to a publication and select Publish."}
    ]
  }'

Antwort lesen

Die Antwort wird als Strom von vom Server gesendeten Ereignissen zurückgegeben, sodass Ihre Anwendung den Text bereits anzeigen kann, während er noch geschrieben wird. Jedes Ereignis besteht aus einer Zeile, die mit data: beginnt, gefolgt von einem JSON-Objekt. Das Feld type gibt an, um welche Art von Ereignis es sich handelt:

Typ

Inhalt

answer

Das erste Ereignis. answerId identifiziert diese Antwort.

text

Ein Teil der Antwort ist content enthalten. Füge die Teile in der Reihenfolge zusammen, in der sie vorkommen, ohne etwas dazwischenzusetzen. Ein Teil kann mitten in einem Wort enden.

sources

The topics on which the answer is based are listed in the sources. Each topic has a url and a title. The url is relative to the address of your published portal; therefore, add the portal address before it to create a link.

error

Beim Verfassen der Antwort ist ein Fehler aufgetreten. Betrachten Sie die Antwort als fehlgeschlagen.

done

Das letzte Ereignis. Dafür kann es einen reason geben, der im Folgenden beschrieben wird.

Wenn die Antwort vollständig ist, enthält das done -Ereignis keinen reason. Wenn es einen reason enthält, gibt dieser an, warum die Antwort beendet wurde:

Grund

Bedeutung

no_match

Nichts in den veröffentlichten Inhalten beantwortet die Frage.

refused

Die Frage wurde abgelehnt. Zeige keinen Text an, der vor diesem Ereignis eingegangen ist.

not_available

Derzeit können keine Antworten gegeben werden. Versuchen Sie es später noch einmal.

Zum Beispiel:

data: {"type": "answer", "answerId": "<answer ID>"}

data: {"type": "text", "content": "To publish a topic, add it to "}

data: {"type": "text", "content": "a publication and select Publish."}

data: {"type": "sources", "sources": [{"url": "en/publish/publish-a-publication", "title": "Publish a publication"}]}

data: {"type": "done"}

Das Streamen einer Antwort dauert in der Regel 5 bis 20 Sekunden.

Fehler

Fehler werden als HTTP-Statuscode zurückgegeben, bevor Ereignisse gesendet werden:

Status

Bedeutung

401

Der API-Schlüssel fehlt oder wird nicht akzeptiert.

403

Verboten.

404

Die API ist für dieses Projekt deaktiviert, oder es wurde noch nichts daraus veröffentlicht.