Procurize.AI REST-API-Referenz#

Greifen Sie programmgesteuert auf Ihre Wissensdatenbank – Dokumente, Fragebögen, RAG und Berichte – mit Ihrem API‑Token zu.

Gilt für: Procurize.AI API v1
Authentifizierung: API‑Schlüssel über den Header X-API-Key (siehe API‑Tokens für die Token‑Verwaltung)
Basis‑URL: https://api.procurize.com

Überblick#

Die Procurize.AI REST‑API bietet programmgesteuerten Zugriff auf zentrale Plattform‑Funktionen. Sie ermöglicht die Integration von Procurize.AI in Ihre internen Systeme, die Automatisierung der Wissensdatenbank‑Verwaltung und den Aufbau individueller Workflows.

Unterstützte Module (token‑authentifiziert):

Authentifizierung#

Alle authentifizierten Endpunkte benötigen ein API‑Token, das im Request‑Header übergeben wird.

HeaderWert
X-API-Key<YOUR_API_TOKEN>

Beispiel:

curl -X GET "https://api.procurize.com/v1/..." \
  -H "X-API-Key: your-api-token-here"

💡 Tokens sind an Ihre Organisation gebunden – Sie müssen keine Organisations‑ID im Request angeben.

Basis‑URL#

Alle REST‑API‑Endpunkte werden unter folgender URL bereitgestellt:

https://api.procurize.com

Fehlerbehandlung#

Die API verwendet die üblichen HTTP‑Statuscodes.

CodeBedeutung
200 OKAnfrage erfolgreich
201 CreatedRessource erfolgreich erstellt
204 No ContentAnfrage erfolgreich, kein Antwort‑Body
400 Bad RequestUngültige Parameter oder fehlerhafte Anfrage
401 UnauthorizedFehlendes oder ungültiges API‑Token
403 ForbiddenToken hat keine Berechtigung für diese Aktion
404 Not FoundRessource existiert nicht
500 Internal Server ErrorUnerwarteter Server‑Fehler

Fehlerantworten enthalten einen maschinenlesbaren Fehlercode und eine menschenlesbare Meldung.

Modul‑Referenz#

RagArticle#

GET /questionnaire/rag/articles/summary#

Zusammenfassung: Zusammenfassung für die Startseite

Parameter:

NameOrtTypErforderlichBeschreibung
projquerystring (uuid)NeinProjekt‑ID.

Antwort (200):

{
  "active": 5
}

GET /questionnaire/rag/articles/total#

Zusammenfassung: Anzahl der Artikel

Parameter:

NameOrtTypErforderlichBeschreibung
qquerystringNeinFilter nach Artikelnamen oder -code.
statequeryarrayNeinFilter nach Zuständen.
projectqueryarrayNeinFilter nach Projekten.
typequeryarrayNeinFilter nach Dokument‑Typen.

Antwort (200):

42

GET /questionnaire/rag/articles/list#

Zusammenfassung: Liste der Artikel abrufen

Parameter:

NameOrtTypErforderlichBeschreibung
qquerystringNeinFilter nach Artikelnamen oder -code.
statequeryarrayNeinFilter nach Zuständen.
projectqueryarrayNeinFilter nach Projekten.
typequeryarrayNeinFilter nach Dokument‑Typen.
squerystringNeinSortierfeld.
ascquerybooleanNeinAufsteigende Sortierung.
psqueryinteger (int32)NeinSeitengröße.
pqueryinteger (int32)Nein1‑basierte Seitennummer.

Antwort (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 42,
    "totalPages": 5
  },
  "items": [
    {
      "code": "ART-001",
      "org": "00000000-0000-0000-0000-000000000000",
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Article Title",
      "description": "Article description",
      "documentTypes": [
        {
          "id": "00000000-0000-0000-0000-000000000000",
          "name": "Type Name",
          "plural": "Type Names",
          "count": 5
        }
      ],
      "size": 150,
      "revision": {
        "id": "00000000-0000-0000-0000-000000000000",
        "collectionId": "00000000-0000-0000-0000-000000000000",
        "rev": 3,
        "date": "2025-01-15T10:30:00Z",
        "author": {
          "id": "user123",
          "name": "John Doe",
          "email": "john.doe@example.com",
          "login": "johndoe",
          "ra": true
        },
        "authorName": "John Doe",
        "analysisSummary": {
          "id": "00000000-0000-0000-0000-000000000000",
          "initiator": {
            "id": "user123",
            "name": "John Doe",
            "email": "john.doe@example.com",
            "login": "johndoe",
            "ra": true
          },
          "created": "2025-01-15T10:30:00Z",
          "state": "Completed",
          "stateDate": "2025-01-15T10:35:00Z",
          "stateDetails": "Analysis completed successfully",
          "operationId": "op-12345"
        }
      },
      "type": "Article",
      "state": "Active",
      "projects": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "items": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "isShared": false
    }
  ]
}

POST /questionnaire/rag/file-to-md#

Zusammenfassung: Gibt Markdown‑Inhalt aus der Datei zurück

Request Body (multipart/form-data):

{
  "url": "https://example.com/file.pdf",
  "file": "binary"
}

Antwort (200):

"Markdown content from file"

POST /questionnaire/rag/article/create#

Zusammenfassung: Artikel erstellen

Request Body (multipart/form-data):

{
  "code": "ART-001",
  "name": "Article Title",
  "description": "Article description",
  "content": "# Article Content\n\nThis is the article content.",
  "url": "https://example.com/file.pdf",
  "file": "binary"
}

Antwort (200):

{
  "code": "ART-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Article Title",
  "description": "Article description",
  "documentTypes": null,
  "size": 150,
  "revision": null,
  "type": "Article",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/article/check#

Zusammenfassung: Existenz des Artikels prüfen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.

Antwort (200):

true

GET /questionnaire/rag/article-info#

Zusammenfassung: Artikelinformationen nach Code abrufen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.

Antwort (200):

{
  "code": "ART-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Article Title",
  "description": "Article description",
  "documentTypes": null,
  "size": 150,
  "revision": null,
  "type": "Article",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/article#

Zusammenfassung: Artikelinhalt nach Code abrufen

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.
formatquerystringNeinWenn true, wird HTML‑Inhalt im Antwort‑Body zurückgegeben. Andernfalls wird der Artikelinhalt im Markdown‑Format zurückgegeben.
splitquerybooleanNeinWenn true, wird der Inhalt nach RAG‑Elementen getrennt zurückgegeben.
cssquerybooleanNeinWenn true, wird der HTML/PDF‑Inhalt mit CSS zurückgegeben.

Antwort (200):

"# Article Title\n\nThis is the article content in Markdown format."

POST /questionnaire/rag/article#

Zusammenfassung: Metadaten des Artikels aktualisieren

Request Body:

{
  "code": "ART-001",
  "name": "Updated Article Title",
  "description": "Updated description",
  "projects": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "documentTypes": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Type Name",
      "plural": "Type Names"
    }
  ],
  "isShared": true,
  "state": "Active"
}

Antwort (200):

{}

DELETE /questionnaire/rag/article#

Zusammenfassung: Artikel löschen

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.

GET /questionnaire/rag/article/pdf#

Zusammenfassung: Artikel als PDF nach Code abrufen

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.

Antwort (200):

(pdf binary)

GET /questionnaire/rag/article/content#

Zusammenfassung: Artikelinhalt abrufen

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.

Antwort (200):

{
  "content": "# Article Title\n\nContent here."
}

POST /questionnaire/rag/article/content#

Zusammenfassung: Artikelinhalt aktualisieren

Request Body (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Updated Content",
  "file": "binary"
}

POST /questionnaire/rag/plural#

Zusammenfassung: Pluralform des Substantivs erhalten

Parameter:

NameOrtTypErforderlichBeschreibung
nounquerystringNeinSubstantiv, das pluralisiert werden soll.

Antwort (200):

{
  "plural": "Articles"
}

POST /questionnaire/rag/article/find-types#

Zusammenfassung: Artikel mit KI analysieren und deren Typen zurückgeben

Request Body (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Article Content"
}

Antwort (200):

[
  {
    "plural": "Types"
  }
]

POST /questionnaire/rag/article/format-with-ai#

Zusammenfassung: Artikelinhalt mit KI formatieren

Request Body (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Article Content"
}

Antwort (200):

{
  "formattedContent": "# Formatted Article Content"
}

POST /questionnaire/rag/article/improve-on-suggestions#

Zusammenfassung: Dokument basierend auf Vorschlägen verbessern

Request Body (multipart/form-data):

{
  "suggestions": [
    {
      "sectionTitle": "Introduction",
      "suggestion": "Add more details here."
    }
  ],
  "code": "ART-001",
  "content": "# Article Content"
}

Antwort (200):

{
  "improvedContent": "# Improved Content"
}

GET /questionnaire/rag/article/parts#

Zusammenfassung: Liste der Artikelteile zurückgeben

Parameter:

NameOrtTypErforderlichBeschreibung
idqueryarrayJaListe der Artikelteile.

Antwort (200):

[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "code": "part-1",
    "title": "Introduction",
    "orderNumber": 1,
    "content": "Introduction content."
  }
]

GET /questionnaire/rag/article/revisions#

Zusammenfassung: Liste der Artikelrevisionen zurückgeben

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.

Antwort (200):

[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "collectionId": "00000000-0000-0000-0000-000000000000",
    "rev": 1,
    "date": "2025-01-15T10:30:00Z",
    "author": {
      "id": "user123",
      "name": "John Doe",
      "email": "john.doe@example.com",
      "login": "johndoe",
      "ra": true
    },
    "authorName": "John Doe",
    "analysisSummary": {
      "id": "00000000-0000-0000-0000-000000000000",
      "initiator": {
        "id": "user123",
        "name": "John Doe",
        "email": "john.doe@example.com",
        "login": "johndoe",
        "ra": true
      },
      "created": "2025-01-15T10:30:00Z",
      "state": "Completed",
      "stateDate": "2025-01-15T10:35:00Z",
      "stateDetails": "Analysis completed",
      "operationId": "op-12345"
    }
  }
]

GET /questionnaire/rag/article/revisions/info/{id}#

Zusammenfassung: Artikelrevisionsinformationen abrufen

Parameter:

NameOrtTypErforderlichBeschreibung
idpathstring (uuid)JaRevisions‑ID.

Antwort (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "collectionId": "00000000-0000-0000-0000-000000000000",
  "rev": 1,
  "date": "2025-01-15T10:30:00Z",
  "author": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "authorName": "John Doe",
  "analysisSummary": {
    "id": "00000000-0000-0000-0000-000000000000",
    "initiator": {
      "id": "user123",
      "name": "John Doe",
      "email": "john.doe@example.com",
      "login": "johndoe",
      "ra": true
    },
    "created": "2025-01-15T10:30:00Z",
    "state": "Completed",
    "stateDate": "2025-01-15T10:35:00Z",
    "stateDetails": "Analysis completed",
    "operationId": "op-12345"
  }
}

GET /questionnaire/rag/article/revisions/{id}#

Zusammenfassung: Artikelrevisionsinhalt abrufen

Parameter:

NameOrtTypErforderlichBeschreibung
idpathstring (uuid)JaRevisions‑ID.

Antwort (200):

"# Article Revision Content\n\nPrevious version."

GET /questionnaire/rag/article/analyze#

Zusammenfassung: Artikelinhalt mit KI analysieren

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode des Artikels.
revqueryinteger (int32)NeinRevisions‑Nummer.
forcequerybooleanNeinErzwungenes Erstellen einer neuen Analyse und Löschen eines vorherigen unvollständigen Analyse‑Ergebnisses, falls vorhanden.

Antwort (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "initiator": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "created": "2025-01-15T10:30:00Z",
  "state": "Completed",
  "stateDate": "2025-01-15T10:35:00Z",
  "stateDetails": "Analysis completed",
  "operationId": "op-12345"
}

GET /questionnaire/rag/article/analyze/{id}#

Zusammenfassung: Artikelanalyseergebnis abrufen

Parameter:

NameOrtTypErforderlichBeschreibung
idpathstring (uuid)JaAnalyse‑ID.

Antwort (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "initiator": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "created": "2025-01-15T10:30:00Z",
  "state": "Completed",
  "stateDate": "2025-01-15T10:35:00Z",
  "stateDetails": "Analysis completed",
  "operationId": "op-12345",
  "fragments": [
    "fragment-1",
    "fragment-2"
  ],
  "ownInconcies": "Own inconsistencies found",
  "ragInconcies": "RAG inconsistencies found",
  "proposals": "Improvement proposals"
}

GET /questionnaire/rag/messages/list#

Zusammenfassung: Alle Nachrichten auflisten

Parameter:

NameOrtTypErforderlichBeschreibung
idquerystring (uuid)JaRAG‑Collection‑ID.
itemquerystring (uuid)NeinRAG‑Item‑ID.
messagequerystring (uuid)NeinNachrichten‑ID.
ascquerybooleanNeinAufsteigende Sortierung.
psqueryinteger (int32)NeinSeitengröße.
pqueryinteger (int32)Nein1‑basierte Seitennummer.

Antwort (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "replyTo": null,
      "questionnaire": null,
      "section": null,
      "question": null,
      "ragCollection": "00000000-0000-0000-0000-000000000000",
      "ragItem": "00000000-0000-0000-0000-000000000000",
      "targetId": "00000000-0000-0000-0000-000000000000",
      "targetType": "Question",
      "targetNum": 1,
      "author": {
        "id": "user123",
        "name": "John Doe",
        "email": "john.doe@example.com",
        "login": "johndoe",
        "ra": true
      },
      "text": "Message content",
      "created": "2025-01-15T10:30:00Z",
      "updated": "2025-01-15T10:30:00Z",
      "replies": 0
    }
  ]
}

POST /questionnaire/rag/messages/add#

Zusammenfassung: Neue Nachricht hinzufügen

Parameter:

NameOrtTypErforderlichBeschreibung
idquerystring (uuid)JaRAG‑Collection‑ID.
itemquerystring (uuid)NeinRAG‑Item‑ID.
messagequerystring (uuid)NeinNachrichten‑ID zum Antworten.

Request Body:

{
  "text": "New message content"
}

Antwort (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "replyTo": null,
  "questionnaire": null,
  "section": null,
  "question": null,
  "ragCollection": "00000000-0000-0000-0000-000000000000",
  "ragItem": "00000000-0000-0000-0000-000000000000",
  "targetId": "00000000-0000-0000-0000-000000000000",
  "targetType": "Question",
  "targetNum": 1,
  "author": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "text": "New message content",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:30:00Z",
  "replies": 0
}

POST /questionnaire/rag/message#

Zusammenfassung: Bestehende Nachricht aktualisieren

Parameter:

NameOrtTypErforderlichBeschreibung
cquerystring (uuid)JaRAG‑Collection‑ID.
idquerystring (uuid)JaNachrichten‑ID.

Request Body:

{
  "text": "Updated message content"
}

Antwort (200):

{
  "id": "00000000-0000-0000-0000-000000000000",
  "replyTo": null,
  "questionnaire": null,
  "section": null,
  "question": null,
  "ragCollection": "00000000-0000-0000-0000-000000000000",
  "ragItem": "00000000-0000-0000-0000-000000000000",
  "targetId": "00000000-0000-0000-0000-000000000000",
  "targetType": "Question",
  "targetNum": 1,
  "author": {
    "id": "user123",
    "name": "John Doe",
    "email": "john.doe@example.com",
    "login": "johndoe",
    "ra": true
  },
  "text": "Updated message content",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:45:00Z",
  "replies": 0
}

DELETE /questionnaire/rag/message#

Zusammenfassung: Bestehende Nachricht löschen

Parameter:

NameOrtTypErforderlichBeschreibung
idquerystring (uuid)JaNachrichten‑ID.

Antwort (200):

{}

RagFaq#

GET /questionnaire/rag/faq-collections/summary#

Zusammenfassung: Zusammenfassung für die Startseite

Parameter:

NameOrtTypErforderlichBeschreibung
projquerystring (uuid)NeinProjekt‑ID.

Antwort (200):

{
  "active": 3
}

GET /questionnaire/rag/faq-collections/total#

Zusammenfassung: Anzahl der FAQ‑Sammlungen.

Parameter:

NameOrtTypErforderlichBeschreibung
qquerystringNeinFilter nach Sammlungs‑Name oder -Code.
statequeryarrayNeinFilter nach Zuständen.
projectqueryarrayNeinFilter nach Projekten.

Antwort (200):

3

GET /questionnaire/rag/faq-collections/list#

Zusammenfassung: Liste der FAQ‑Sammlungen abrufen.

Parameter:

NameOrtTypErforderlichBeschreibung
qquerystringNeinFilter nach Sammlungs‑Name oder -Code.
statequeryarrayNeinFilter nach Zuständen.
projectqueryarrayNeinFilter nach Projekten.
squerystringNeinSortierfeld.
ascquerybooleanNeinAufsteigende Sortierung.
psqueryinteger (int32)NeinSeitengröße.
pqueryinteger (int32)Nein1‑basierte Seitennummer.

Antwort (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 3,
    "totalPages": 1
  },
  "items": [
    {
      "code": "FAQ-001",
      "org": "00000000-0000-0000-0000-000000000000",
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "FAQ Collection",
      "description": "FAQ collection description",
      "documentTypes": null,
      "size": 5,
      "revision": null,
      "type": "Faq",
      "state": "Active",
      "projects": null,
      "items": null,
      "isShared": false
    }
  ]
}

GET /questionnaire/rag/faq-collections/find-items#

Zusammenfassung: FAQ‑Elemente finden.

Parameter:

NameOrtTypErforderlichBeschreibung
qquerystringJaFilter nach Frage.
projectquerystring (uuid)NeinFilter nach Projekt.
psqueryinteger (int32)NeinSeitengröße.
pqueryinteger (int32)Nein1‑basierte Seitennummer.

Antwort (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "What is this product?",
      "answer": "This is a great product.",
      "comment": "Product FAQ",
      "state": "Active"
    }
  ]
}

POST /questionnaire/rag/faq-collection/create#

Zusammenfassung: Neue FAQ‑Sammlung erstellen.

Request Body (multipart/form-data):

{
  "code": "FAQ-001",
  "name": "FAQ Collection",
  "description": "FAQ collection description",
  "content": "Content here",
  "file": "binary"
}

Antwort (200):

{
  "code": "FAQ-001",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "FAQ Collection",
  "description": "FAQ collection description",
  "documentTypes": null,
  "size": 5,
  "revision": null,
  "type": "Faq",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

POST /questionnaire/rag/faq-collection#

Zusammenfassung: Metadaten der FAQ‑Sammlung aktualisieren.

Request Body:

{
  "code": "FAQ-001",
  "name": "Updated FAQ Collection",
  "description": "Updated description",
  "projects": null,
  "documentTypes": null,
  "isShared": false,
  "state": "Active"
}

DELETE /questionnaire/rag/faq-collection#

Zusammenfassung: FAQ‑Sammlung löschen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode der Sammlung.

GET /questionnaire/rag/faq-collection#

Zusammenfassung: FAQ‑Sammlung abrufen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode der Sammlung.

Antwort (200):

{
  "code": "FAQ-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "FAQ Collection",
  "description": "FAQ collection description",
  "documentTypes": null,
  "size": 5,
  "revision": null,
  "type": "Faq",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/faq-collection/check#

Zusammenfassung: Existenz der FAQ‑Sammlung prüfen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode der Sammlung.

Antwort (200):

true

GET /questionnaire/rag/faq-collection/items-total#

Zusammenfassung: Anzahl der FAQ‑Elemente.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode der Sammlung.
qquerystringNeinFilter nach FAQ‑Element‑Inhalt.

Request Body:

["Active", "Default"]

Antwort (200):

5

GET /questionnaire/rag/faq-collection/items#

Zusammenfassung: Liste der FAQ‑Elemente abrufen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode der Sammlung.
qquerystringNeinFilter nach FAQ‑Element‑Inhalt.
statequeryarrayNeinFilter nach Zuständen.
squerystringNeinSortierfeld.
ascquerybooleanNeinAufsteigende Sortierung.
psqueryinteger (int32)NeinSeitengröße.
pqueryinteger (int32)Nein1‑basierte Seitennummer.

Antwort (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "What is this product?",
      "answer": "This is a great product.",
      "comment": "Product FAQ",
      "state": "Active"
    }
  ]
}

POST /questionnaire/rag/faq-collection/item/create#

Zusammenfassung: Neues FAQ‑Element erstellen.

Request Body:

{
  "code": "FAQ-001",
  "index": 0,
  "question": "What is this product?",
  "answer": "This is a great product.",
  "comment": "Product FAQ",
  "state": "Active"
}

Antwort (200):

{
  "index": 0,
  "question": "What is this product?",
  "answer": "This is a great product.",
  "comment": "Product FAQ",
  "state": "Active"
}

GET /questionnaire/rag/faq-collection/item#

Zusammenfassung: FAQ‑Element abrufen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode der Sammlung.
indexqueryinteger (int32)JaNull‑basierter Index des FAQ‑Elements in der Sammlung.

Antwort (200):

{
  "index": 0,
  "question": "What is this product?",
  "answer": "This is a great product.",
  "comment": "Product FAQ",
  "state": "Active"
}

POST /questionnaire/rag/faq-collection/item#

Zusammenfassung: FAQ‑Element aktualisieren.

Request Body:

{
  "code": "FAQ-001",
  "index": 0,
  "newIndex": 1,
  "question": "Updated question?",
  "answer": "Updated answer.",
  "comment": "Updated comment",
  "state": "Active"
}

DELETE /questionnaire/rag/faq-collection/item#

Zusammenfassung: FAQ‑Element löschen.

Parameter:

NameOrtTypErforderlichBeschreibung
codequerystringJaCode der Sammlung.
indexqueryinteger (int32)JaNull‑basierter Index des FAQ‑Elements in der Sammlung.

RagQuery#

POST /questionnaire/rag/query#

Zusammenfassung: Abfrage im RAG‑Wissensbasis durchführen

Request Body:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "What is this product?",
  "yourCompanyName": "Acme Corp",
  "yourCompanyAlias": "Acme",
  "customerName": "John Doe",
  "options": [
    "option1",
    "option2"
  ],
  "multiselect": false,
  "nArticles": 5,
  "nFaqs": 3,
  "threshold": 0.5,
  "debug": false,
  "withJustification": true,
  "withConfidenceLevel": true,
  "withFragments": true,
  "nAttempts": 3
}

Antwort (200):

{
  "attempt": 1,
  "preparedQuery": {
    "original": "What is this product?",
    "enhanced": "What is this product and its features?"
  },
  "ragItems": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "distance": 0.25
    }
  ],
  "question": "What is this product?",
  "generalInstructions": "Based on the knowledge base, here is the answer:",
  "text": "This product is a great solution for your needs.",
  "explanation": "The answer was found in multiple sources with high confidence."
}

POST /questionnaire/rag/query-stream#

Zusammenfassung: Abfrage im RAG‑Wissensbasis durchführen (Streaming)

Request Body: (identisch zum vorherigen Beispiel)

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "What is this product?",
  "yourCompanyName": "Acme Corp",
  "yourCompanyAlias": "Acme",
  "customerName": "John Doe",
  "options": [
    "option1",
    "option2"
  ],
  "multiselect": false,
  "nArticles": 5,
  "nFaqs": 3,
  "threshold": 0.5,
  "debug": false,
  "withJustification": true,
  "withConfidenceLevel": true,
  "withFragments": true,
  "nAttempts": 3
}

Antwort (200):

[
  {
    "text": "This product is a great solution",
    "fragments": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "part": 1,
        "distance": 0.25,
        "type": "Article",
        "code": "ART-001",
        "title": "Product Title",
        "fragment": "Product content fragment"
      }
    ]
  },
  {
    "text": " for your needs.",
    "fragments": []
  }
]

POST /questionnaire/rag/query-fragments#

Zusammenfassung: Abfrage im RAG‑Wissensbasis durchführen (Fragment‑Suche)

Request Body:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "exclude_documents": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "query": "What is this product?",
  "top_k": 5,
  "similarity_threshold": 0.5,
  "prepare_query": true
}

Antwort (200):

{
  "results": [
    {
      "document_id": "00000000-0000-0000-0000-000000000000",
      "document_code": "ART-001",
      "document_title": "Product Title",
      "revision": 3,
      "chunk_index": 0,
      "content": "Product content fragment",
      "metadata": {
        "author": "John Doe",
        "created_at": "2025-01-15T10:30:00Z",
        "last_updated_at": "2025-01-15T10:35:00Z",
        "doc_categories": [
          "Product",
          "Information"
        ]
      },
      "similarity_score": 0.85
    }
  ]
}

Verwandte Artikel#

nach oben
Sprache auswählen