Rujukan API REST Procurize.AI#
Akses pangkalan pengetahuan anda secara programatik – dokumen, soal selidik, RAG, dan laporan – menggunakan token API anda.
Berkuat kuasa untuk: Procurize.AI API v1
Pengesahan: Kunci API melalui headerX-API-Key(lihat Token API untuk pengurusan token)
URL Asas:https://api.procurize.com
Gambaran Keseluruhan#
API REST Procurize.AI menyediakan akses programatik kepada ciri utama platform. Ia membolehkan anda mengintegrasikan Procurize.AI dengan sistem dalaman anda, mengotomasi pengurusan pangkalan pengetahuan, dan membina aliran kerja tersuai.
Modul yang disokong (dengan token):
- RagArticle – urus dokumen
- RagFaq – urus entri FAQ
- RagQuery – jalankan pertanyaan RAG
Pengesahan#
Semua titik akhir yang memerlukan pengesahan memerlukan token API yang dihantar dalam header permintaan.
| Header | Nilai |
|---|---|
X-API-Key | <TOKEN_API_ANDA> |
Contoh:
curl -X GET "https://api.procurize.com/v1/..." \
-H "X-API-Key: token-api-anda-di-sini"
💡 Token terikat kepada organisasi anda – anda tidak perlu menyatakan ID organisasi dalam permintaan.
URL Asas#
Semua titik akhir API REST disediakan di bawah:
https://api.procurize.com
Pengendalian Ralat#
API menggunakan kod status HTTP standard.
| Kod | Makna |
|---|---|
200 OK | Permintaan berjaya |
201 Created | Sumber berjaya dicipta |
204 No Content | Permintaan berjaya, tiada badan respons |
400 Bad Request | Parameter tidak sah atau permintaan rosak |
401 Unauthorized | Token API tiada atau tidak sah |
403 Forbidden | Token tidak mempunyai kebenaran untuk tindakan ini |
404 Not Found | Sumber tidak wujud |
500 Internal Server Error | Ralat pelayan yang tidak dijangka |
Respons ralat mengandungi kod ralat yang boleh dibaca mesin dan mesej yang boleh dibaca manusia.
Rujukan Modul#
RagArticle#
GET /questionnaire/rag/articles/summary#
Ringkasan: Ringkasan untuk halaman Utama
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| proj | query | string (uuid) | Tidak | ID projek. |
Respons (200):
{
"active": 5
}
GET /questionnaire/rag/articles/total#
Ringkasan: Bilangan artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| q | query | string | Tidak | Penapis pada nama atau kod artikel. |
| state | query | array | Tidak | Penapis pada status. |
| project | query | array | Tidak | Penapis pada projek. |
| type | query | array | Tidak | Penapis pada jenis dokumen. |
Respons (200):
42
GET /questionnaire/rag/articles/list#
Ringkasan: Dapatkan senarai artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| q | query | string | Tidak | Penapis pada nama atau kod artikel. |
| state | query | array | Tidak | Penapis pada status. |
| project | query | array | Tidak | Penapis pada projek. |
| type | query | array | Tidak | Penapis pada jenis dokumen. |
| s | query | string | Tidak | Medan susunan. |
| asc | query | boolean | Tidak | Susunan menaik. |
| ps | query | integer (int32) | Tidak | Saiz halaman. |
| p | query | integer (int32) | Tidak | Nombor halaman (bermula 1). |
Respons (200):
{
"paging": {
"pageNumber": 1,
"pageSize": 10,
"total": 42,
"totalPages": 5
},
"items": [
{
"code": "ART-001",
"org": "00000000-0000-0000-0000-000000000000",
"id": "00000000-0000-0000-0000-000000000000",
"name": "Article Title",
"description": "Article description",
"documentTypes": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "Type Name",
"plural": "Type Names",
"count": 5
}
],
"size": 150,
"revision": {
"id": "00000000-0000-0000-0000-000000000000",
"collectionId": "00000000-0000-0000-0000-000000000000",
"rev": 3,
"date": "2025-01-15T10:30:00Z",
"author": {
"id": "user123",
"name": "John Doe",
"email": "john.doe@example.com",
"login": "johndoe",
"ra": true
},
"authorName": "John Doe",
"analysisSummary": {
"id": "00000000-0000-0000-0000-000000000000",
"initiator": {
"id": "user123",
"name": "John Doe",
"email": "john.doe@example.com",
"login": "johndoe",
"ra": true
},
"created": "2025-01-15T10:30:00Z",
"state": "Completed",
"stateDate": "2025-01-15T10:35:00Z",
"stateDetails": "Analysis completed successfully",
"operationId": "op-12345"
}
},
"type": "Article",
"state": "Active",
"projects": [
"00000000-0000-0000-0000-000000000000"
],
"items": [
"00000000-0000-0000-0000-000000000000"
],
"isShared": false
}
]
}
POST /questionnaire/rag/file-to-md#
Ringkasan: Mengembalikan kandungan Markdown daripada fail
Badan Permintaan (multipart/form-data):
{
"url": "https://example.com/file.pdf",
"file": "binary"
}
Respons (200):
"Markdown content from file"
POST /questionnaire/rag/article/create#
Ringkasan: Cipta artikel
Badan Permintaan (multipart/form-data):
{
"code": "ART-001",
"name": "Article Title",
"description": "Article description",
"content": "# Article Content\n\nThis is the article content.",
"url": "https://example.com/file.pdf",
"file": "binary"
}
Respons (200):
{
"code": "ART-001",
"org": "00000000-0000-0000-0000-000000000000",
"id": "00000000-0000-0000-0000-000000000000",
"name": "Article Title",
"description": "Article description",
"documentTypes": null,
"size": 150,
"revision": null,
"type": "Article",
"state": "Active",
"projects": null,
"items": null,
"isShared": false
}
GET /questionnaire/rag/article/check#
Ringkasan: Periksa kewujudan artikel.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
Respons (200):
true
GET /questionnaire/rag/article-info#
Ringkasan: Dapatkan maklumat artikel mengikut kod.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
Respons (200):
{
"code": "ART-001",
"org": "00000000-0000-0000-0000-000000000000",
"id": "00000000-0000-0000-0000-000000000000",
"name": "Article Title",
"description": "Article description",
"documentTypes": null,
"size": 150,
"revision": null,
"type": "Article",
"state": "Active",
"projects": null,
"items": null,
"isShared": false
}
GET /questionnaire/rag/article#
Ringkasan: Dapatkan kandungan artikel mengikut kod
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
| format | query | string | Tidak | Jika true, mengembalikan kandungan HTML dalam badan respons. Jika tidak, mengembalikan kandungan artikel dalam format Markdown. |
| split | query | boolean | Tidak | Jika true, mengembalikan kandungan dipisahkan mengikut elemen RAG. |
| css | query | boolean | Tidak | Jika true, mengembalikan kandungan HTML/PDF dengan CSS. |
Respons (200):
"# Article Title\n\nThis is the article content in Markdown format."
POST /questionnaire/rag/article#
Ringkasan: Kemas kini metadata artikel
Badan Permintaan:
{
"code": "ART-001",
"name": "Updated Article Title",
"description": "Updated description",
"projects": [
"00000000-0000-0000-0000-000000000000"
],
"documentTypes": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "Type Name",
"plural": "Type Names"
}
],
"isShared": true,
"state": "Active"
}
Respons (200):
{}
DELETE /questionnaire/rag/article#
Ringkasan: Padam artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
GET /questionnaire/rag/article/pdf#
Ringkasan: Dapatkan artikel sebagai PDF mengikut kod
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
Respons (200):
(pdf binary)
GET /questionnaire/rag/article/content#
Ringkasan: Dapatkan kandungan artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
Respons (200):
{
"content": "# Article Title\n\nContent here."
}
POST /questionnaire/rag/article/content#
Ringkasan: Kemas kini kandungan artikel
Badan Permintaan (multipart/form-data):
{
"code": "ART-001",
"content": "# Updated Content",
"file": "binary"
}
POST /questionnaire/rag/plural#
Ringkasan: Dapatkan bentuk jamak bagi kata nama
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| noun | query | string | Tidak | Kata nama yang hendak dijamakkan. |
Respons (200):
{
"plural": "Articles"
}
POST /questionnaire/rag/article/find-types#
Ringkasan: Analisis artikel dengan AI dan kembalikan jenisnya
Badan Permintaan (multipart/form-data):
{
"code": "ART-001",
"content": "# Article Content"
}
Respons (200):
[
{
"plural": "Types"
}
]
POST /questionnaire/rag/article/format-with-ai#
Ringkasan: Format kandungan artikel dengan AI
Badan Permintaan (multipart/form-data):
{
"code": "ART-001",
"content": "# Article Content"
}
Respons (200):
{
"formattedContent": "# Formatted Article Content"
}
POST /questionnaire/rag/article/improve-on-suggestions#
Ringkasan: Tingkatkan dokumen berdasarkan cadangan
Badan Permintaan (multipart/form-data):
{
"suggestions": [
{
"sectionTitle": "Introduction",
"suggestion": "Add more details here."
}
],
"code": "ART-001",
"content": "# Article Content"
}
Respons (200):
{
"improvedContent": "# Improved Content"
}
GET /questionnaire/rag/article/parts#
Ringkasan: Mengembalikan senarai bahagian artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| id | query | array | Ya | Senarai bahagian artikel. |
Respons (200):
[
{
"id": "00000000-0000-0000-0000-000000000000",
"code": "part-1",
"title": "Introduction",
"orderNumber": 1,
"content": "Introduction content."
}
]
GET /questionnaire/rag/article/revisions#
Ringkasan: Mengembalikan senarai revisi artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
Respons (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}#
Ringkasan: Dapatkan maklumat revisi artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| id | path | string (uuid) | Ya | ID revisi. |
Respons (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}#
Ringkasan: Dapatkan kandungan revisi artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| id | path | string (uuid) | Ya | ID revisi. |
Respons (200):
"# Article Revision Content\n\nPrevious version."
GET /questionnaire/rag/article/analyze#
Ringkasan: Analisis kandungan artikel dengan AI
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod artikel. |
| rev | query | integer (int32) | Tidak | Nombor revisi. |
| force | query | boolean | Tidak | Paksa cipta analisis baru dan buang hasil analisis tidak lengkap yang sedia ada jika ada. |
Respons (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}#
Ringkasan: Dapatkan hasil analisis artikel
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| id | path | string (uuid) | Ya | ID analisis. |
Respons (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#
Ringkasan: Senaraikan semua mesej
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| id | query | string (uuid) | Ya | ID Koleksi RAG. |
| item | query | string (uuid) | Tidak | ID Item RAG. |
| message | query | string (uuid) | Tidak | ID Mesej. |
| asc | query | boolean | Tidak | Susunan menaik. |
| ps | query | integer (int32) | Tidak | Saiz halaman. |
| p | query | integer (int32) | Tidak | Nombor halaman (bermula 1). |
Respons (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#
Ringkasan: Tambah mesej baru
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| id | query | string (uuid) | Ya | ID Koleksi RAG. |
| item | query | string (uuid) | Tidak | ID Item RAG. |
| message | query | string (uuid) | Tidak | ID Mesej untuk dibalas. |
Badan Permintaan:
{
"text": "New message content"
}
Respons (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#
Ringkasan: Kemas kini mesej sedia ada
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| c | query | string (uuid) | Ya | ID Koleksi RAG. |
| id | query | string (uuid) | Ya | ID Mesej. |
Badan Permintaan:
{
"text": "Updated message content"
}
Respons (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#
Ringkasan: Padam mesej sedia ada
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| id | query | string (uuid) | Ya | ID Mesej. |
Respons (200):
{}
RagFaq#
GET /questionnaire/rag/faq-collections/summary#
Ringkasan: Ringkasan untuk halaman Utama
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| proj | query | string (uuid) | Tidak | ID projek. |
Respons (200):
{
"active": 3
}
GET /questionnaire/rag/faq-collections/total#
Ringkasan: Bilangan koleksi FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| q | query | string | Tidak | Penapis pada nama atau kod koleksi. |
| state | query | array | Tidak | Penapis pada status. |
| project | query | array | Tidak | Penapis pada projek. |
Respons (200):
3
GET /questionnaire/rag/faq-collections/list#
Ringkasan: Dapatkan senarai koleksi FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| q | query | string | Tidak | Penapis pada nama atau kod koleksi. |
| state | query | array | Tidak | Penapis pada status. |
| project | query | array | Tidak | Penapis pada projek. |
| s | query | string | Tidak | Medan susunan. |
| asc | query | boolean | Tidak | Susunan menaik. |
| ps | query | integer (int32) | Tidak | Saiz halaman. |
| p | query | integer (int32) | Tidak | Nombor halaman (bermula 1). |
Respons (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#
Ringkasan: Cari item FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| q | query | string | Ya | Penapis pada soalan. |
| project | query | string (uuid) | Tidak | Penapis pada projek. |
| ps | query | integer (int32) | Tidak | Saiz halaman. |
| p | query | integer (int32) | Tidak | Nombor halaman (bermula 1). |
Respons (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#
Ringkasan: Cipta koleksi FAQ baru.
Badan Permintaan (multipart/form-data):
{
"code": "FAQ-001",
"name": "FAQ Collection",
"description": "FAQ collection description",
"content": "Content here",
"file": "binary"
}
Respons (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#
Ringkasan: Kemas kini metadata koleksi FAQ.
Badan Permintaan:
{
"code": "FAQ-001",
"name": "Updated FAQ Collection",
"description": "Updated description",
"projects": null,
"documentTypes": null,
"isShared": false,
"state": "Active"
}
DELETE /questionnaire/rag/faq-collection#
Ringkasan: Padam koleksi FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod koleksi. |
GET /questionnaire/rag/faq-collection#
Ringkasan: Dapatkan koleksi FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod koleksi. |
Respons (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#
Ringkasan: Periksa kewujudan koleksi FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod koleksi. |
Respons (200):
true
GET /questionnaire/rag/faq-collection/items-total#
Ringkasan: Bilangan item FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod koleksi. |
| q | query | string | Tidak | Penapis pada kandungan item FAQ. |
Badan Permintaan:
["Active", "Default"]
Respons (200):
5
GET /questionnaire/rag/faq-collection/items#
Ringkasan: Dapatkan senarai item FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod koleksi. |
| q | query | string | Tidak | Penapis pada kandungan item FAQ. |
| state | query | array | Tidak | Penapis pada status. |
| s | query | string | Tidak | Medan susunan. |
| asc | query | boolean | Tidak | Susunan menaik. |
| ps | query | integer (int32) | Tidak | Saiz halaman. |
| p | query | integer (int32) | Tidak | Nombor halaman (bermula 1). |
Respons (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#
Ringkasan: Cipta item FAQ baru.
Badan Permintaan:
{
"code": "FAQ-001",
"index": 0,
"question": "What is this product?",
"answer": "This is a great product.",
"comment": "Product FAQ",
"state": "Active"
}
Respons (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#
Ringkasan: Dapatkan item FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod koleksi. |
| index | query | integer (int32) | Ya | Indeks berasaskan sifar item FAQ dalam koleksi. |
Respons (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#
Ringkasan: Kemas kini item FAQ.
Badan Permintaan:
{
"code": "FAQ-001",
"index": 0,
"newIndex": 1,
"question": "Updated question?",
"answer": "Updated answer.",
"comment": "Updated comment",
"state": "Active"
}
DELETE /questionnaire/rag/faq-collection/item#
Ringkasan: Padam item FAQ.
Parameter:
| Nama | Di | Jenis | Wajib | Keterangan |
|---|---|---|---|---|
| code | query | string | Ya | Kod koleksi. |
| index | query | integer (int32) | Ya | Indeks berasaskan sifar item FAQ dalam koleksi. |
RagQuery#
POST /questionnaire/rag/query#
Ringkasan: Lakukan pertanyaan dalam Pangkalan Pengetahuan RAG
Badan Permintaan:
{
"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
}
Respons (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#
Ringkasan: Lakukan pertanyaan dalam Pangkalan Pengetahuan RAG (stream)
Badan Permintaan:
{
"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
}
Respons (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#
Ringkasan: Lakukan pertanyaan dalam Pangkalan Pengetahuan RAG (fragmen)
Badan Permintaan:
{
"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
}
Respons (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
}
]
}
Artikel Berkaitan#
- Token API – Penjanaan & Pengurusan – cara mencipta dan mengurus token
- Tanya AI dengan pangkalan pengetahuan anda – menggunakan pertanyaan RAG
