---
sitemap:
changefreq: yearly
priority: 0.5
type: docs
group: "التكاملات"
g_num: 6
o_num: 1
title: "مرجع واجهة برمجة التطبيقات REST – وثائق مطوري Procurize.AI"
description: "مرجع كامل لواجهة برمجة التطبيقات REST لـ Procurize.AI. تعلّم كيفية الوصول برمجيًا إلى المستندات، الاستبيانات، RAG، والتقارير باستخدام رموز API. يتضمن المصادقة، نقاط النهاية، وأمثلة."
breadcrumb: "مرجع واجهة برمجة التطبيقات REST"
index_title: "مرجع واجهة برمجة التطبيقات REST"
brief: "مرجع كامل لواجهة برمجة التطبيقات REST لـ Procurize.AI. وصول برمجي إلى المستندات، الاستبيانات، RAG، الملفات، والتقارير باستخدام رمز API الخاص بك. يتضمن المصادقة، جميع الوحدات المدعومة، وأمثلة على الطلب/الاستجابة."
---
# مرجع واجهة برمجة التطبيقات REST لـ Procurize.AI
**الوصول برمجيًا إلى قاعدة معرفتك – المستندات، الاستبيانات، RAG، والتقارير – باستخدام رمز API الخاص بك.**
> **ينطبق على:** واجهة Procurize.AI API الإصدار 1
> **المصادقة:** مفتاح API عبر رأس `X-API-Key` (انظر [رموز API](/api-tokens/) لإدارة الرموز)
> **عنوان URL الأساسي:** `https://api.procurize.com`
## نظرة عامة
توفر واجهة REST API الخاصة بـ Procurize.AI وصولًا برمجيًا إلى ميزات المنصة الأساسية. تمكّنك من دمج Procurize.AI مع أنظمتك الداخلية، أتمتة إدارة قاعدة المعرفة، وبناء تدفقات عمل مخصصة.
**الوحدات المدعومة (مع المصادقة عبر الرمز):**
- [**RagArticle**](#ragarticle) – إدارة المستندات
- [**RagFaq**](#ragfaq) – إدارة مدخلات الأسئلة المتكررة
- [**RagQuery**](#ragquery) – تنفيذ استعلامات RAG
## المصادقة
جميع نقاط النهاية التي تتطلب مصادقة تحتاج إلى رمز API يُمرَّر في رأس الطلب.
| الرأس | القيمة |
|-------|--------|
| `X-API-Key` | `<YOUR_API_TOKEN>` |
**مثال:**
```bash
curl -X GET "https://api.procurize.com/v1/..." \
-H "X-API-Key: your-api-token-here"
💡 الرموز مرتبطة بمنظمتك – لا تحتاج إلى تحديد معرف المنظمة في الطلب.
عنوان URL الأساسي#
جميع نقاط نهاية REST API تُقدَّم تحت:
https://api.procurize.com
معالجة الأخطاء#
تستخدم الواجهة رموز حالة HTTP القياسية.
| الرمز | المعنى |
|---|---|
200 OK | تمّ تنفيذ الطلب بنجاح |
201 Created | تم إنشاء المورد بنجاح |
204 No Content | تمّ تنفيذ الطلب بنجاح، لا يوجد جسم استجابة |
400 Bad Request | معلمات غير صالحة أو طلب غير مُنسَّق |
401 Unauthorized | رمز API مفقود أو غير صالح |
403 Forbidden | الرمز لا يملك صلاحية لهذا الإجراء |
404 Not Found | المورد غير موجود |
500 Internal Server Error | خطأ غير متوقع في الخادم |
تتضمن استجابات الأخطاء رمز خطأ قابل للقراءة آليًا ورسالة قابلة للقراءة بشريًا.
مرجع الوحدات#
RagArticle#
GET /questionnaire/rag/articles/summary#
ملخص: ملخص للصفحة الرئيسية
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| proj | query | string (uuid) | لا | معرف المشروع. |
الاستجابة (200):
{
"active": 5
}
GET /questionnaire/rag/articles/total#
ملخص: عدد المقالات
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| q | query | string | لا | تصفية حسب اسم أو رمز المقال. |
| state | query | array | لا | تصفية حسب الحالات. |
| project | query | array | لا | تصفية حسب المشاريع. |
| type | query | array | لا | تصفية حسب أنواع المستندات. |
الاستجابة (200):
42
GET /questionnaire/rag/articles/list#
ملخص: الحصول على قائمة المقالات
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| q | query | string | لا | تصفية حسب اسم أو رمز المقال. |
| state | query | array | لا | تصفية حسب الحالات. |
| project | query | array | لا | تصفية حسب المشاريع. |
| type | query | array | لا | تصفية حسب أنواع المستندات. |
| s | query | string | لا | حقل الترتيب. |
| asc | query | boolean | لا | ترتيب تصاعدي. |
| ps | query | integer (int32) | لا | حجم الصفحة. |
| p | query | integer (int32) | لا | رقم الصفحة (بدءًا من 1). |
الاستجابة (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": "عنوان المقال",
"description": "وصف المقال",
"documentTypes": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "اسم النوع",
"plural": "أسماء الأنواع",
"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#
ملخص: إرجاع محتوى Markdown من الملف
جسم الطلب (multipart/form-data):
{
"url": "https://example.com/file.pdf",
"file": "binary"
}
الاستجابة (200):
"Markdown content from file"
POST /questionnaire/rag/article/create#
ملخص: إنشاء مقال
جسم الطلب (multipart/form-data):
{
"code": "ART-001",
"name": "عنوان المقال",
"description": "وصف المقال",
"content": "# محتوى المقال\n\nهذا هو محتوى المقال.",
"url": "https://example.com/file.pdf",
"file": "binary"
}
الاستجابة (200):
{
"code": "ART-001",
"org": "00000000-0000-0000-0000-000000000000",
"id": "00000000-0000-0000-0000-000000000000",
"name": "عنوان المقال",
"description": "وصف المقال",
"documentTypes": null,
"size": 150,
"revision": null,
"type": "Article",
"state": "Active",
"projects": null,
"items": null,
"isShared": false
}
GET /questionnaire/rag/article/check#
ملخص: التحقق من وجود المقال.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
الاستجابة (200):
true
GET /questionnaire/rag/article-info#
ملخص: الحصول على معلومات المقال حسب الرمز.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
الاستجابة (200):
{
"code": "ART-001",
"org": "00000000-0000-0000-0000-000000000000",
"id": "00000000-0000-0000-0000-000000000000",
"name": "عنوان المقال",
"description": "وصف المقال",
"documentTypes": null,
"size": 150,
"revision": null,
"type": "Article",
"state": "Active",
"projects": null,
"items": null,
"isShared": false
}
GET /questionnaire/rag/article#
ملخص: الحصول على محتوى المقال حسب الرمز
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
| format | query | string | لا | إذا كان true، تُرجع المحتوى بصيغة HTML في جسم الاستجابة. وإلا تُرجع المحتوى بصيغة Markdown. |
| split | query | boolean | لا | إذا كان true، تُرجع المحتوى مفصولًا بعناصر RAG. |
| css | query | boolean | لا | إذا كان true، تُرجع محتوى HTML/PDF مع CSS. |
الاستجابة (200):
"# عنوان المقال\n\nهذا هو محتوى المقال بصيغة Markdown."
POST /questionnaire/rag/article#
ملخص: تحديث بيانات تعريف المقال
جسم الطلب:
{
"code": "ART-001",
"name": "عنوان المقال المحدث",
"description": "وصف محدث",
"projects": [
"00000000-0000-0000-0000-000000000000"
],
"documentTypes": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "اسم النوع",
"plural": "أسماء الأنواع"
}
],
"isShared": true,
"state": "Active"
}
الاستجابة (200):
{}
DELETE /questionnaire/rag/article#
ملخص: حذف مقال
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
GET /questionnaire/rag/article/pdf#
ملخص: الحصول على المقال بصيغة PDF حسب الرمز
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
الاستجابة (200):
(pdf binary)
GET /questionnaire/rag/article/content#
ملخص: الحصول على محتوى المقال
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
الاستجابة (200):
{
"content": "# عنوان المقال\n\nالمحتوى هنا."
}
POST /questionnaire/rag/article/content#
ملخص: تحديث محتوى المقال
جسم الطلب (multipart/form-data):
{
"code": "ART-001",
"content": "# محتوى محدث",
"file": "binary"
}
POST /questionnaire/rag/plural#
ملخص: الحصول على صيغة الجمع للاسم
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| noun | query | string | لا | الاسم المطلوب جمعه. |
الاستجابة (200):
{
"plural": "Articles"
}
POST /questionnaire/rag/article/find-types#
ملخص: تحليل المقال باستخدام الذكاء الاصطناعي وإرجاع أنواعه
جسم الطلب (multipart/form-data):
{
"code": "ART-001",
"content": "# محتوى المقال"
}
الاستجابة (200):
[
{
"plural": "Types"
}
]
POST /questionnaire/rag/article/format-with-ai#
ملخص: تنسيق محتوى المقال باستخدام الذكاء الاصطناعي
جسم الطلب (multipart/form-data):
{
"code": "ART-001",
"content": "# محتوى المقال"
}
الاستجابة (200):
{
"formattedContent": "# Formatted Article Content"
}
POST /questionnaire/rag/article/improve-on-suggestions#
ملخص: تحسين المستند بناءً على الاقتراحات
جسم الطلب (multipart/form-data):
{
"suggestions": [
{
"sectionTitle": "Introduction",
"suggestion": "Add more details here."
}
],
"code": "ART-001",
"content": "# محتوى المقال"
}
الاستجابة (200):
{
"improvedContent": "# Improved Content"
}
GET /questionnaire/rag/article/parts#
ملخص: إرجاع قائمة أجزاء المقال
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| id | query | array | نعم | قائمة بأجزاء المقال. |
الاستجابة (200):
[
{
"id": "00000000-0000-0000-0000-000000000000",
"code": "part-1",
"title": "Introduction",
"orderNumber": 1,
"content": "Introduction content."
}
]
GET /questionnaire/rag/article/revisions#
ملخص: إرجاع قائمة مراجعات المقال
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
الاستجابة (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}#
ملخص: الحصول على معلومات مراجعة المقال
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| id | path | string (uuid) | نعم | معرف المراجعة. |
الاستجابة (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}#
ملخص: الحصول على محتوى مراجعة المقال
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| id | path | string (uuid) | نعم | معرف المراجعة. |
الاستجابة (200):
"# Article Revision Content\n\nPrevious version."
GET /questionnaire/rag/article/analyze#
ملخص: تحليل محتوى المقال باستخدام الذكاء الاصطناعي
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المقال. |
| rev | query | integer (int32) | لا | رقم المراجعة. |
| force | query | boolean | لا | إجبار إنشاء تحليل جديد وحذف نتيجة التحليل غير المكتملة إذا وجدت. |
الاستجابة (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}#
ملخص: الحصول على نتيجة تحليل المقال
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| id | path | string (uuid) | نعم | معرف التحليل. |
الاستجابة (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#
ملخص: سرد جميع الرسائل
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| id | query | string (uuid) | نعم | معرف مجموعة RAG. |
| item | query | string (uuid) | لا | معرف عنصر RAG. |
| message | query | string (uuid) | لا | معرف الرسالة. |
| asc | query | boolean | لا | ترتيب تصاعدي. |
| ps | query | integer (int32) | لا | حجم الصفحة. |
| p | query | integer (int32) | لا | رقم الصفحة (بدءًا من 1). |
الاستجابة (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#
ملخص: إضافة رسالة جديدة
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| id | query | string (uuid) | نعم | معرف مجموعة RAG. |
| item | query | string (uuid) | لا | معرف عنصر RAG. |
| message | query | string (uuid) | لا | معرف الرسالة للرد عليها. |
جسم الطلب:
{
"text": "New message content"
}
الاستجابة (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#
ملخص: تحديث رسالة موجودة
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| c | query | string (uuid) | نعم | معرف مجموعة RAG. |
| id | query | string (uuid) | نعم | معرف الرسالة. |
جسم الطلب:
{
"text": "Updated message content"
}
الاستجابة (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#
ملخص: حذف رسالة موجودة
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| id | query | string (uuid) | نعم | معرف الرسالة. |
الاستجابة (200):
{}
RagFaq#
GET /questionnaire/rag/faq-collections/summary#
ملخص: ملخص للصفحة الرئيسية
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| proj | query | string (uuid) | لا | معرف المشروع. |
الاستجابة (200):
{
"active": 3
}
GET /questionnaire/rag/faq-collections/total#
ملخص: عدد مجموعات الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| q | query | string | لا | تصفية حسب اسم أو رمز المجموعة. |
| state | query | array | لا | تصفية حسب الحالات. |
| project | query | array | لا | تصفية حسب المشاريع. |
الاستجابة (200):
3
GET /questionnaire/rag/faq-collections/list#
ملخص: الحصول على قائمة مجموعات الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| q | query | string | لا | تصفية حسب اسم أو رمز المجموعة. |
| state | query | array | لا | تصفية حسب الحالات. |
| project | query | array | لا | تصفية حسب المشاريع. |
| s | query | string | لا | حقل الترتيب. |
| asc | query | boolean | لا | ترتيب تصاعدي. |
| ps | query | integer (int32) | لا | حجم الصفحة. |
| p | query | integer (int32) | لا | رقم الصفحة (بدءًا من 1). |
الاستجابة (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#
ملخص: العثور على عناصر الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| q | query | string | نعم | تصفية حسب السؤال. |
| project | query | string (uuid) | لا | تصفية حسب المشروع. |
| ps | query | integer (int32) | لا | حجم الصفحة. |
| p | query | integer (int32) | لا | رقم الصفحة (بدءًا من 1). |
الاستجابة (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#
ملخص: إنشاء مجموعة أسئلة متكررة جديدة.
جسم الطلب (multipart/form-data):
{
"code": "FAQ-001",
"name": "FAQ Collection",
"description": "FAQ collection description",
"content": "Content here",
"file": "binary"
}
الاستجابة (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#
ملخص: تحديث بيانات تعريف مجموعة الأسئلة المتكررة.
جسم الطلب:
{
"code": "FAQ-001",
"name": "Updated FAQ Collection",
"description": "Updated description",
"projects": null,
"documentTypes": null,
"isShared": false,
"state": "Active"
}
DELETE /questionnaire/rag/faq-collection#
ملخص: حذف مجموعة الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المجموعة. |
GET /questionnaire/rag/faq-collection#
ملخص: الحصول على مجموعة الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المجموعة. |
الاستجابة (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#
ملخص: التحقق من وجود مجموعة الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المجموعة. |
الاستجابة (200):
true
GET /questionnaire/rag/faq-collection/items-total#
ملخص: عدد عناصر الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المجموعة. |
| q | query | string | لا | تصفية حسب محتوى العنصر. |
جسم الطلب:
["Active", "Default"]
الاستجابة (200):
5
GET /questionnaire/rag/faq-collection/items#
ملخص: الحصول على قائمة عناصر الأسئلة المتكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المجموعة. |
| q | query | string | لا | تصفية حسب محتوى العنصر. |
| state | query | array | لا | تصفية حسب الحالات. |
| s | query | string | لا | حقل الترتيب. |
| asc | query | boolean | لا | ترتيب تصاعدي. |
| ps | query | integer (int32) | لا | حجم الصفحة. |
| p | query | integer (int32) | لا | رقم الصفحة (بدءًا من 1). |
الاستجابة (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#
ملخص: إنشاء عنصر أسئلة متكررة جديد.
جسم الطلب:
{
"code": "FAQ-001",
"index": 0,
"question": "What is this product?",
"answer": "This is a great product.",
"comment": "Product FAQ",
"state": "Active"
}
الاستجابة (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#
ملخص: الحصول على عنصر أسئلة متكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المجموعة. |
| index | query | integer (int32) | نعم | الفهرس الصفري للعنصر داخل المجموعة. |
الاستجابة (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#
ملخص: تحديث عنصر أسئلة متكررة.
جسم الطلب:
{
"code": "FAQ-001",
"index": 0,
"newIndex": 1,
"question": "Updated question?",
"answer": "Updated answer.",
"comment": "Updated comment",
"state": "Active"
}
DELETE /questionnaire/rag/faq-collection/item#
ملخص: حذف عنصر أسئلة متكررة.
المعلمات:
| الاسم | الموقع | النوع | إلزامي | الوصف |
|---|---|---|---|---|
| code | query | string | نعم | رمز المجموعة. |
| index | query | integer (int32) | نعم | الفهرس الصفري للعنصر داخل المجموعة. |
RagQuery#
POST /questionnaire/rag/query#
ملخص: تنفيذ استعلام في قاعدة المعرفة RAG
جسم الطلب:
{
"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
}
الاستجابة (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#
ملخص: تنفيذ استعلام في قاعدة المعرفة RAG (تدفق)
جسم الطلب:
{
"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
}
الاستجابة (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#
ملخص: تنفيذ استعلام في قاعدة المعرفة RAG (مقاطع)
جسم الطلب:
{
"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
}
الاستجابة (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
}
]
}
مقالات ذات صلة#
- رموز API – الإنشاء والإدارة – كيفية إنشاء وإدارة الرموز
- اسأل الذكاء الاصطناعي باستخدام قاعدة معرفتك – استخدام استعلامات RAG
