Zum Hauptinhalt springen
DELETE
/
knowledge
/
{folderId}
/
{attachmentId}
Delete a file from a knowledge folder
curl --request DELETE \
  --url https://api.langdock.com/knowledge/{folderId}/{attachmentId} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.langdock.com/knowledge/{folderId}/{attachmentId}"

headers = {"Authorization": "Bearer <token>"}

response = requests.delete(url, headers=headers)

print(response.text)
const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.langdock.com/knowledge/{folderId}/{attachmentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.langdock.com/knowledge/{folderId}/{attachmentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.langdock.com/knowledge/{folderId}/{attachmentId}"

req, _ := http.NewRequest("DELETE", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.delete("https://api.langdock.com/knowledge/{folderId}/{attachmentId}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.langdock.com/knowledge/{folderId}/{attachmentId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
Du nutzt unsere API in einem Dedicated Deployment? Ersetze einfach api.langdock.com durch die Base URL deines Deployments: <deployment-url>/api/public
Löscht eine Datei (Attachment) aus einer Wissensdatenbank. Dies entfernt die Datei und alle zugehörigen Embeddings, sodass der Inhalt nicht mehr durchsuchbar ist.
Erfordert einen API-Schlüssel mit dem KNOWLEDGE_FOLDER_API Scope. Der API-Schlüssel selbst benötigt die Rolle Bearbeiter für die Wissensdatenbank. Siehe Wissensdatenbank mit der API teilen für die Einrichtung.

Anforderungsformat

Pfadparameter

ParameterTypErforderlichBeschreibung
folderIdstringJaDie ID der Wissensdatenbank
attachmentIdstringJaDie ID des zu löschenden Attachments

Beispiele

Löschen mit cURL

curl -X DELETE "https://api.langdock.com/knowledge/{folderId}/{attachmentId}" \
  -H "Authorization: Bearer YOUR_API_KEY"

Löschen mit JavaScript

const axios = require("axios");

async function deleteAttachment(folderId, attachmentId) {
  const response = await axios.delete(
    `https://api.langdock.com/knowledge/${folderId}/${attachmentId}`,
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
      },
    }
  );

  return response.data;
}

// Beispiel
try {
  const result = await deleteAttachment("folder_abc123", "att_xyz789");
  console.log("Attachment gelöscht:", result.message);
} catch (error) {
  console.error("Löschen fehlgeschlagen:", error.response?.data?.message);
}

Mehrere Dateien löschen

async function deleteMultipleAttachments(folderId, attachmentIds) {
  const results = await Promise.allSettled(
    attachmentIds.map((id) => deleteAttachment(folderId, id))
  );

  const succeeded = results.filter((r) => r.status === "fulfilled").length;
  const failed = results.filter((r) => r.status === "rejected").length;

  console.log(`${succeeded} Dateien gelöscht, ${failed} fehlgeschlagen`);
  return results;
}

Antwortformat

Erfolgreiche Antwort (200 OK)

{
  status: "success";
  message: "Attachment deleted";
}

Beispielantwort

{
  "status": "success",
  "message": "Attachment deleted"
}

Fehlerbehandlung

try {
  const response = await deleteAttachment(folderId, attachmentId);
} 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 diese Wissensdatenbank");
        break;
      case 404:
        console.error("Wissensdatenbank oder Attachment nicht gefunden");
        break;
      case 429:
        console.error("Rate Limit überschritten");
        break;
      case 500:
        console.error("Server-Fehler");
        break;
    }
  }
}

Wichtige Hinweise

Das Löschen ist endgültig. Die Datei und alle zugehörigen Embeddings werden entfernt und können nicht wiederhergestellt werden.
  • Das Attachment muss zur angegebenen Wissensdatenbank gehören
  • Die Wissensdatenbank muss mit deinem API-Schlüssel geteilt sein
  • Das Löschen eines Attachments entfernt es sofort aus den Suchergebnissen
  • Embeddings, die mit dem Attachment verknüpft sind, werden ebenfalls gelöscht
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

attachmentId
string
erforderlich

The ID of the attachment to delete

Antwort

200

Attachment deleted successfully