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 header X-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):

Autentikasi#

Semua endpoint yang memerlukan autentikasi mengharuskan token API disertakan di header permintaan.

HeaderNilai
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.

KodeMakna
200 OKPermintaan berhasil
201 CreatedSumber daya berhasil dibuat
204 No ContentPermintaan berhasil, tidak ada isi respons
400 Bad RequestParameter tidak valid atau permintaan rusak
401 UnauthorizedToken API hilang atau tidak valid
403 ForbiddenToken tidak memiliki izin untuk aksi ini
404 Not FoundSumber daya tidak ada
500 Internal Server ErrorKesalahan 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:

NamaDiTipeWajibDeskripsi
projquerystring (uuid)TidakID Proyek.

Respons (200):

{
  "active": 5
}

GET /questionnaire/rag/articles/total#

Ringkasan: Jumlah artikel

Parameter:

NamaDiTipeWajibDeskripsi
qquerystringTidakFilter berdasarkan nama atau kode artikel.
statequeryarrayTidakFilter berdasarkan status.
projectqueryarrayTidakFilter berdasarkan proyek.
typequeryarrayTidakFilter berdasarkan tipe dokumen.

Respons (200):

42

GET /questionnaire/rag/articles/list#

Ringkasan: Dapatkan daftar artikel

Parameter:

NamaDiTipeWajibDeskripsi
qquerystringTidakFilter berdasarkan nama atau kode artikel.
statequeryarrayTidakFilter berdasarkan status.
projectqueryarrayTidakFilter berdasarkan proyek.
typequeryarrayTidakFilter berdasarkan tipe dokumen.
squerystringTidakKolom urutan.
ascquerybooleanTidakUrutan naik.
psqueryinteger (int32)TidakUkuran halaman.
pqueryinteger (int32)TidakNomor 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode artikel.

Respons (200):

true

GET /questionnaire/rag/article-info#

Ringkasan: Dapatkan info artikel berdasarkan kode.

Parameter:

NamaDiTipeWajibDeskripsi
codequerystringYaKode 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode artikel.
formatquerystringTidakJika true, mengembalikan konten HTML dalam badan respons. Jika tidak, mengembalikan konten artikel dalam format Markdown.
splitquerybooleanTidakJika true, mengembalikan konten yang dipisahkan oleh elemen RAG.
cssquerybooleanTidakJika 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode artikel.

GET /questionnaire/rag/article/pdf#

Ringkasan: Dapatkan artikel sebagai PDF berdasarkan kode

Parameter:

NamaDiTipeWajibDeskripsi
codequerystringYaKode artikel.

Respons (200):

(pdf binary)

GET /questionnaire/rag/article/content#

Ringkasan: Dapatkan konten artikel

Parameter:

NamaDiTipeWajibDeskripsi
codequerystringYaKode 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:

NamaDiTipeWajibDeskripsi
nounquerystringTidakKata 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:

NamaDiTipeWajibDeskripsi
idqueryarrayYaDaftar 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode 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:

NamaDiTipeWajibDeskripsi
idpathstring (uuid)YaID 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:

NamaDiTipeWajibDeskripsi
idpathstring (uuid)YaID revisi.

Respons (200):

"# Article Revision Content\n\nPrevious version."

GET /questionnaire/rag/article/analyze#

Ringkasan: Menganalisis konten artikel dengan AI

Parameter:

NamaDiTipeWajibDeskripsi
codequerystringYaKode artikel.
revqueryinteger (int32)TidakNomor revisi.
forcequerybooleanTidakMemaksa 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:

NamaDiTipeWajibDeskripsi
idpathstring (uuid)YaID 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:

NamaDiTipeWajibDeskripsi
idquerystring (uuid)YaID Koleksi RAG.
itemquerystring (uuid)TidakID Item RAG.
messagequerystring (uuid)TidakID Pesan.
ascquerybooleanTidakUrutan naik.
psqueryinteger (int32)TidakUkuran halaman.
pqueryinteger (int32)TidakNomor 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:

NamaDiTipeWajibDeskripsi
idquerystring (uuid)YaID Koleksi RAG.
itemquerystring (uuid)TidakID Item RAG.
messagequerystring (uuid)TidakID 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:

NamaDiTipeWajibDeskripsi
cquerystring (uuid)YaID Koleksi RAG.
idquerystring (uuid)YaID 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:

NamaDiTipeWajibDeskripsi
idquerystring (uuid)YaID Pesan.

Respons (200):

{}

RagFaq#

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

Ringkasan: Ringkasan untuk Halaman Beranda

Parameter:

NamaDiTipeWajibDeskripsi
projquerystring (uuid)TidakID Proyek.

Respons (200):

{
  "active": 3
}

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

Ringkasan: Jumlah koleksi FAQ.

Parameter:

NamaDiTipeWajibDeskripsi
qquerystringTidakFilter berdasarkan nama atau kode koleksi.
statequeryarrayTidakFilter berdasarkan status.
projectqueryarrayTidakFilter berdasarkan proyek.

Respons (200):

3

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

Ringkasan: Dapatkan daftar koleksi FAQ.

Parameter:

NamaDiTipeWajibDeskripsi
qquerystringTidakFilter berdasarkan nama atau kode koleksi.
statequeryarrayTidakFilter berdasarkan status.
projectqueryarrayTidakFilter berdasarkan proyek.
squerystringTidakKolom urutan.
ascquerybooleanTidakUrutan naik.
psqueryinteger (int32)TidakUkuran halaman.
pqueryinteger (int32)TidakNomor 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:

NamaDiTipeWajibDeskripsi
qquerystringYaFilter berdasarkan pertanyaan.
projectquerystring (uuid)TidakFilter berdasarkan proyek.
psqueryinteger (int32)TidakUkuran halaman.
pqueryinteger (int32)TidakNomor 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode koleksi.

GET /questionnaire/rag/faq-collection#

Ringkasan: Dapatkan koleksi FAQ.

Parameter:

NamaDiTipeWajibDeskripsi
codequerystringYaKode 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode koleksi.

Respons (200):

true

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

Ringkasan: Jumlah item FAQ.

Parameter:

NamaDiTipeWajibDeskripsi
codequerystringYaKode koleksi.
qquerystringTidakFilter berdasarkan konten item FAQ.

Badan Permintaan:

["Active", "Default"]

Respons (200):

5

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

Ringkasan: Dapatkan daftar item FAQ.

Parameter:

NamaDiTipeWajibDeskripsi
codequerystringYaKode koleksi.
qquerystringTidakFilter berdasarkan konten item FAQ.
statequeryarrayTidakFilter berdasarkan status.
squerystringTidakKolom urutan.
ascquerybooleanTidakUrutan naik.
psqueryinteger (int32)TidakUkuran halaman.
pqueryinteger (int32)TidakNomor 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode koleksi.
indexqueryinteger (int32)YaIndeks 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:

NamaDiTipeWajibDeskripsi
codequerystringYaKode koleksi.
indexqueryinteger (int32)YaIndeks 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#

ke atas
Pilih bahasa