Entwickeln / Anleitungen

Dateien

Wie Sie Dateien an Modelle senden, wann das Gateway sie prüft und maskiert und was beim Hochladen über /v1/files passiert.

Dateien erreichen ein Modell auf zwei Wegen:

  • Inline im Body: als Base64-data:-URL in einer Nachricht an /v1/chat/completions, /v1/responses oder /v1/messages. Diese Dateien kann das Gateway prüfen und maskieren.
  • Hochladen über /v1/files: Das Gateway reicht die Datei unverändert an den Anbieter weiter. Nachrichten verweisen dann per file_id darauf.

Dateiinhalte zulassen

Unter Models → Datenschutz im Abschnitt Dateien steht der Schalter Dateiinhalte zulassen. Standard ist an. Ist er aus, lehnt das Gateway diese Anfragen mit 403 file_content_not_allowed ab:

  • Nachrichten mit Datei-, Bild- oder Audio-Teilen, auch mit file_id-Verweis
  • alle Anfragen an /v1/files und /v1/skills
  • Transkriptionen über /v1/audio/transcriptions

Dateien inline senden

Die Datei steht als data:-URL im Body. Ist die Maskierung für die Anfrage an (siehe Maskierung einschalten), prüft das Gateway die Datei nach dem Dateianalyse-Modus Ihrer Organisation.

Dateien, die Sie per externer URL oder file_id angeben, lädt das Gateway nicht herunter. Es prüft und maskiert sie nicht.

Shell
curl https://api.noirdoc.de/v1/chat/completions \
  -H "Authorization: Bearer $NOIRDOC_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-Noirdoc-Mask: on" \
  -d '{
    "model": "qwen3.8-27b",
    "messages": [{
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Fassen Sie den Vertrag zusammen."
        },
        {"type": "file", "file": {
          "filename": "vertrag.pdf",
          "file_data": "data:application/pdf;base64,JVBERi0..."
        }}
      ]
    }]
  }'

Dateianalyse-Modus wählen

Admins stellen den Modus unter Models → Datenschutz im Abschnitt Dateien ein. Er wirkt auf Inline-Dateien in Anfragen, die das Gateway maskiert. Im Standardmodus Durchreichen erreichen Dateien den Anbieter auch bei eingeschalteter Maskierung unverändert.

ModusIm PortalVerhalten
passthroughDurchreichenStandard. Das Gateway prüft die Datei nicht und leitet sie unverändert weiter.
detect_onlyNur erkennenDas Gateway erkennt personenbezogene Daten und leitet die Datei unverändert weiter.
blockBlockierenEnthält eine Datei personenbezogene Daten, antwortet das Gateway mit 403 file_pii_blocked.
pseudonymizePseudonymisierenDas Gateway ersetzt personenbezogene Daten durch Platzhalter. DOCX, XLSX und Textdateien behalten ihr Format. PDFs und andere Formate ersetzt es durch ihren maskierten Text.

Zwei weitere Einstellungen im selben Abschnitt:

  • Maximale Dateigröße: Größere Dateien analysiert das Gateway nicht. Standard ist 25 MB.
  • OCR für Scans und Bilder: Ohne OCR liest das Gateway keinen Text aus Bildern und gescannten PDFs; solche Dateien prüft es dann nicht. Standard ist aus.

In den Modi block und pseudonymize leitet das Gateway keine Datei weiter, die es nicht prüfen konnte. Überschreitet eine Datei die maximale Dateigröße, lässt sie sich nicht öffnen oder auslesen oder kennt das Gateway ihr Format nicht, antwortet es mit 422 file_unprocessable. Das gilt für jedes Format, auch für PDFs und Bilder. Die Datei erreicht den Anbieter dann nicht. Speichern Sie sie neu oder in einem anderen Format (etwa PDF, DOCX oder XLSX), verkleinern Sie sie oder lassen Sie sie weg.

Ausnahme sind Bilder und gescannte PDFs ohne Textebene, solange OCR für Scans und Bilder aus ist. Solche Dateien leitet das Gateway weiter, ohne sie zu prüfen. Schalten Sie OCR ein, wenn auch diese Dateien geprüft werden sollen.

Dateien hochladen

/v1/files reicht das Hochladen, Abrufen und Löschen von Dateien unverändert an den Anbieter durch. Das Gateway maskiert hier nichts. Deshalb lehnt es das Hochladen mit 403 masking_not_supported_for_endpoint ab, wenn die Maskierungsrichtlinie enforced gilt oder die Anfrage X-Noirdoc-Mask: on sendet. Auflisten, Abrufen, Herunterladen und Löschen bleiben erlaubt.

Den Anbieter bestimmt der Header, der Ihren Schlüssel trägt:

  • Authorization: Bearer oder api-key: Dateien-API im OpenAI-Format
  • x-api-key (Anthropic-SDK): Dateien-API von Anthropic. Den nötigen anthropic-beta-Wert ergänzt das Gateway.

Mit X-Provider: anthropic wählen Sie Anthropic auch bei Authorization: Bearer.

Shell
curl https://api.noirdoc.de/v1/files \
  -H "Authorization: Bearer $NOIRDOC_API_KEY" \
  -F purpose="user_data" \
  -F file="@vertrag.pdf"
Python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.noirdoc.de/v1",
    api_key=os.environ["NOIRDOC_API_KEY"],
)

uploaded = client.files.create(
    file=open("vertrag.pdf", "rb"), purpose="user_data"
)
print(uploaded.id)
TypeScript
import fs from "node:fs";
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.noirdoc.de/v1",
  apiKey: process.env.NOIRDOC_API_KEY,
});

const uploaded = await client.files.create({
  file: fs.createReadStream("vertrag.pdf"),
  purpose: "user_data",
});
console.log(uploaded.id);

Verwaltete Anbieter

Über von Noirdoc verwaltete Anbieter teilen sich mehrere Organisationen ein Konto beim Anbieter. Das Gateway ordnet deshalb jede hochgeladene Datei Ihrer Organisation zu:

  • GET /v1/files listet die Dateien Ihrer Organisation.
  • Eine file_id einer anderen Organisation behandelt das Gateway wie eine unbekannte: 404 object_not_found. Das gilt auch für Verweise in Nachrichten.

Mit einem eigenen Anbieter (BYOK) gilt diese Zuordnung nicht; dort sehen Sie das Konto Ihres Anbieters.

Skills

/v1/skills reicht Anfragen an die Skills-API von Anthropic durch, ebenfalls ohne Maskierung. Für enforced und X-Noirdoc-Mask: on gilt dieselbe Regel wie bei /v1/files: Das Anlegen von Skills und Versionen lehnt das Gateway dann ab. Die Endpunkte im Detail stehen unter Dateien & Skills.

Fehler

StatusCodeBedeutung
403masking_not_supported_for_endpointDer Endpunkt kann nicht maskieren, aber die Maskierungsrichtlinie ist enforced oder die Anfrage sendet X-Noirdoc-Mask: on.
403file_content_not_allowedDie Anfrage enthält Dateien, Bilder oder Audio, und die Organisation lässt keine Dateiinhalte zu.
403file_pii_blockedEine Datei enthält personenbezogene Daten, und der Dateianalyse-Modus der Organisation ist block.
404object_not_foundDas Objekt (Datei, Skill oder gespeicherte Antwort) existiert nicht oder gehört nicht Ihrer Organisation.
422file_unprocessableEine Datei ließ sich für die Prüfung nicht verarbeiten: Sie ist zu groß, nicht lesbar oder hat ein Format ohne Analyse. Das Gateway hat die Anfrage nicht weitergeleitet.
500file_analysis_errorReserviert für Fehler der Dateianalyse. Das Gateway sendet diesen Code derzeit nicht.