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 antetulX-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):
- RagArticle – gestionare documente
- RagFaq – gestionare intrări FAQ
- RagQuery – executare interogări RAG
Autentificare#
Toate punctele finale autentificate necesită un token API transmis în antetul cererii.
| Antet | Valoare |
|---|---|
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.
| Cod | Semnificație |
|---|---|
200 OK | Cerere cu succes |
201 Created | Resursă creată cu succes |
204 No Content | Cerere cu succes, fără corp de răspuns |
400 Bad Request | Parametri invalizi sau cerere malformată |
401 Unauthorized | Token API lipsă sau invalid |
403 Forbidden | Token-ul nu are permisiunea pentru această acțiune |
404 Not Found | Resursă inexistentă |
500 Internal Server Error | Eroare 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| proj | query | string (uuid) | Nu | ID-ul proiectului. |
Răspuns (200):
{
"active": 5
}
GET /questionnaire/rag/articles/total#
Rezumat: Număr de articole
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| q | query | string | Nu | Filtru pe numele sau codul articolului. |
| state | query | array | Nu | Filtru pe stări. |
| project | query | array | Nu | Filtru pe proiecte. |
| type | query | array | Nu | Filtru pe tipuri de documente. |
Răspuns (200):
42
GET /questionnaire/rag/articles/list#
Rezumat: Obține lista de articole
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| q | query | string | Nu | Filtru pe numele sau codul articolului. |
| state | query | array | Nu | Filtru pe stări. |
| project | query | array | Nu | Filtru pe proiecte. |
| type | query | array | Nu | Filtru pe tipuri de documente. |
| s | query | string | Nu | Câmp de sortare. |
| asc | query | boolean | Nu | Sortare ascendentă. |
| ps | query | integer (int32) | Nu | Dimensiunea paginii. |
| p | query | integer (int32) | Nu | Numă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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul articolului. |
Răspuns (200):
true
GET /questionnaire/rag/article-info#
Rezumat: Obține informații despre articol prin cod.
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul articolului. |
| format | query | string | Nu | Dacă este true, returnează conținut HTML în corpul răspunsului. În caz contrar, returnează conținutul articolului în format Markdown. |
| split | query | boolean | Nu | Dacă este true, returnează conținutul separat pe elemente RAG. |
| css | query | boolean | Nu | Dacă 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul articolului. |
GET /questionnaire/rag/article/pdf#
Rezumat: Obține articolul ca PDF prin cod
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul articolului. |
Răspuns (200):
(pdf binary)
GET /questionnaire/rag/article/content#
Rezumat: Obține conținutul articolului
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| noun | query | string | Nu | Substantivul 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| id | query | array | Da | Listă 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| id | path | string (uuid) | Da | ID-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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| id | path | string (uuid) | Da | ID-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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul articolului. |
| rev | query | integer (int32) | Nu | Numărul reviziei. |
| force | query | boolean | Nu | Forț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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| id | path | string (uuid) | Da | ID-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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| id | query | string (uuid) | Da | ID-ul colecției RAG. |
| item | query | string (uuid) | Nu | ID-ul elementului RAG. |
| message | query | string (uuid) | Nu | ID-ul mesajului. |
| asc | query | boolean | Nu | Sortare ascendentă. |
| ps | query | integer (int32) | Nu | Dimensiunea paginii. |
| p | query | integer (int32) | Nu | Numă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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| id | query | string (uuid) | Da | ID-ul colecției RAG. |
| item | query | string (uuid) | Nu | ID-ul elementului RAG. |
| message | query | string (uuid) | Nu | ID-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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| c | query | string (uuid) | Da | ID-ul colecției RAG. |
| id | query | string (uuid) | Da | ID-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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| id | query | string (uuid) | Da | ID-ul mesajului. |
Răspuns (200):
{}
RagFaq#
GET /questionnaire/rag/faq-collections/summary#
Rezumat: Rezumat pentru pagina principală
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| proj | query | string (uuid) | Nu | ID-ul proiectului. |
Răspuns (200):
{
"active": 3
}
GET /questionnaire/rag/faq-collections/total#
Rezumat: Număr de colecții FAQ.
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| q | query | string | Nu | Filtru pe numele sau codul colecției. |
| state | query | array | Nu | Filtru pe stări. |
| project | query | array | Nu | Filtru pe proiecte. |
Răspuns (200):
3
GET /questionnaire/rag/faq-collections/list#
Rezumat: Obține lista de colecții FAQ.
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| q | query | string | Nu | Filtru pe numele sau codul colecției. |
| state | query | array | Nu | Filtru pe stări. |
| project | query | array | Nu | Filtru pe proiecte. |
| s | query | string | Nu | Câmp de sortare. |
| asc | query | boolean | Nu | Sortare ascendentă. |
| ps | query | integer (int32) | Nu | Dimensiunea paginii. |
| p | query | integer (int32) | Nu | Numă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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| q | query | string | Da | Filtru pe întrebare. |
| project | query | string (uuid) | Nu | Filtru pe proiect. |
| ps | query | integer (int32) | Nu | Dimensiunea paginii. |
| p | query | integer (int32) | Nu | Numă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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul colecției. |
GET /questionnaire/rag/faq-collection#
Rezumat: Obține colecția FAQ.
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul colecției. |
Răspuns (200):
true
GET /questionnaire/rag/faq-collection/items-total#
Rezumat: Număr de elemente FAQ.
Parametri:
| Nume | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul colecției. |
| q | query | string | Nu | Filtru 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul colecției. |
| q | query | string | Nu | Filtru pe conținutul elementului FAQ. |
| state | query | array | Nu | Filtru pe stări. |
| s | query | string | Nu | Câmp de sortare. |
| asc | query | boolean | Nu | Sortare ascendentă. |
| ps | query | integer (int32) | Nu | Dimensiunea paginii. |
| p | query | integer (int32) | Nu | Numă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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul colecției. |
| index | query | integer (int32) | Da | Index 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 | În | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
| code | query | string | Da | Codul colecției. |
| index | query | integer (int32) | Da | Index 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#
- Token-uri API – Generare & Management – cum să creezi și să gestionezi token-urile
- Întreabă AI cu baza ta de cunoștințe – utilizarea interogărilor RAG
