#
URL-Datei-Import
Startet einen asynchronen Import: Die API lädt eine oder mehrere Dateien von presignten URLs herunter, extrahiert deren Text und legt daraus Dokumente samt Chunks an – entweder in einem neu erzeugten oder in einem bestehenden Korpus. Dies ist der programmatische Weg zu demselben Ergebnis, das im aiStudio über Neue Datenquelle einlesen erreicht wird.
Voraussetzungen für alle Anfragen (Basis-URL, Authorization- und kauz-chatbot-Header) finden Sie im
Überblick
. Grundbegriffe (Korpus/Dokument/Chunk, source) finden Sie im
Datenimport-Überblick
.
Der Import läuft asynchron. Beide Start-Endpunkte liefern sofort eine dataImportId zurück, mit der Sie den Fortschritt
weiter unten über GET .../extractions/state abfragen.
Pro Chatbot läuft immer nur ein Datenimport gleichzeitig – unabhängig davon, mit welchem der beiden Start-Endpunkte
er gestartet wurde und welches Korpus er betrifft. Ein Startversuch, während bereits ein Import läuft, schlägt mit
errorCode: "PA_ERR_1006" fehl. Warten Sie den laufenden Import ab (siehe GET .../extractions/state weiter
unten), bevor Sie den nächsten starten.
#
Dateien identifizieren
Jede Datei wird als Paar aus presignedUrl (per GET abrufbare URL) und fileName übergeben.
fileName muss eine echte Dateiendung tragen (z. B. .pdf, .docx) – der MIME-Type wird anhand dieser Endung
bestimmt, nicht anhand der URL oder eines Content-Type-Headers. Eine Datei ohne erkennbare Endung im Namen schlägt mit
einem Fehler wie „Mime type of '…' file couldn't be identified.“ fehl, selbst wenn die presignte URL selbst einen
korrekten Content-Type liefert.
Maximale Dateigröße: 100 MB pro Datei.
#
POST /partner/v1/data-imports/extractions/url-files
Erzeugt ein neues Korpus und extrahiert die angegebenen Dateien hinein.
#
Anfrage
#
Antwort
{
"corpusName": "string",
"urlFiles": [
{ "presignedUrl": "https://…", "fileName": "report.pdf" }
]
}
curl --location --request POST "https://example.kauz.ai/partner/v1/data-imports/extractions/url-files" \
--header "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..." \
--header "kauz-chatbot: helpdesk" \
--header "Content-Type: application/json" \
--data-raw "{
\"corpusName\":\"Produktdokumentation\",
\"urlFiles\":[
{ \"presignedUrl\":\"https://storage.example.com/report.pdf?sig=…\", \"fileName\":\"report.pdf\" }
]
}"
{
"dataImportId": 4711,
"corpusId": "b3e2c1de-5f0b-4c1e-9d33-1b8a1f0c4e77"
}
#
POST /partner/v1/data-imports/extractions/url-files/for-existing-corpus
Extrahiert die angegebenen Dateien in ein bestehendes Korpus.
corpusId muss ein Korpus mit source: "file" referenzieren.
#
Anfrage
#
Antwort
dataImportId, corpusId (wie oben).
curl --location --request POST "https://example.kauz.ai/partner/v1/data-imports/extractions/url-files/for-existing-corpus" \
--header "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..." \
--header "kauz-chatbot: helpdesk" \
--header "Content-Type: application/json" \
--data-raw "{
\"corpusId\":\"b3e2c1de-5f0b-4c1e-9d33-1b8a1f0c4e77\",
\"urlFiles\":[
{ \"presignedUrl\":\"https://storage.example.com/addendum.pdf?sig=…\", \"fileName\":\"addendum.pdf\" }
]
}"
#
Erweiterte Extraktionsparameter (extractionParams)
Jeder Eintrag konfiguriert die Extraktion für eine Dateiendung. Ohne Angabe gelten die im aiStudio hinterlegten Standardeinstellungen .
#
Chunkingstrategien
Die Werte entsprechen weitgehend den im aiStudio wählbaren Strategien, siehe Crawling- und Chunkingstrategie bestimmen :
{
"corpusName": "Produktdokumentation",
"urlFiles": [
{ "presignedUrl": "https://…", "fileName": "report.pdf" }
],
"extractionParams": [
{
"fileExtension": "pdf",
"chunkingStrategy": "fixed_length",
"chunkSize": 500,
"chunkOverlap": 20
}
]
}
#
GET `/partner/v1/data-imports/
Fragt den Fortschritt eines laufenden oder abgeschlossenen Imports ab. Rufen Sie diesen Endpunkt wiederholt auf, bis
alle Einträge in taskStates einen abschließenden Status erreicht haben.
#
Anfrage
#
Antwort
Felder je Eintrag in taskStates:
curl --location "https://example.kauz.ai/partner/v1/data-imports/4711/extractions/state" \
--header "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..." \
--header "kauz-chatbot: helpdesk"
{
"corpusId": "b3e2c1de-5f0b-4c1e-9d33-1b8a1f0c4e77",
"taskStates": [
{
"status": "succeeded",
"numberOfChunks": 18,
"fileMeta": { "name": "report.pdf", "size": 204800 }
}
],
"documentStates": [
{ "name": "report.pdf", "size": 204800, "numberOfChunks": 18 }
]
}