Referință API REST Procurize.AI#

Accesează programatic baza ta de cunoștințe – documente, chestionare, RAG și rapoarte – utilizând token-ul tău API.

Se aplică la: API Procurize.AI v1
Autentificare: Cheie API prin antetul X-API-Key (vezi Token-uri API pentru gestionarea token-urilor)
URL de bază: https://api.procurize.com

Prezentare generală#

API-ul REST Procurize.AI oferă acces programatic la funcționalitățile cheie ale platformei. Îți permite să integrezi Procurize.AI cu sistemele interne, să automatizezi gestionarea bazei de cunoștințe și să construiești fluxuri de lucru personalizate.

Module suportate (autentificate prin token):

Autentificare#

Toate punctele finale autentificate necesită un token API transmis în antetul cererii.

AntetValoare
X-API-Key<YOUR_API_TOKEN>

Exemplu:

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

💡 Token-urile sunt legate de organizația ta – nu este necesar să specifici un ID de organizație în cerere .

URL de bază#

Toate punctele finale ale API-ului REST sunt disponibile la:

https://api.procurize.com

Gestionarea erorilor#

API-ul folosește coduri de stare HTTP standard.

CodSemnificație
200 OKCerere cu succes
201 CreatedResursă creată cu succes
204 No ContentCerere cu succes, fără corp de răspuns
400 Bad RequestParametri invalizi sau cerere malformată
401 UnauthorizedToken API lipsă sau invalid
403 ForbiddenToken-ul nu are permisiunea pentru această acțiune
404 Not FoundResursă inexistentă
500 Internal Server ErrorEroare internă a serverului

Răspunsurile de eroare includ un cod de eroare citibil de mașină și un mesaj citibil de om.

Referință module#

RagArticle#

GET /questionnaire/rag/articles/summary#

Rezumat: Rezumat pentru pagina principală

Parametri:

NumeÎnTipObligatoriuDescriere
projquerystring (uuid)NuID-ul proiectului.

Răspuns (200):

{
  "active": 5
}

GET /questionnaire/rag/articles/total#

Rezumat: Număr de articole

Parametri:

NumeÎnTipObligatoriuDescriere
qquerystringNuFiltru pe numele sau codul articolului.
statequeryarrayNuFiltru pe stări.
projectqueryarrayNuFiltru pe proiecte.
typequeryarrayNuFiltru pe tipuri de documente.

Răspuns (200):

42

GET /questionnaire/rag/articles/list#

Rezumat: Obține lista de articole

Parametri:

NumeÎnTipObligatoriuDescriere
qquerystringNuFiltru pe numele sau codul articolului.
statequeryarrayNuFiltru pe stări.
projectqueryarrayNuFiltru pe proiecte.
typequeryarrayNuFiltru pe tipuri de documente.
squerystringNuCâmp de sortare.
ascquerybooleanNuSortare ascendentă.
psqueryinteger (int32)NuDimensiunea paginii.
pqueryinteger (int32)NuNumăr de pagină (începând de la 1).

Răspuns (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": "Titlu Articol",
      "description": "Descriere articol",
      "documentTypes": [
        {
          "id": "00000000-0000-0000-0000-000000000000",
          "name": "Nume Tip",
          "plural": "Nume Tipuri",
          "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#

Rezumat: Returnează conținutul Markdown din fișier

Corp cerere (multipart/form-data):

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

Răspuns (200):

"Markdown content from file"

POST /questionnaire/rag/article/create#

Rezumat: Creare articol

Corp cerere (multipart/form-data):

{
  "code": "ART-001",
  "name": "Titlu Articol",
  "description": "Descriere articol",
  "content": "# Conținut Articol\n\nAcesta este conținutul articolului.",
  "url": "https://example.com/file.pdf",
  "file": "binary"
}

Răspuns (200):

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

GET /questionnaire/rag/article/check#

Rezumat: Verifică existența articolului.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.

Răspuns (200):

true

GET /questionnaire/rag/article-info#

Rezumat: Obține informații despre articol prin cod.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.

Răspuns (200):

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

GET /questionnaire/rag/article#

Rezumat: Obține conținutul articolului prin cod

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.
formatquerystringNuDacă este true, returnează conținut HTML în corpul răspunsului. În caz contrar, returnează conținutul articolului în format Markdown.
splitquerybooleanNuDacă este true, returnează conținutul separat pe elemente RAG.
cssquerybooleanNuDacă este true, returnează conținutul HTML/PDF cu CSS.

Răspuns (200):

"# Titlu Articol\n\nAcesta este conținutul articolului în format Markdown."

POST /questionnaire/rag/article#

Rezumat: Actualizează metadatele articolului

Corp cerere:

{
  "code": "ART-001",
  "name": "Titlu Articol Actualizat",
  "description": "Descriere actualizată",
  "projects": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "documentTypes": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Nume Tip",
      "plural": "Nume Tipuri"
    }
  ],
  "isShared": true,
  "state": "Active"
}

Răspuns (200):

{}

DELETE /questionnaire/rag/article#

Rezumat: Șterge articol

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.

GET /questionnaire/rag/article/pdf#

Rezumat: Obține articolul ca PDF prin cod

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.

Răspuns (200):

(pdf binary)

GET /questionnaire/rag/article/content#

Rezumat: Obține conținutul articolului

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.

Răspuns (200):

{
  "content": "# Titlu Articol\n\nConținut aici."
}

POST /questionnaire/rag/article/content#

Rezumat: Actualizează conținutul articolului

Corp cerere (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Conținut Actualizat",
  "file": "binary"
}

POST /questionnaire/rag/plural#

Rezumat: Obține forma de plural a substantivului

Parametri:

NumeÎnTipObligatoriuDescriere
nounquerystringNuSubstantivul de pluralizat.

Răspuns (200):

{
  "plural": "Articole"
}

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

Rezumat: Analizează articolul cu AI și returnează tipurile acestuia

Corp cerere (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Conținut Articol"
}

Răspuns (200):

[
  {
    "plural": "Tipuri"
  }
]

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

Rezumat: Formatează conținutul articolului cu AI

Corp cerere (multipart/form-data):

{
  "code": "ART-001",
  "content": "# Conținut Articol"
}

Răspuns (200):

{
  "formattedContent": "# Conținut Articol Formatat"
}

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

Rezumat: Îmbunătățește documentul pe baza sugestiilor

Corp cerere (multipart/form-data):

{
  "suggestions": [
    {
      "sectionTitle": "Introducere",
      "suggestion": "Adaugă mai multe detalii aici."
    }
  ],
  "code": "ART-001",
  "content": "# Conținut Articol"
}

Răspuns (200):

{
  "improvedContent": "# Conținut Îmbunătățit"
}

GET /questionnaire/rag/article/parts#

Rezumat: Returnează lista de părți ale articolului

Parametri:

NumeÎnTipObligatoriuDescriere
idqueryarrayDaListă de părți ale articolului.

Răspuns (200):

[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "code": "part-1",
    "title": "Introducere",
    "orderNumber": 1,
    "content": "Conținut introducere."
  }
]

GET /questionnaire/rag/article/revisions#

Rezumat: Returnează lista de revizii ale articolului

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.

Răspuns (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}#

Rezumat: Obține informații despre revizia articolului

Parametri:

NumeÎnTipObligatoriuDescriere
idpathstring (uuid)DaID-ul reviziei.

Răspuns (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}#

Rezumat: Obține conținutul reviziei articolului

Parametri:

NumeÎnTipObligatoriuDescriere
idpathstring (uuid)DaID-ul reviziei.

Răspuns (200):

"# Conținut Revizie Articol\n\nVersiunea anterioară."

GET /questionnaire/rag/article/analyze#

Rezumat: Analizează conținutul articolului cu AI

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul articolului.
revqueryinteger (int32)NuNumărul reviziei.
forcequerybooleanNuForțează crearea unei noi analize și șterge rezultatul incomplet anterior, dacă există.

Răspuns (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}#

Rezumat: Obține rezultatul analizei articolului

Parametri:

NumeÎnTipObligatoriuDescriere
idpathstring (uuid)DaID-ul analizei.

Răspuns (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": "Inconsecvențe proprii găsite",
  "ragInconcies": "Inconsecvențe RAG găsite",
  "proposals": "Propuneri de îmbunătățire"
}

GET /questionnaire/rag/messages/list#

Rezumat: Listează toate mesajele

Parametri:

NumeÎnTipObligatoriuDescriere
idquerystring (uuid)DaID-ul colecției RAG.
itemquerystring (uuid)NuID-ul elementului RAG.
messagequerystring (uuid)NuID-ul mesajului.
ascquerybooleanNuSortare ascendentă.
psqueryinteger (int32)NuDimensiunea paginii.
pqueryinteger (int32)NuNumăr de pagină (începând de la 1).

Răspuns (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": "Conținut mesaj",
      "created": "2025-01-15T10:30:00Z",
      "updated": "2025-01-15T10:30:00Z",
      "replies": 0
    }
  ]
}

POST /questionnaire/rag/messages/add#

Rezumat: Adaugă un mesaj nou

Parametri:

NumeÎnTipObligatoriuDescriere
idquerystring (uuid)DaID-ul colecției RAG.
itemquerystring (uuid)NuID-ul elementului RAG.
messagequerystring (uuid)NuID-ul mesajului la care se răspunde.

Corp cerere:

{
  "text": "Conținut mesaj nou"
}

Răspuns (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": "Conținut mesaj nou",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:30:00Z",
  "replies": 0
}

POST /questionnaire/rag/message#

Rezumat: Actualizează mesajul existent

Parametri:

NumeÎnTipObligatoriuDescriere
cquerystring (uuid)DaID-ul colecției RAG.
idquerystring (uuid)DaID-ul mesajului.

Corp cerere:

{
  "text": "Conținut mesaj actualizat"
}

Răspuns (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": "Conținut mesaj actualizat",
  "created": "2025-01-15T10:30:00Z",
  "updated": "2025-01-15T10:45:00Z",
  "replies": 0
}

DELETE /questionnaire/rag/message#

Rezumat: Șterge mesajul existent

Parametri:

NumeÎnTipObligatoriuDescriere
idquerystring (uuid)DaID-ul mesajului.

Răspuns (200):

{}

RagFaq#

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

Rezumat: Rezumat pentru pagina principală

Parametri:

NumeÎnTipObligatoriuDescriere
projquerystring (uuid)NuID-ul proiectului.

Răspuns (200):

{
  "active": 3
}

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

Rezumat: Număr de colecții FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
qquerystringNuFiltru pe numele sau codul colecției.
statequeryarrayNuFiltru pe stări.
projectqueryarrayNuFiltru pe proiecte.

Răspuns (200):

3

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

Rezumat: Obține lista de colecții FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
qquerystringNuFiltru pe numele sau codul colecției.
statequeryarrayNuFiltru pe stări.
projectqueryarrayNuFiltru pe proiecte.
squerystringNuCâmp de sortare.
ascquerybooleanNuSortare ascendentă.
psqueryinteger (int32)NuDimensiunea paginii.
pqueryinteger (int32)NuNumăr de pagină (începând de la 1).

Răspuns (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": "Colecție FAQ",
      "description": "Descriere colecție FAQ",
      "documentTypes": null,
      "size": 5,
      "revision": null,
      "type": "Faq",
      "state": "Active",
      "projects": null,
      "items": null,
      "isShared": false
    }
  ]
}

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

Rezumat: Găsește elemente FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
qquerystringDaFiltru pe întrebare.
projectquerystring (uuid)NuFiltru pe proiect.
psqueryinteger (int32)NuDimensiunea paginii.
pqueryinteger (int32)NuNumăr de pagină (începând de la 1).

Răspuns (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "Ce este acest produs?",
      "answer": "Acesta este un produs excelent.",
      "comment": "FAQ produs",
      "state": "Active"
    }
  ]
}

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

Rezumat: Creare colecție FAQ nouă.

Corp cerere (multipart/form-data):

{
  "code": "FAQ-001",
  "name": "Colecție FAQ",
  "description": "Descriere colecție FAQ",
  "content": "Conținut aici",
  "file": "binary"
}

Răspuns (200):

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

POST /questionnaire/rag/faq-collection#

Rezumat: Actualizează metadatele colecției FAQ.

Corp cerere:

{
  "code": "FAQ-001",
  "name": "Colecție FAQ Actualizată",
  "description": "Descriere actualizată",
  "projects": null,
  "documentTypes": null,
  "isShared": false,
  "state": "Active"
}

DELETE /questionnaire/rag/faq-collection#

Rezumat: Șterge colecția FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul colecției.

GET /questionnaire/rag/faq-collection#

Rezumat: Obține colecția FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul colecției.

Răspuns (200):

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

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

Rezumat: Verifică existența colecției FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul colecției.

Răspuns (200):

true

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

Rezumat: Număr de elemente FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul colecției.
qquerystringNuFiltru pe conținutul elementului FAQ.

Corp cerere:

["Active", "Default"]

Răspuns (200):

5

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

Rezumat: Obține lista de elemente FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul colecției.
qquerystringNuFiltru pe conținutul elementului FAQ.
statequeryarrayNuFiltru pe stări.
squerystringNuCâmp de sortare.
ascquerybooleanNuSortare ascendentă.
psqueryinteger (int32)NuDimensiunea paginii.
pqueryinteger (int32)NuNumăr de pagină (începând de la 1).

Răspuns (200):

{
  "paging": {
    "pageNumber": 1,
    "pageSize": 10,
    "total": 5,
    "totalPages": 1
  },
  "items": [
    {
      "index": 0,
      "question": "Ce este acest produs?",
      "answer": "Acesta este un produs excelent.",
      "comment": "FAQ produs",
      "state": "Active"
    }
  ]
}

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

Rezumat: Creare element FAQ nou.

Corp cerere:

{
  "code": "FAQ-001",
  "index": 0,
  "question": "Ce este acest produs?",
  "answer": "Acesta este un produs excelent.",
  "comment": "FAQ produs",
  "state": "Active"
}

Răspuns (200):

{
  "index": 0,
  "question": "Ce este acest produs?",
  "answer": "Acesta este un produs excelent.",
  "comment": "FAQ produs",
  "state": "Active"
}

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

Rezumat: Obține element FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul colecției.
indexqueryinteger (int32)DaIndex zero‑based al elementului FAQ în colecție.

Răspuns (200):

{
  "index": 0,
  "question": "Ce este acest produs?",
  "answer": "Acesta este un produs excelent.",
  "comment": "FAQ produs",
  "state": "Active"
}

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

Rezumat: Actualizează element FAQ.

Corp cerere:

{
  "code": "FAQ-001",
  "index": 0,
  "newIndex": 1,
  "question": "Întrebare actualizată?",
  "answer": "Răspuns actualizat.",
  "comment": "Comentariu actualizat",
  "state": "Active"
}

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

Rezumat: Șterge element FAQ.

Parametri:

NumeÎnTipObligatoriuDescriere
codequerystringDaCodul colecției.
indexqueryinteger (int32)DaIndex zero‑based al elementului FAQ în colecție.

RagQuery#

POST /questionnaire/rag/query#

Rezumat: Execută interogare în baza de cunoștințe RAG

Corp cerere:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "Ce este acest produs?",
  "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ăspuns (200):

{
  "attempt": 1,
  "preparedQuery": {
    "original": "Ce este acest produs?",
    "enhanced": "Ce este acest produs și caracteristicile sale?"
  },
  "ragItems": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "distance": 0.25
    }
  ],
  "question": "Ce este acest produs?",
  "generalInstructions": "Pe baza bazei de cunoștințe, iată răspunsul:",
  "text": "Acest produs este o soluție excelentă pentru nevoile tale.",
  "explanation": "Răspunsul a fost găsit în multiple surse cu încredere ridicată."
}

POST /questionnaire/rag/query-stream#

Rezumat: Execută interogare în baza de cunoștințe RAG (flux)

Corp cerere:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "excludeCollections": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "question": "Ce este acest produs?",
  "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ăspuns (200):

[
  {
    "text": "Acest produs este o soluție excelentă",
    "fragments": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "part": 1,
        "distance": 0.25,
        "type": "Article",
        "code": "ART-001",
        "title": "Titlu Produs",
        "fragment": "Fragment conținut produs"
      }
    ]
  },
  {
    "text": " pentru nevoile tale.",
    "fragments": []
  }
]

POST /questionnaire/rag/query-fragments#

Rezumat: Execută interogare în baza de cunoștințe RAG (fragmente)

Corp cerere:

{
  "project": "00000000-0000-0000-0000-000000000000",
  "exclude_documents": [
    "00000000-0000-0000-0000-000000000000"
  ],
  "query": "Ce este acest produs?",
  "top_k": 5,
  "similarity_threshold": 0.5,
  "prepare_query": true
}

Răspuns (200):

{
  "results": [
    {
      "document_id": "00000000-0000-0000-0000-000000000000",
      "document_code": "ART-001",
      "document_title": "Titlu Produs",
      "revision": 3,
      "chunk_index": 0,
      "content": "Fragment conținut produs",
      "metadata": {
        "author": "John Doe",
        "created_at": "2025-01-15T10:30:00Z",
        "last_updated_at": "2025-01-15T10:35:00Z",
        "doc_categories": [
          "Produs",
          "Informație"
        ]
      },
      "similarity_score": 0.85
    }
  ]
}

Articole conexe#

Sus
Selectaţi limba