Référence de l’API REST Procurize.AI#

Accédez programmatiquement à votre base de connaissances – documents, questionnaires, RAG et rapports – en utilisant votre jeton API.

Applicable à : Procurize.AI API v1
Authentification : clé API via l’en‑tête X-API-Key (voir Jetons API pour la gestion des jetons)
URL de base : https://api.procurize.com

Vue d’ensemble#

L’API REST de Procurize.AI fournit un accès programmatique aux fonctionnalités clés de la plateforme. Elle vous permet d’intégrer Procurize.AI à vos systèmes internes, d’automatiser la gestion de la base de connaissances et de créer des flux de travail personnalisés.

Modules pris en charge (authentifiés par jeton) :

Authentification#

Tous les points de terminaison authentifiés nécessitent un jeton API passé dans l’en‑tête de la requête.

En‑têteValeur
X-API-Key<YOUR_API_TOKEN>

Exemple :

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

💡 Les jetons sont liés à votre organisation – vous n’avez pas besoin de spécifier un ID d’organisation dans la requête.

URL de base#

Tous les points de terminaison de l’API REST sont servis sous :

https://api.procurize.com

Gestion des erreurs#

L’API utilise les codes d’état HTTP standard.

CodeSignification
200 OKRequête réussie
201 CreatedRessource créée avec succès
204 No ContentRequête réussie, aucun corps de réponse
400 Bad RequestParamètres invalides ou requête mal formée
401 UnauthorizedJeton API manquant ou invalide
403 ForbiddenLe jeton n’a pas la permission pour cette action
404 Not FoundRessource inexistante
500 Internal Server ErrorErreur serveur inattendue

Les réponses d’erreur incluent un code d’erreur lisible par machine et un message lisible par l’homme.

Référence des modules#

RagArticle#

GET /questionnaire/rag/articles/summary#

Résumé : Résumé pour la page d’accueil

Paramètres :

NomDansTypeObligatoireDescription
projquerystring (uuid)NonID du projet.

Réponse (200) :

{
  "active": 5
}

GET /questionnaire/rag/articles/total#

Résumé : Nombre d’articles

Paramètres :

NomDansTypeObligatoireDescription
qquerystringNonFiltre sur le nom ou le code de l’article.
statequeryarrayNonFiltre sur les états.
projectqueryarrayNonFiltre sur les projets.
typequeryarrayNonFiltre sur les types de documents.

Réponse (200) :

42

GET /questionnaire/rag/articles/list#

Résumé : Obtenir la liste des articles

Paramètres :

NomDansTypeObligatoireDescription
qquerystringNonFiltre sur le nom ou le code de l’article.
statequeryarrayNonFiltre sur les états.
projectqueryarrayNonFiltre sur les projets.
typequeryarrayNonFiltre sur les types de documents.
squerystringNonChamp de tri.
ascquerybooleanNonTri ascendant.
psqueryinteger (int32)NonTaille de page.
pqueryinteger (int32)NonNuméro de page (à partir de 1).

Réponse (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": "Titre de l’article",
      "description": "Description de l’article",
      "documentTypes": [
        {
          "id": "00000000-0000-0000-0000-000000000000",
          "name": "Nom du type",
          "plural": "Noms du type",
          "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": "Analyse terminée avec succès",
          "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#

Résumé : Retourne le contenu Markdown du fichier

Corps de la requête (multipart/form-data) :

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

Réponse (200) :

"Contenu Markdown du fichier"

POST /questionnaire/rag/article/create#

Résumé : Créer un article

Corps de la requête (multipart/form-data) :

{
  "code": "ART-001",
  "name": "Titre de l’article",
  "description": "Description de l’article",
  "content": "# Contenu de l’article\n\nCeci est le contenu de l’article.",
  "url": "https://example.com/file.pdf",
  "file": "binary"
}

Réponse (200) :

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

GET /questionnaire/rag/article/check#

Résumé : Vérifier l’existence d’un article.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.

Réponse (200) :

true

GET /questionnaire/rag/article-info#

Résumé : Obtenir les informations d’un article par code.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.

Réponse (200) :

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

GET /questionnaire/rag/article#

Résumé : Obtenir le contenu d’un article par code

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.
formatquerystringNonSi vrai, renvoie le contenu HTML dans le corps de la réponse. Sinon, renvoie le contenu en format Markdown.
splitquerybooleanNonSi vrai, renvoie le contenu séparé par les éléments RAG.
cssquerybooleanNonSi vrai, renvoie le contenu HTML/PDF avec CSS.

Réponse (200) :

"# Titre de l’article\n\nCeci est le contenu de l’article au format Markdown."

POST /questionnaire/rag/article#

Résumé : Mettre à jour les métadonnées de l’article

Corps de la requête :

{
  "code": "ART-001",
  "name": "Titre de l’article mis à jour",
  "description": "Description mise à jour",
  "projects": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "documentTypes": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Nom du type",
      "plural": "Noms du type"
    }
  ],
  "isShared": true,
  "state": "Active"
}

Réponse (200) :

{}

DELETE /questionnaire/rag/article#

Résumé : Supprimer l’article

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.

GET /questionnaire/rag/article/pdf#

Résumé : Obtenir l’article au format PDF par code

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.

Réponse (200) :

(pdf binary)

GET /questionnaire/rag/article/content#

Résumé : Obtenir le contenu de l’article

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.

Réponse (200) :

{
  "content": "# Titre de l’article\n\nContenu ici."
}

POST /questionnaire/rag/article/content#

Résumé : Mettre à jour le contenu de l’article

Corps de la requête (multipart/form-data) :

{
  "code": "ART-001",
  "content": "# Contenu mis à jour",
  "file": "binary"
}

POST /questionnaire/rag/plural#

Résumé : Obtenir la forme plurielle du nom

Paramètres :

NomDansTypeObligatoireDescription
nounquerystringNonNom à mettre au pluriel.

Réponse (200) :

{
  "plural": "Articles"
}

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

Résumé : Analyser l’article avec l’IA et renvoyer leurs types

Corps de la requête (multipart/form-data) :

{
  "code": "ART-001",
  "content": "# Contenu de l’article"
}

Réponse (200) :

[
  {
    "plural": "Types"
  }
]

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

Résumé : Formater le contenu de l’article avec l’IA

Corps de la requête (multipart/form-data) :

{
  "code": "ART-001",
  "content": "# Contenu de l’article"
}

Réponse (200) :

{
  "formattedContent": "# Contenu d’article formaté"
}

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

Résumé : Améliorer le document à partir des suggestions

Corps de la requête (multipart/form-data) :

{
  "suggestions": [
    {
      "sectionTitle": "Introduction",
      "suggestion": "Ajouter plus de détails ici."
    }
  ],
  "code": "ART-001",
  "content": "# Contenu de l’article"
}

Réponse (200) :

{
  "improvedContent": "# Contenu amélioré"
}

GET /questionnaire/rag/article/parts#

Résumé : Retourne la liste des parties de l’article

Paramètres :

NomDansTypeObligatoireDescription
idqueryarrayOuiListe des parties d’article.

Réponse (200) :

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

GET /questionnaire/rag/article/revisions#

Résumé : Retourne la liste des révisions d’article

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.

Réponse (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": "Analyse terminée",
      "operationId": "op-12345"
    }
  }
]

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

Résumé : Obtenir les informations d’une révision d’article

Paramètres :

NomDansTypeObligatoireDescription
idpathstring (uuid)OuiID de la révision.

Réponse (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": "Analyse terminée",
    "operationId": "op-12345"
  }
}

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

Résumé : Obtenir le contenu d’une révision d’article

Paramètres :

NomDansTypeObligatoireDescription
idpathstring (uuid)OuiID de la révision.

Réponse (200) :

"# Contenu de la révision d’article\n\nVersion précédente."

GET /questionnaire/rag/article/analyze#

Résumé : Analyser le contenu d’un article avec l’IA

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de l’article.
revqueryinteger (int32)NonNuméro de révision.
forcequerybooleanNonForcer la création d’une nouvelle analyse et supprimer le résultat d’analyse incomplet précédent s’il existe.

Réponse (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": "Analyse terminée",
  "operationId": "op-12345"
}

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

Résumé : Obtenir le résultat d’une analyse d’article

Paramètres :

NomDansTypeObligatoireDescription
idpathstring (uuid)OuiID de l’analyse.

Réponse (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": "Analyse terminée",
  "operationId": "op-12345",
  "fragments": [
    "fragment-1",
    "fragment-2"
  ],
  "ownInconcies": "Incohérences propres trouvées",
  "ragInconcies": "Incohérences RAG trouvées",
  "proposals": "Propositions d’amélioration"
}

GET /questionnaire/rag/messages/list#

Résumé : Lister tous les messages

Paramètres :

NomDansTypeObligatoireDescription
idquerystring (uuid)OuiID de la collection RAG.
itemquerystring (uuid)NonID de l’élément RAG.
messagequerystring (uuid)NonID du message.
ascquerybooleanNonTri ascendant.
psqueryinteger (int32)NonTaille de page.
pqueryinteger (int32)NonNuméro de page (à partir de 1).

Réponse (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": "Contenu du message",
      "created": "2025-01-15T10:30:00Z",
      "updated": "2025-01-15T10:30:00Z",
      "replies": 0
    }
  ]
}

POST /questionnaire/rag/messages/add#

Résumé : Ajouter un nouveau message

Paramètres :

NomDansTypeObligatoireDescription
idquerystring (uuid)OuiID de la collection RAG.
itemquerystring (uuid)NonID de l’élément RAG.
messagequerystring (uuid)NonID du message auquel répondre.

Corps de la requête :

{
  "text": "Contenu du nouveau message"
}

Réponse (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": "Contenu du nouveau message",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:30:00Z",
  "replies": 0
}

POST /questionnaire/rag/message#

Résumé : Mettre à jour un message existant

Paramètres :

NomDansTypeObligatoireDescription
cquerystring (uuid)OuiID de la collection RAG.
idquerystring (uuid)OuiID du message.

Corps de la requête :

{
  "text": "Contenu du message mis à jour"
}

Réponse (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": "Contenu du message mis à jour",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:45:00Z",
  "replies": 0
}

DELETE /questionnaire/rag/message#

Résumé : Supprimer un message existant

Paramètres :

NomDansTypeObligatoireDescription
idquerystring (uuid)OuiID du message.

Réponse (200) :

{}

RagFaq#

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

Résumé : Résumé pour la page d’accueil

Paramètres :

NomDansTypeObligatoireDescription
projquerystring (uuid)NonID du projet.

Réponse (200) :

{
  "active": 3
}

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

Résumé : Nombre de collections FAQ.

Paramètres :

NomDansTypeObligatoireDescription
qquerystringNonFiltre sur le nom ou le code de la collection.
statequeryarrayNonFiltre sur les états.
projectqueryarrayNonFiltre sur les projets.

Réponse (200) :

3

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

Résumé : Obtenir la liste des collections FAQ.

Paramètres :

NomDansTypeObligatoireDescription
qquerystringNonFiltre sur le nom ou le code de la collection.
statequeryarrayNonFiltre sur les états.
projectqueryarrayNonFiltre sur les projets.
squerystringNonChamp de tri.
ascquerybooleanNonTri ascendant.
psqueryinteger (int32)NonTaille de page.
pqueryinteger (int32)NonNuméro de page (à partir de 1).

Réponse (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": "Collection FAQ",
      "description": "Description de la collection FAQ",
      "documentTypes": null,
      "size": 5,
      "revision": null,
      "type": "Faq",
      "state": "Active",
      "projects": null,
      "items": null,
      "isShared": false
    }
  ]
}

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

Résumé : Trouver des éléments FAQ.

Paramètres :

NomDansTypeObligatoireDescription
qquerystringOuiFiltre sur la question.
projectquerystring (uuid)NonFiltre sur le projet.
psqueryinteger (int32)NonTaille de page.
pqueryinteger (int32)NonNuméro de page (à partir de 1).

Réponse (200) :

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "Quel est ce produit ?",
      "answer": "C’est un excellent produit.",
      "comment": "FAQ produit",
      "state": "Active"
    }
  ]
}

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

Résumé : Créer une nouvelle collection FAQ.

Corps de la requête (multipart/form-data) :

{
  "code": "FAQ-001",
  "name": "Collection FAQ",
  "description": "Description de la collection FAQ",
  "content": "Contenu ici",
  "file": "binary"
}

Réponse (200) :

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

POST /questionnaire/rag/faq-collection#

Résumé : Mettre à jour les métadonnées d’une collection FAQ.

Corps de la requête :

{
  "code": "FAQ-001",
  "name": "Collection FAQ mise à jour",
  "description": "Description mise à jour",
  "projects": null,
  "documentTypes": null,
  "isShared": false,
  "state": "Active"
}

DELETE /questionnaire/rag/faq-collection#

Résumé : Supprimer une collection FAQ.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de la collection.

GET /questionnaire/rag/faq-collection#

Résumé : Obtenir une collection FAQ.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de la collection.

Réponse (200) :

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

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

Résumé : Vérifier l’existence d’une collection FAQ.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de la collection.

Réponse (200) :

true

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

Résumé : Nombre d’éléments FAQ.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de la collection.
qquerystringNonFiltre sur le contenu de l’élément FAQ.

Corps de la requête :

["Active", "Default"]

Réponse (200) :

5

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

Résumé : Obtenir la liste des éléments FAQ.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de la collection.
qquerystringNonFiltre sur le contenu de l’élément FAQ.
statequeryarrayNonFiltre sur les états.
squerystringNonChamp de tri.
ascquerybooleanNonTri ascendant.
psqueryinteger (int32)NonTaille de page.
pqueryinteger (int32)NonNuméro de page (à partir de 1).

Réponse (200) :

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "Quel est ce produit ?",
      "answer": "C’est un excellent produit.",
      "comment": "FAQ produit",
      "state": "Active"
    }
  ]
}

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

Résumé : Créer un nouvel élément FAQ.

Corps de la requête :

{
  "code": "FAQ-001",
  "index": 0,
  "question": "Quel est ce produit ?",
  "answer": "C’est un excellent produit.",
  "comment": "FAQ produit",
  "state": "Active"
}

Réponse (200) :

{
  "index": 0,
  "question": "Quel est ce produit ?",
  "answer": "C’est un excellent produit.",
  "comment": "FAQ produit",
  "state": "Active"
}

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

Résumé : Obtenir un élément FAQ.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de la collection.
indexqueryinteger (int32)OuiIndex (base zéro) de l’élément FAQ dans la collection.

Réponse (200) :

{
  "index": 0,
  "question": "Quel est ce produit ?",
  "answer": "C’est un excellent produit.",
  "comment": "FAQ produit",
  "state": "Active"
}

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

Résumé : Mettre à jour un élément FAQ.

Corps de la requête :

{
  "code": "FAQ-001",
  "index": 0,
  "newIndex": 1,
  "question": "Question mise à jour ?",
  "answer": "Réponse mise à jour.",
  "comment": "Commentaire mis à jour",
  "state": "Active"
}

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

Résumé : Supprimer un élément FAQ.

Paramètres :

NomDansTypeObligatoireDescription
codequerystringOuiCode de la collection.
indexqueryinteger (int32)OuiIndex (base zéro) de l’élément FAQ dans la collection.

RagQuery#

POST /questionnaire/rag/query#

Résumé : Effectuer une requête dans la base de connaissances RAG

Corps de la requête :

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "Quel est ce produit ?",
  "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
}

Réponse (200) :

{
  "attempt": 1,
  "preparedQuery": {
    "original": "Quel est ce produit ?",
    "enhanced": "Quel est ce produit et ses caractéristiques ?"
  },
  "ragItems": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "distance": 0.25
    }
  ],
  "question": "Quel est ce produit ?",
  "generalInstructions": "En se basant sur la base de connaissances, voici la réponse :",
  "text": "Ce produit est une excellente solution pour vos besoins.",
  "explanation": "La réponse a été trouvée dans plusieurs sources avec une forte confiance."
}

POST /questionnaire/rag/query-stream#

Résumé : Effectuer une requête dans la base de connaissances RAG (flux)

Corps de la requête :

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "Quel est ce produit ?",
  "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
}

Réponse (200) :

[
  {
    "text": "Ce produit est une excellente solution",
    "fragments": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "part": 1,
        "distance": 0.25,
        "type": "Article",
        "code": "ART-001",
        "title": "Titre du produit",
        "fragment": "Fragment de contenu du produit"
      }
    ]
  },
  {
    "text": " pour vos besoins.",
    "fragments": []
  }
]

POST /questionnaire/rag/query-fragments#

Résumé : Effectuer une requête dans la base de connaissances RAG (fragments)

Corps de la requête :

{
  "project": "00000000-0000-0000-0000-000000000000",
  "exclude_documents": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "query": "Quel est ce produit ?",
  "top_k": 5,
  "similarity_threshold": 0.5,
  "prepare_query": true
}

Réponse (200) :

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

Articles associés#

en haut
Sélectionnez la langue