Αναφορά REST API του Procurize.AI#

Πρόσβαση προγραμματιστικά στη βάση γνώσεων – έγγραφα, ερωτηματολόγια, RAG και αναφορές – χρησιμοποιώντας το διακριτικό API σας.

Ισχύει για: Procurize.AI API v1
Αυθεντικοποίηση: Κλειδί API μέσω κεφαλίδας X-API-Key (δείτε API Tokens για διαχείριση διακριτικών)
Βασική URL: https://api.procurize.com

Επισκόπηση#

Το REST API του Procurize.AI παρέχει προγραμματιστική πρόσβαση σε βασικές λειτουργίες της πλατφόρμας. Σας επιτρέπει να ενσωματώσετε το Procurize.AI με τα εσωτερικά σας συστήματα, να αυτοματοποιήσετε τη διαχείριση της βάσης γνώσεων και να δημιουργήσετε προσαρμοσμένες ροές εργασίας.

Υποστηριζόμενες μονάδες (εξουσιοδοτημένες με token):

  • RagArticle – διαχείριση εγγράφων
  • RagFaq – διαχείριση εγγραφών FAQ
  • RagQuery – εκτέλεση ερωτημάτων RAG

Αυθεντικοποίηση#

Όλα τα αυθεντικοποιημένα endpoints απαιτούν ένα διακριτικό API που περνάται στην κεφαλίδα του αιτήματος.

ΚεφαλίδαΤιμή
X-API-Key<YOUR_API_TOKEN>

Παράδειγμα:

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

💡 Τα διακριτικά συνδέονται με τον οργανισμό σας – δεν χρειάζεται να καθορίσετε ID οργανισμού στο αίτημα.

Βασική URL#

Όλα τα endpoints του REST API εξυπηρετούνται κάτω από:

https://api.procurize.com

Διαχείριση Σφαλμάτων#

Το API χρησιμοποιεί τυπικούς κωδικούς κατάστασης HTTP.

ΚωδικόςΣημασία
200 OKΗ αίτηση ήταν επιτυχής
201 CreatedΟ πόρος δημιουργήθηκε επιτυχώς
204 No ContentΗ αίτηση ήταν επιτυχής, χωρίς σώμα απάντησης
400 Bad RequestΜη έγκυρες παράμετροι ή κακόσχημα αίτημα
401 UnauthorizedΛείπει ή είναι μη έγκυρο το διακριτικό API
403 ForbiddenΤο διακριτικό δεν έχει άδεια για αυτήν τη δράση
404 Not FoundΟ πόρος δεν υπάρχει
500 Internal Server ErrorΜη αναμενόμενο σφάλμα διακομιστή

Οι απαντήσεις σφάλματος περιλαμβάνουν κωδικό σφάλματος μηχανής και ανθρώπινο μήνυμα.

Αναφορά Μονάδων#

RagArticle#

GET /questionnaire/rag/articles/summary#

Περίληψη: Περίληψη για την αρχική σελίδα

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
projquerystring (uuid)ΌχιID έργου.

Απάντηση (200):

{
  "active": 5
}

GET /questionnaire/rag/articles/total#

Περίληψη: Αριθμός άρθρων

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
qquerystringΌχιΦίλτρο κατά όνομα ή κωδικό άρθρου.
statequeryarrayΌχιΦίλτρο κατά καταστάσεις.
projectqueryarrayΌχιΦίλτρο κατά έργα.
typequeryarrayΌχιΦίλτρο κατά τύπους εγγράφων.

Απάντηση (200):

42

GET /questionnaire/rag/articles/list#

Περίληψη: Λήψη λίστας άρθρων

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
qquerystringΌχιΦίλτρο κατά όνομα ή κωδικό άρθρου.
statequeryarrayΌχιΦίλτρο κατά καταστάσεις.
projectqueryarrayΌχιΦίλτρο κατά έργα.
typequeryarrayΌχιΦίλτρο κατά τύπους εγγράφων.
squerystringΌχιΠεδίο ταξινόμησης.
ascquerybooleanΌχιΑύξουσα ταξινόμηση.
psqueryinteger (int32)ΌχιΜέγεθος σελίδας.
pqueryinteger (int32)ΌχιΑριθμός σελίδας (από 1).

Απάντηση (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": "Τίτλος Άρθρου",
      "description": "Περιγραφή άρθρου",
      "documentTypes": [
        {
          "id": "00000000-0000-0000-0000-000000000000",
          "name": "Όνομα Τύπου",
          "plural": "Ονόματα Τύπων",
          "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#

Περίληψη: Επιστρέφει περιεχόμενο Markdown από το αρχείο

Σώμα Αιτήματος (multipart/form-data):

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

Απάντηση (200):

"Markdown content from file"

POST /questionnaire/rag/article/create#

Περίληψη: Δημιουργία άρθρου

Σώμα Αιτήματος (multipart/form-data):

{
  "code": "ART-001",
  "name": "Τίτλος Άρθρου",
  "description": "Περιγραφή άρθρου",
  "content": "# Περιεχόμενο Άρθρου\n\nΑυτό είναι το περιεχόμενο του άρθρου.",
  "url": "https://example.com/file.pdf",
  "file": "binary"
}

Απάντηση (200):

{
  "code": "ART-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Τίτλος Άρθρου",
  "description": "Περιγραφή άρθρου",
  "documentTypes": null,
  "size": 150,
  "revision": null,
  "type": "Article",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/article/check#

Περίληψη: Έλεγχος ύπαρξης άρθρου.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.

Απάντηση (200):

true

GET /questionnaire/rag/article-info#

Περίληψη: Λήψη πληροφοριών άρθρου με βάση τον κωδικό.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.

Απάντηση (200):

{
  "code": "ART-001",
  "org": "00000000-0000-0000-0000-000000000000",
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "Τίτλος Άρθρου",
  "description": "Περιγραφή άρθρου",
  "documentTypes": null,
  "size": 150,
  "revision": null,
  "type": "Article",
  "state": "Active",
  "projects": null,
  "items": null,
  "isShared": false
}

GET /questionnaire/rag/article#

Περίληψη: Λήψη περιεχομένου άρθρου με βάση τον κωδικό

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.
formatquerystringΌχιΑν είναι true, επιστρέφει HTML περιεχόμενο στο σώμα της απάντησης. Διαφορετικά επιστρέφει το περιεχόμενο σε μορφή Markdown.
splitquerybooleanΌχιΑν είναι true, επιστρέφει το περιεχόμενο χωρισμένο σε στοιχεία RAG.
cssquerybooleanΌχιΑν είναι true, επιστρέφει το HTML/PDF περιεχόμενο με CSS.

Απάντηση (200):

"# Τίτλος Άρθρου\n\nΑυτό είναι το περιεχόμενο του άρθρου σε μορφή Markdown."

POST /questionnaire/rag/article#

Περίληψη: Ενημέρωση μεταδεδομένων άρθρου

Σώμα Αιτήματος:

{
  "code": "ART-001",
  "name": "Ενημερωμένος Τίτλος Άρθρου",
  "description": "Ενημερωμένη περιγραφή",
  "projects": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "documentTypes": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Όνομα Τύπου",
      "plural": "Ονόματα Τύπων"
    }
  ],
  "isShared": true,
  "state": "Active"
}

Απάντηση (200):

{}

DELETE /questionnaire/rag/article#

Περίληψη: Διαγραφή άρθρου

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.

GET /questionnaire/rag/article/pdf#

Περίληψη: Λήψη άρθρου ως PDF με βάση τον κωδικό

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.

Απάντηση (200):

(pdf binary)

GET /questionnaire/rag/article/content#

Περίληψη: Λήψη περιεχομένου άρθρου

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.

Απάντηση (200):

{
  "content": "# Τίτλος Άρθρου\n\nΠεριεχόμενο εδώ."
}

POST /questionnaire/rag/article/content#

Περίληψη: Ενημέρωση περιεχομένου άρθρου

Σώμα Αιτήματος (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Ενημερωμένο Περιεχόμενο",
  "file": "binary"
}

POST /questionnaire/rag/plural#

Περίληψη: Λήψη πληθυντικού του ουσιαστικού

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
nounquerystringΌχιΟυσιαστικό για πληθυντικό.

Απάντηση (200):

{
  "plural": "Articles"
}

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

Περίληψη: Ανάλυση άρθρου με AI και επιστροφή των τύπων του

Σώμα Αιτήματος (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Περιεχόμενο Άρθρου"
}

Απάντηση (200):

[
  {
    "plural": "Types"
  }
]

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

Περίληψη: Μορφοποίηση περιεχομένου άρθρου με AI

Σώμα Αιτήματος (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Περιεχόμενο Άρθρου"
}

Απάντηση (200):

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

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

Περίληψη: Βελτίωση του εγγράφου βάσει προτάσεων

Σώμα Αιτήματος (multipart/form-data):

{
  "suggestions": [
    {
      "sectionTitle": "Introduction",
      "suggestion": "Add more details here."
    }
  ],
  "code": "ART-001",
  "content": "# Περιεχόμενο Άρθρου"
}

Απάντηση (200):

{
  "improvedContent": "# Improved Content"
}

GET /questionnaire/rag/article/parts#

Περίληψη: Επιστρέφει λίστα με τμήματα άρθρου

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
idqueryarrayΝαιΛίστα με τμήματα άρθρου.

Απάντηση (200):

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

GET /questionnaire/rag/article/revisions#

Περίληψη: Επιστρέφει λίστα με εκδόσεις άρθρου

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.

Απάντηση (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}#

Περίληψη: Λήψη πληροφοριών έκδοσης άρθρου

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
idpathstring (uuid)ΝαιID έκδοσης.

Απάντηση (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}#

Περίληψη: Λήψη περιεχομένου έκδοσης άρθρου

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
idpathstring (uuid)ΝαιID έκδοσης.

Απάντηση (200):

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

GET /questionnaire/rag/article/analyze#

Περίληψη: Ανάλυση περιεχομένου άρθρου με AI

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός του άρθρου.
revqueryinteger (int32)ΌχιΑριθμός έκδοσης.
forcequerybooleanΌχιΑναγκαστική δημιουργία νέας ανάλυσης και διαγραφή τυχόν ατελούς αποτελέσματος.

Απάντηση (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}#

Περίληψη: Λήψη αποτελέσματος ανάλυσης άρθρου

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
idpathstring (uuid)ΝαιID ανάλυσης.

Απάντηση (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#

Περίληψη: Λίστα όλων των μηνυμάτων

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
idquerystring (uuid)ΝαιID Συλλογής RAG.
itemquerystring (uuid)ΌχιID Στοιχείου RAG.
messagequerystring (uuid)ΌχιID Μηνύματος.
ascquerybooleanΌχιΑύξουσα ταξινόμηση.
psqueryinteger (int32)ΌχιΜέγεθος σελίδας.
pqueryinteger (int32)ΌχιΑριθμός σελίδας (από 1).

Απάντηση (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#

Περίληψη: Προσθήκη νέου μηνύματος

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
idquerystring (uuid)ΝαιID Συλλογής RAG.
itemquerystring (uuid)ΌχιID Στοιχείου RAG.
messagequerystring (uuid)ΌχιID Μηνύματος για απάντηση.

Σώμα Αιτήματος:

{
  "text": "New message content"
}

Απάντηση (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#

Περίληψη: Ενημέρωση υπάρχοντος μηνύματος

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
cquerystring (uuid)ΝαιID Συλλογής RAG.
idquerystring (uuid)ΝαιID Μηνύματος.

Σώμα Αιτήματος:

{
  "text": "Updated message content"
}

Απάντηση (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#

Περίληψη: Διαγραφή υπάρχοντος μηνύματος

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
idquerystring (uuid)ΝαιID Μηνύματος.

Απάντηση (200):

{}

RagFaq#

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

Περίληψη: Περίληψη για την αρχική σελίδα

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
projquerystring (uuid)ΌχιID έργου.

Απάντηση (200):

{
  "active": 3
}

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

Περίληψη: Αριθμός συλλογών FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
qquerystringΌχιΦίλτρο κατά όνομα ή κωδικό συλλογής.
statequeryarrayΌχιΦίλτρο κατά καταστάσεις.
projectqueryarrayΌχιΦίλτρο κατά έργα.

Απάντηση (200):

3

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

Περίληψη: Λήψη λίστας συλλογών FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
qquerystringΌχιΦίλτρο κατά όνομα ή κωδικό συλλογής.
statequeryarrayΌχιΦίλτρο κατά καταστάσεις.
projectqueryarrayΌχιΦίλτρο κατά έργα.
squerystringΌχιΠεδίο ταξινόμησης.
ascquerybooleanΌχιΑύξουσα ταξινόμηση.
psqueryinteger (int32)ΌχιΜέγεθος σελίδας.
pqueryinteger (int32)ΌχιΑριθμός σελίδας (από 1).

Απάντηση (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#

Περίληψη: Εύρεση στοιχείων FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
qquerystringΝαιΦίλτρο κατά ερώτηση.
projectquerystring (uuid)ΌχιΦίλτρο κατά έργο.
psqueryinteger (int32)ΌχιΜέγεθος σελίδας.
pqueryinteger (int32)ΌχιΑριθμός σελίδας (από 1).

Απάντηση (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#

Περίληψη: Δημιουργία νέας συλλογής FAQ.

Σώμα Αιτήματος (multipart/form-data):

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

Απάντηση (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#

Περίληψη: Ενημέρωση μεταδεδομένων συλλογής FAQ.

Σώμα Αιτήματος:

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

DELETE /questionnaire/rag/faq-collection#

Περίληψη: Διαγραφή συλλογής FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός της συλλογής.

GET /questionnaire/rag/faq-collection#

Περίληψη: Λήψη συλλογής FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός της συλλογής.

Απάντηση (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#

Περίληψη: Έλεγχος ύπαρξης συλλογής FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός της συλλογής.

Απάντηση (200):

true

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

Περίληψη: Αριθμός στοιχείων FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός της συλλογής.
qquerystringΌχιΦίλτρο κατά περιεχόμενο στοιχείου FAQ.

Σώμα Αιτήματος:

["Active", "Default"]

Απάντηση (200):

5

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

Περίληψη: Λήψη λίστας στοιχείων FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός της συλλογής.
qquerystringΌχιΦίλτρο κατά περιεχόμενο στοιχείου FAQ.
statequeryarrayΌχιΦίλτρο κατά καταστάσεις.
squerystringΌχιΠεδίο ταξινόμησης.
ascquerybooleanΌχιΑύξουσα ταξινόμηση.
psqueryinteger (int32)ΌχιΜέγεθος σελίδας.
pqueryinteger (int32)ΌχιΑριθμός σελίδας (από 1).

Απάντηση (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#

Περίληψη: Δημιουργία νέου στοιχείου FAQ.

Σώμα Αιτήματος:

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

Απάντηση (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#

Περίληψη: Λήψη στοιχείου FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός της συλλογής.
indexqueryinteger (int32)ΝαιΜηδενική θέση του στοιχείου στη συλλογή.

Απάντηση (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#

Περίληψη: Ενημέρωση στοιχείου FAQ.

Σώμα Αιτήματος:

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

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

Περίληψη: Διαγραφή στοιχείου FAQ.

Παράμετροι:

ΌνομαΣτοΤύποςΑπαιτείταιΠεριγραφή
codequerystringΝαιΚωδικός της συλλογής.
indexqueryinteger (int32)ΝαιΜηδενική θέση του στοιχείου στη συλλογή.

RagQuery#

POST /questionnaire/rag/query#

Περίληψη: Εκτέλεση ερωτήματος στη Βάση Γνώσεων RAG

Σώμα Αιτήματος:

{
  "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
}

Απάντηση (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#

Περίληψη: Εκτέλεση ερωτήματος στη Βάση Γνώσεων RAG (stream)

Σώμα Αιτήματος:

{
  "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
}

Απάντηση (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#

Περίληψη: Εκτέλεση ερωτήματος στη Βάση Γνώσεων RAG (fragments)

Σώμα Αιτήματος:

{
  "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
}

Απάντηση (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
    }
  ]
}

Σχετικά Άρθρα#

στην κορυφή
Επιλογή γλώσσας