WebsitePlatform Login

Assistant Files API

API zur Verwaltung von Dateien in der Wissensbasis eines Assistenten

Assistant Files API

Die Assistant Files API ermöglicht das programmgesteuerte Verwalten von Dateien in der Wissensbasis eines Assistenten. Diese API ist ideal für die automatische Synchronisation von Dokumenten aus externen Systemen.

Diese API ist eine Premium-Funktion und muss für Ihre Organisation aktiviert werden. Kontaktieren Sie den Support, um Zugang zu beantragen.

Authentifizierung

Diese API verwendet Benutzer-API-Schlüssel. Diese können in den Benutzereinstellungen erstellt werden und haben das Präfix sk_meingpt_.

curl -X GET "https://app.meingpt.com/api/assistant-files/v1/assistants/{assistantId}/files" \
  -H "Authorization: Bearer $MEINGPT_API_KEY"

Berechtigungen

  • Dateien auflisten / Metadaten abrufen: Erfordert VIEW, EDIT oder OWNER Berechtigung für den Assistenten
  • Dateien löschen: Erfordert EDIT oder OWNER Berechtigung für den Assistenten

Endpunkte

Alle Dateien auflisten

GET /api/assistant-files/v1/assistants/{assistantId}/files

Pfad-Parameter:

  • assistantId: Die ID des Assistenten

Antwort:

{
  "files": [
    {
      "id": "doc_abc123",
      "originalName": "handbuch.pdf",
      "mimeType": "application/pdf",
      "size": 245678,
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-01-15T10:35:00Z",
      "availableDerivations": ["text", "chunks"]
    }
  ],
  "count": 1,
  "assistantId": "asst_xyz789"
}

Wenn der Assistent noch keine Dateien hat, wird eine leere Liste zurückgegeben.

Datei-Metadaten abrufen

GET /api/assistant-files/v1/assistants/{assistantId}/files/{documentId}

Pfad-Parameter:

  • assistantId: Die ID des Assistenten
  • documentId: Die ID des Dokuments

Antwort:

{
  "id": "doc_abc123",
  "originalName": "handbuch.pdf",
  "size": 245678,
  "mimeType": "application/pdf",
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:35:00Z",
  "requestedType": "original",
  "available": true,
  "isOriginal": true,
  "isDerived": false,
  "processingStatus": "completed",
  "availableDerivations": [
    {
      "type": "text",
      "size": 45000,
      "createdAt": "2024-01-15T10:32:00Z",
      "status": "completed"
    },
    {
      "type": "chunks",
      "size": 52000,
      "createdAt": "2024-01-15T10:35:00Z",
      "status": "completed"
    }
  ],
  "assistantId": "asst_xyz789"
}

Nutzen Sie updatedAt und size zur Erkennung von Dateiänderungen. CloudRAG speichert keine Datei-Hashes.

Datei löschen

DELETE /api/assistant-files/v1/assistants/{assistantId}/files/{documentId}

Pfad-Parameter:

  • assistantId: Die ID des Assistenten
  • documentId: Die ID des zu löschenden Dokuments

Antwort:

{
  "success": true,
  "deletedDocuments": 3,
  "originalId": "doc_abc123"
}

Das Löschen einer Datei entfernt auch alle abgeleiteten Versionen (Text-Extraktion, Chunks, etc.).

Dateien hochladen

Das Hochladen von Dateien erfolgt über die bestehende interne API und erfordert eine aktive Benutzersitzung:

POST /api/organizations/{organizationId}/documentEngine/documents/upload

Form-Data:

  • file: Die hochzuladende Datei
  • storeId: assistant:{assistantId}

Das Hochladen über die externe API mit API-Schlüssel ist derzeit nicht unterstützt. Nutzen Sie die Web-Oberfläche oder die interne API mit Sitzungs-Authentifizierung.

AssistantId finden

  1. Gehen Sie in den Bearbeitungsmodus Ihres Assistenten
  2. In der URL finden Sie hinter /assistants/ die AssistantId

AssistantId im Assistant Bearbeitungsmodus

Fehlerbehandlung

Die API gibt strukturierte Fehlerantworten zurück:

{
  "status": "error",
  "message": "Assistant not found"
}

HTTP-Statuscodes:

  • 400 - Ungültige Eingabe
  • 401 - Ungültiger oder fehlender API-Schlüssel
  • 403 - Feature nicht aktiviert oder keine Berechtigung
  • 404 - Assistent oder Datei nicht gefunden
  • 500 - Serverfehler

Anwendungsbeispiele

Dateien mit externem System synchronisieren

import requests

API_KEY = "sk_meingpt_..."
ASSISTANT_ID = "cmbhsj4kx0001lt01er0sc3v1"
BASE_URL = "https://app.meingpt.com/api/assistant-files/v1"

headers = {"Authorization": f"Bearer {API_KEY}"}

# Alle vorhandenen Dateien abrufen
response = requests.get(
    f"{BASE_URL}/assistants/{ASSISTANT_ID}/files",
    headers=headers
)
files = response.json()["files"]

# Datei-Index erstellen für Vergleich
existing_files = {f["originalName"]: f for f in files}

# Veraltete Dateien löschen
for filename, file_info in existing_files.items():
    if should_delete(filename):
        requests.delete(
            f"{BASE_URL}/assistants/{ASSISTANT_ID}/files/{file_info['id']}",
            headers=headers
        )