بارگذاری اسناد
هر سندی که به پایگاه دانش یک دستیار اضافه میشود — چه فایل چه متن خام — از یک الگوی سهمرحلهایِ یکسان عبور میکند: افزودن به صف ← پایش وضعیت ← استفاده.
افزودن به صف
یکی را انتخاب کنید:
- یک فایل دارید (PDF، docx، txt و …):
POST /v1/assistants/:assistantCode/documents،multipart/form-data، با نام فیلدfiles(تکرارشونده). - یک رشته دارید:
POST /v1/assistants/:assistantCode/documents/text، بدنهی JSON باfilename+content.
هر دو، فوراً یک فهرست از نوع DocumentIngestJobResponse برمیگردانند — یک
ورودی برای هر فایل (یا یک ورودی برای متن)، با status: "queued". برای
شکل دقیق درخواست/پاسخ به مرجع Endpoint
مراجعه کنید.
curl -X POST "https://<host>/v1/assistants/<assistantCode>/documents/text" \
-H "Authorization: Bearer $PLEXIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"filename": "faq.txt", "content": "Q: ...\nA: ..."}'پایش وضعیت
مقدار id را از پاسخ بردارید و GET .../documents/jobs/:jobId را تا
رسیدن status به ready یا failed Poll کنید. برای الگوی پیشنهادیِ
Backoff به پایش وضعیت پردازش اسناد
مراجعه کنید.
استفاده از آن
بهمحض status: "ready"، سند برای دستیار قابل جستوجو است — تماس گفتگوی
بعدیِ شما میتواند با استفاده از آن پاسخ داده
شود، و با resultFileId همان Job در
GET .../documents نمایان
میشود.
سازماندهی با پوشهها
هر دو Endpoint بارگذاری، یک folderId اختیاری (۳۲ کاراکتر Hex با حروف
کوچک) میپذیرند تا سند را بهجای ریشه، درون یک پوشه قرار دهند. در این
مرجع، هیچ Endpoint ساخت پوشهای در API عمومی وجود ندارد — شناسهی پوشهها
از هر جایی که پوشههای دستیار شما از پیش ساخته شدهاند (مثلاً کنسول) میآید.
عدم ارسال folderId سند را در ریشه قرار میدهد.
بارگذاری چندین فایل در یک درخواست
Endpoint بارگذاری، چندین بخشِ files را در یک درخواست میپذیرد و برای هر
فایل یک Job برمیگرداند:
curl -X POST "https://<host>/v1/assistants/<assistantCode>/documents" \
-H "Authorization: Bearer $PLEXIT_API_KEY" \
-F "files=@a.pdf" -F "files=@b.pdf" -F "files=@c.pdf"{
"data": {
"list": [
{ "id": "...job1", "status": "queued", "path": "/a.pdf", "...": "..." },
{ "id": "...job2", "status": "queued", "path": "/b.pdf", "...": "..." },
{ "id": "...job3", "status": "queued", "path": "/c.pdf", "...": "..." }
],
"count": 3
},
"response": { "status": "success", "message": "..." }
}هر شناسهی Job را جداگانه Poll کنید — وضعیت آنها مشترک نیست.
جایگزینیِ یک سند موجود (همان مسیر) در Job بهصورت kind: "replace"
بهجای "create" نمایان میشود — بقیهی این فرآیند دقیقاً یکسان است.