Referensi REST API Procurize.AI#
Akses basis pengetahuan Anda secara programatik – dokumen, kuesioner, RAG, dan laporan – menggunakan token API Anda.
Berlaku untuk: API Procurize.AI v1
Autentikasi: Kunci API melalui headerX-API-Key(lihat Token API untuk pengelolaan token)
URL Dasar:https://api.procurize.com
Gambaran Umum#
REST API Procurize.AI menyediakan akses programatik ke fitur utama platform. Ini memungkinkan Anda mengintegrasikan Procurize.AI dengan sistem internal, mengotomatisasi manajemen basis pengetahuan, dan membangun alur kerja khusus.
Modul yang didukung (autentikasi token):
- RagArticle – mengelola dokumen
- RagFaq – mengelola entri FAQ
- RagQuery – mengeksekusi kueri RAG
Autentikasi#
Semua endpoint yang memerlukan autentikasi mengharuskan token API disertakan di header permintaan.
| Header | Nilai |
|---|---|
X-API-Key | <TOKEN_API_ANDA> |
Contoh:
curl -X GET "https://api.procurize.com/v1/..." \
-H "X-API-Key: your-api-token-here"
💡 Token terikat pada organisasi Anda – Anda tidak perlu menyertakan ID organisasi dalam permintaan.
URL Dasar#
Semua endpoint REST API disajikan di bawah:
https://api.procurize.com
Penanganan Kesalahan#
API menggunakan kode status HTTP standar.
| Kode | Makna |
|---|---|
200 OK | Permintaan berhasil |
201 Created | Sumber daya berhasil dibuat |
204 No Content | Permintaan berhasil, tidak ada isi respons |
400 Bad Request | Parameter tidak valid atau permintaan rusak |
401 Unauthorized | Token API hilang atau tidak valid |
403 Forbidden | Token tidak memiliki izin untuk aksi ini |
404 Not Found | Sumber daya tidak ada |
500 Internal Server Error | Kesalahan server yang tidak terduga |
Respons kesalahan menyertakan kode kesalahan yang dapat dibaca mesin dan pesan yang dapat dibaca manusia.
Referensi Modul#
RagArticle#
GET /questionnaire/rag/articles/summary#
Ringkasan: Ringkasan untuk Halaman Beranda
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| proj | query | string (uuid) | Tidak | ID Proyek. |
Respons (200):
{
"active": 5
}
GET /questionnaire/rag/articles/total#
Ringkasan: Jumlah artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| q | query | string | Tidak | Filter berdasarkan nama atau kode artikel. |
| state | query | array | Tidak | Filter berdasarkan status. |
| project | query | array | Tidak | Filter berdasarkan proyek. |
| type | query | array | Tidak | Filter berdasarkan tipe dokumen. |
Respons (200):
42
GET /questionnaire/rag/articles/list#
Ringkasan: Dapatkan daftar artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| q | query | string | Tidak | Filter berdasarkan nama atau kode artikel. |
| state | query | array | Tidak | Filter berdasarkan status. |
| project | query | array | Tidak | Filter berdasarkan proyek. |
| type | query | array | Tidak | Filter berdasarkan tipe dokumen. |
| s | query | string | Tidak | Kolom urutan. |
| asc | query | boolean | Tidak | Urutan naik. |
| ps | query | integer (int32) | Tidak | Ukuran halaman. |
| p | query | integer (int32) | Tidak | Nomor halaman (berbasis 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 konten Markdown dari file
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: Membuat 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: Memeriksa keberadaan artikel.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode artikel. |
Respons (200):
true
GET /questionnaire/rag/article-info#
Ringkasan: Dapatkan info artikel berdasarkan kode.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode 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 konten artikel berdasarkan kode
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode artikel. |
| format | query | string | Tidak | Jika true, mengembalikan konten HTML dalam badan respons. Jika tidak, mengembalikan konten artikel dalam format Markdown. |
| split | query | boolean | Tidak | Jika true, mengembalikan konten yang dipisahkan oleh elemen RAG. |
| css | query | boolean | Tidak | Jika true, mengembalikan konten HTML/PDF dengan CSS. |
Respons (200):
"# Article Title\n\nThis is the article content in Markdown format."
POST /questionnaire/rag/article#
Ringkasan: Memperbarui 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: Menghapus artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode artikel. |
GET /questionnaire/rag/article/pdf#
Ringkasan: Dapatkan artikel sebagai PDF berdasarkan kode
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode artikel. |
Respons (200):
(pdf binary)
GET /questionnaire/rag/article/content#
Ringkasan: Dapatkan konten artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode artikel. |
Respons (200):
{
"content": "# Article Title\n\nContent here."
}
POST /questionnaire/rag/article/content#
Ringkasan: Memperbarui konten artikel
Badan Permintaan (multipart/form-data):
{
"code": "ART-001",
"content": "# Updated Content",
"file": "binary"
}
POST /questionnaire/rag/plural#
Ringkasan: Dapatkan bentuk jamak dari kata benda
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| noun | query | string | Tidak | Kata benda yang akan dijadikan jamak. |
Respons (200):
{
"plural": "Articles"
}
POST /questionnaire/rag/article/find-types#
Ringkasan: Menganalisis artikel dengan AI dan mengembalikan tipe‑tipe mereka
Badan Permintaan (multipart/form-data):
{
"code": "ART-001",
"content": "# Article Content"
}
Respons (200):
[
{
"plural": "Types"
}
]
POST /questionnaire/rag/article/format-with-ai#
Ringkasan: Memformat konten 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: Memperbaiki dokumen berdasarkan saran
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 daftar bagian artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| id | query | array | Ya | Daftar bagian 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 daftar revisi artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode 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 info revisi artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| 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 konten revisi artikel
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| id | path | string (uuid) | Ya | ID revisi. |
Respons (200):
"# Article Revision Content\n\nPrevious version."
GET /questionnaire/rag/article/analyze#
Ringkasan: Menganalisis konten artikel dengan AI
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode artikel. |
| rev | query | integer (int32) | Tidak | Nomor revisi. |
| force | query | boolean | Tidak | Memaksa pembuatan analisis baru dan menghapus hasil analisis tidak lengkap sebelumnya bila 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 | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| 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: Daftar semua pesan
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| id | query | string (uuid) | Ya | ID Koleksi RAG. |
| item | query | string (uuid) | Tidak | ID Item RAG. |
| message | query | string (uuid) | Tidak | ID Pesan. |
| asc | query | boolean | Tidak | Urutan naik. |
| ps | query | integer (int32) | Tidak | Ukuran halaman. |
| p | query | integer (int32) | Tidak | Nomor halaman (berbasis 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: Menambahkan pesan baru
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| id | query | string (uuid) | Ya | ID Koleksi RAG. |
| item | query | string (uuid) | Tidak | ID Item RAG. |
| message | query | string (uuid) | Tidak | ID Pesan 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: Memperbarui pesan yang ada
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| c | query | string (uuid) | Ya | ID Koleksi RAG. |
| id | query | string (uuid) | Ya | ID Pesan. |
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: Menghapus pesan yang ada
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| id | query | string (uuid) | Ya | ID Pesan. |
Respons (200):
{}
RagFaq#
GET /questionnaire/rag/faq-collections/summary#
Ringkasan: Ringkasan untuk Halaman Beranda
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| proj | query | string (uuid) | Tidak | ID Proyek. |
Respons (200):
{
"active": 3
}
GET /questionnaire/rag/faq-collections/total#
Ringkasan: Jumlah koleksi FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| q | query | string | Tidak | Filter berdasarkan nama atau kode koleksi. |
| state | query | array | Tidak | Filter berdasarkan status. |
| project | query | array | Tidak | Filter berdasarkan proyek. |
Respons (200):
3
GET /questionnaire/rag/faq-collections/list#
Ringkasan: Dapatkan daftar koleksi FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| q | query | string | Tidak | Filter berdasarkan nama atau kode koleksi. |
| state | query | array | Tidak | Filter berdasarkan status. |
| project | query | array | Tidak | Filter berdasarkan proyek. |
| s | query | string | Tidak | Kolom urutan. |
| asc | query | boolean | Tidak | Urutan naik. |
| ps | query | integer (int32) | Tidak | Ukuran halaman. |
| p | query | integer (int32) | Tidak | Nomor halaman (berbasis 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: Menemukan item FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| q | query | string | Ya | Filter berdasarkan pertanyaan. |
| project | query | string (uuid) | Tidak | Filter berdasarkan proyek. |
| ps | query | integer (int32) | Tidak | Ukuran halaman. |
| p | query | integer (int32) | Tidak | Nomor halaman (berbasis 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: Membuat 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: Memperbarui 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: Menghapus koleksi FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode koleksi. |
GET /questionnaire/rag/faq-collection#
Ringkasan: Dapatkan koleksi FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode 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: Memeriksa keberadaan koleksi FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode koleksi. |
Respons (200):
true
GET /questionnaire/rag/faq-collection/items-total#
Ringkasan: Jumlah item FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode koleksi. |
| q | query | string | Tidak | Filter berdasarkan konten item FAQ. |
Badan Permintaan:
["Active", "Default"]
Respons (200):
5
GET /questionnaire/rag/faq-collection/items#
Ringkasan: Dapatkan daftar item FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode koleksi. |
| q | query | string | Tidak | Filter berdasarkan konten item FAQ. |
| state | query | array | Tidak | Filter berdasarkan status. |
| s | query | string | Tidak | Kolom urutan. |
| asc | query | boolean | Tidak | Urutan naik. |
| ps | query | integer (int32) | Tidak | Ukuran halaman. |
| p | query | integer (int32) | Tidak | Nomor halaman (berbasis 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: Membuat 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 | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode koleksi. |
| index | query | integer (int32) | Ya | Indeks berbasis nol dari 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: Memperbarui 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: Menghapus item FAQ.
Parameter:
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
| code | query | string | Ya | Kode koleksi. |
| index | query | integer (int32) | Ya | Indeks berbasis nol dari item FAQ dalam koleksi. |
RagQuery#
POST /questionnaire/rag/query#
Ringkasan: Melakukan kueri di Basis 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: Melakukan kueri di Basis 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: Melakukan kueri di Basis Pengetahuan RAG (fragment)
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 Terkait#
- Token API – Pembuatan & Manajemen – cara membuat dan mengelola token
- Tanya AI dengan basis pengetahuan Anda – menggunakan kueri RAG
