Zum Hauptinhalt springen
PATCH
/
knowledge
/
{folderId}
Update a file in a knowledge folder
curl --request PATCH \
  --url https://api.langdock.com/knowledge/{folderId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file='@example-file' \
  --form 'url=<string>' \
  --form 'attachmentId=<string>'
Du nutzt unsere API in einem Dedicated Deployment? Ersetze einfach api.langdock.com durch die Base URL deines Deployments: <deployment-url>/api/public
Aktualisiert eine bestehende Datei (Attachment) in einem Wissensordner, indem sie durch eine neue Version ersetzt wird. Die alte Datei wird entfernt und die neue Datei wird verarbeitet und eingebettet.
Erfordert einen API-Schlüssel mit dem KNOWLEDGE_FOLDER_API Scope. Der Wissensordner muss mit dem API-Schlüssel geteilt sein. Siehe Wissensordner mit der API teilen für die Einrichtung.

Anforderungsformat

Dieser Endpunkt akzeptiert multipart/form-data Anfragen mit der angehängten Datei.

Pfadparameter

ParameterTypErforderlichBeschreibung
folderIdstringJaDie ID des Wissensordners

Formularfelder

FeldTypErforderlichBeschreibung
attachmentIdstringJaDie ID des zu aktualisierenden Attachments
filefileJaDie neue Datei zum Hochladen (max. 256MB)
urlstringNeinURL, die Nutzern angezeigt wird, wenn diese Datei in einer Antwort verwendet wird

Beispiele

Aktualisieren mit cURL

curl -X PATCH "https://api.langdock.com/knowledge/{folderId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "attachmentId=att_abc123def456" \
  -F "file=@/pfad/zu/neues-dokument.pdf"

Aktualisieren mit JavaScript

const FormData = require("form-data");
const fs = require("fs");
const axios = require("axios");

async function updateAttachment(folderId, attachmentId, filePath) {
  const form = new FormData();
  form.append("attachmentId", attachmentId);
  form.append("file", fs.createReadStream(filePath));

  const response = await axios.patch(
    `https://api.langdock.com/knowledge/${folderId}`,
    form,
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        ...form.getHeaders(),
      },
    }
  );

  return response.data;
}

// Beispiel
try {
  const result = await updateAttachment(
    "folder_abc123",
    "att_xyz789",
    "/pfad/zu/aktualisierter-bericht.pdf"
  );
  console.log("Attachment aktualisiert:", result);
} catch (error) {
  console.error("Aktualisierung fehlgeschlagen:", error.response?.data?.message);
}

Aktualisieren mit Quell-URL

const FormData = require("form-data");
const fs = require("fs");
const axios = require("axios");

async function updateAttachmentWithUrl(folderId, attachmentId, filePath, sourceUrl) {
  const form = new FormData();
  form.append("attachmentId", attachmentId);
  form.append("file", fs.createReadStream(filePath));
  form.append("url", sourceUrl);

  const response = await axios.patch(
    `https://api.langdock.com/knowledge/${folderId}`,
    form,
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        ...form.getHeaders(),
      },
    }
  );

  return response.data;
}

Antwortformat

Erfolgreiche Antwort (200 OK)

{
  status: "success";
  result: {
    id: string;          // Eindeutige Attachment-ID
    name: string;        // Originaler Dateiname
    mimeType: string;    // MIME-Typ der Datei
    createdAt: string;   // ISO 8601 Zeitstempel
    updatedAt: string;   // ISO 8601 Zeitstempel
    url: string | null;  // Quell-URL, falls angegeben
  };
}

Beispielantwort

{
  "status": "success",
  "result": {
    "id": "att_abc123def456",
    "name": "aktualisierter-bericht.pdf",
    "mimeType": "application/pdf",
    "createdAt": "2025-01-15T10:30:00.000Z",
    "updatedAt": "2025-01-20T14:45:00.000Z",
    "url": null
  }
}

Fehlerbehandlung

try {
  const response = await updateAttachment(folderId, attachmentId, filePath);
} catch (error) {
  if (error.response) {
    switch (error.response.status) {
      case 400:
        console.error("Ungültige Anfrage:", error.response.data.message);
        break;
      case 401:
        console.error("Ungültiger oder fehlender API-Schlüssel");
        break;
      case 403:
        console.error("API-Schlüssel hat keinen Zugriff auf diesen Wissensordner");
        break;
      case 404:
        console.error("Wissensordner oder Attachment nicht gefunden");
        break;
      case 408:
        console.error("Upload-Anfrage hat das Zeitlimit überschritten");
        break;
      case 413:
        console.error("Dateigröße überschreitet das 256MB-Limit");
        break;
      case 429:
        console.error("Rate Limit überschritten");
        break;
      case 500:
        console.error("Server-Fehler");
        break;
    }
  }
}

Verarbeitungsstatus

Nach der Aktualisierung wird die neue Datei asynchron verarbeitet. Verwende den Dateien abrufen Endpunkt, um den Verarbeitungsstatus zu prüfen. Das syncStatus Feld zeigt den aktuellen Zustand:
  • UPLOADING - Datei wird hochgeladen
  • UPLOADED - Datei hochgeladen und in der Warteschlange
  • EXTRACTING - Text wird aus der Datei extrahiert
  • EMBEDDING - Embeddings werden generiert
  • SYNCED - Datei ist bereit für die Suche
  • ACTION_FAILED, EXTRACTION_FAILED, EMBEDDING_FAILED, TIMEOUT - Verarbeitung fehlgeschlagen
Langdock blockiert bewusst Browser-basierte Anfragen, um deinen API-Schlüssel zu schützen und die Sicherheit deiner Anwendungen zu gewährleisten. Weitere Informationen findest du in unserem Guide zu Best Practices für API-Schlüssel.

Autorisierungen

Authorization
string
header
erforderlich

API key as Bearer token. Format "Bearer YOUR_API_KEY"

Pfadparameter

folderId
string
erforderlich

The ID of the knowledge folder

Body

multipart/form-data
file
file

The new file to upload

url
string

URL that is shown to the user if the file is used in an answer

attachmentId
string

The ID of the attachment to update

Antwort

200

Attachment updated successfully