شروع سریع
با چهار درخواست، یک سند بارگذاری کنید و اولین پاسخ ارجاعدار را بگیرید.
کل چرخه همین است: جایی برای سندها بسازید، یکی را داخلش بگذارید، صبر کنید پردازش شود، بعد از آن بپرسید. چهار درخواست، حدود پنج دقیقه با احتساب پردازش.
پیش از شروع
به یک کلید API نیاز دارید. کنسول را باز کنید، یک اپ را انتخاب کنید و کلید را از کارت «کلید API» در ستون کناری کپی کنید — مقدارش روی صفحه پوشانده شده اما کامل کپی میشود.
بهجای اینکه کلید را داخل کد بچسبانید، در یک متغیر محیطی نگهش دارید. همهٔ نمونههای این سایت DANESHYAR_API_KEY را میخوانند:
export DANESHYAR_API_KEY=dk_live_…چهار درخواست
یک فضای کاری بسازید
فضای کاری همان مرزی است که پاسخها درونش بازیابی میشوند. شناسهای که برمیگرداند را نگه دارید؛ بقیهٔ درخواستهای این راهنما به آن نیاز دارند.
curl -X POST "https://api.daneshyar.info/api/v1/workspaces/" \ -H "X-API-Key: dk_live_9f3aC2xQ7mB1vT8sE4nK6pR0jY5wZ2hL" \ -H "Content-Type: application/json" \ -d '{ "title": "Cardiology intake", "description": "Patient handbooks and discharge protocols" }'پاسخ{ "status": "ok", "data": { "id": "8f14e45f-ceea-467a-9f4c-1a2b3c4d5e6f", "title": "Cardiology intake", "description": "Patient handbooks and discharge protocols", "share_token": "s7Kd0pLm2Qx", "created_at": "2026-08-05T09:14:22.118Z", "updated_at": "2026-08-05T09:14:22.118Z" } }یک سند بارگذاری کنید
بارگذاری از نوع multipart است و تنها بخش الزامی، خود فایل است. پاسخ بیدرنگ با وضعیت queued برمیگردد: فایل پذیرفته شده، اما هنوز پردازش نشده است.
curl -X POST "https://api.daneshyar.info/api/v1/workspaces/8f14e45f-ceea-467a-9f4c-1a2b3c4d5e6f/resources/" \ -H "X-API-Key: dk_live_9f3aC2xQ7mB1vT8sE4nK6pR0jY5wZ2hL" \ -F "file=@discharge-protocol-2026.pdf" \ -F "title=Discharge protocol 2026"پاسخ{ "status": "ok", "data": { "id": "3c9a1b77-0d24-4e8b-b0f1-7a5e9c2d4b81", "title": "Discharge protocol 2026.pdf", "type": "pdf", "file_url": "https://api.daneshyar.info/media/resources/discharge-protocol-2026.pdf", "extension": "pdf", "size": 482913, "status": "queued", "summary": "", "key_notes": [], "error_message": "", "workspace_id": "8f14e45f-ceea-467a-9f4c-1a2b3c4d5e6f", "created_at": "2026-08-05T09:20:41.702Z", "updated_at": "2026-08-05T09:20:41.702Z" } }منتظر بمانید تا ready شود
پردازش ناهمزمان است — استخراج، تکهتکه کردن، بردارسازی. هر چند وقت یکبار سند را بخوانید تا وضعیتش ready شود. یک PDF کوتاه چند ثانیه طول میکشد؛ یک ویدیوی بلند چند دقیقه.
curl "https://api.daneshyar.info/api/v1/workspaces/8f14e45f-ceea-467a-9f4c-1a2b3c4d5e6f/resources/3c9a1b77-0d24-4e8b-b0f1-7a5e9c2d4b81/" \ -H "X-API-Key: dk_live_9f3aC2xQ7mB1vT8sE4nK6pR0jY5wZ2hL" \ | grep -o '"status": *"[^"]*"'اگر پیش از ready شدن هر سندی بپرسید، باز هم پاسخی میگیرید، اما پاسخی کلی و بدون ارجاع خواهد بود. پیش از قضاوت دربارهٔ کیفیت، منتظر ready بمانید.یک سؤال بپرسید
پرسش را همراه با external_user_id بفرستید — شناسهٔ خودتان برای کسی که میپرسد. پاسخ با ارجاعهایی میآید که بخشهای منبعش را نام میبرند.
curl -X POST "https://api.daneshyar.info/api/v1/workspaces/8f14e45f-ceea-467a-9f4c-1a2b3c4d5e6f/chat/" \ -H "X-API-Key: dk_live_9f3aC2xQ7mB1vT8sE4nK6pR0jY5wZ2hL" \ -H "Content-Type: application/json" \ -d '{ "external_user_id": "user_4821", "message": "How long do anticoagulant patients stay under observation?" }'پاسخ{ "status": "ok", "data": { "session": { "id": "b6d2e1a4-77c3-4f59-9a10-2e8d6c4b0f37", "title": "Anticoagulant discharge window", "workspace_id": "8f14e45f-ceea-467a-9f4c-1a2b3c4d5e6f", "created_at": "2026-08-05T10:02:11.004Z", "updated_at": "2026-08-05T10:02:14.551Z" }, "user_message": { "id": "5e2c8a03-49bd-4c17-8f6a-31d0b7e5a924", "role": "user", "content": "How long do anticoagulant patients stay under observation?", "response": null, "citations": [], "resource_ids": [], "image_url": null, "created_at": "2026-08-05T10:02:11.219Z" }, "assistant_message": { "id": "7c1b4e90-2af6-4d38-b5c1-8e07a3f62d15", "role": "assistant", "content": "Patients on anticoagulants require a 48-hour observation window before discharge.", "response": { "type": "answer", "parts": [ { "text": "Patients on anticoagulants require a 48-hour observation window before discharge.", "source": { "chunk_id": "e0c9a71d-5b32-4f88-9a04-6c1d2e83f507", "resource_id": "3c9a1b77-0d24-4e8b-b0f1-7a5e9c2d4b81", "resource_title": "Discharge protocol 2026.pdf", "chunk_index": 7, "metadata": { "source_type": "pdf", "page": 4 } } } ], "form": null }, "citations": [ { "resource_id": "3c9a1b77-0d24-4e8b-b0f1-7a5e9c2d4b81", "resource_title": "Discharge protocol 2026.pdf", "chunk_index": 7, "metadata": { "source_type": "pdf", "page": 4 } } ], "resource_ids": ["3c9a1b77-0d24-4e8b-b0f1-7a5e9c2d4b81"], "image_url": null, "created_at": "2026-08-05T10:02:14.480Z" } } }پاسخ هم یک رشتهٔ سادهٔ
contentدارد و هم یک شیء ساختاریافتهٔresponse. برای نمایش پاسخ ازcontentو برای نشان دادن منبعها ازcitationsاستفاده کنید.
بعد از این
کل سطح API همین است. از اینجا، دو چیزی که پیش از ساخت جدی ارزش خواندن دارند عبارت است از: فضاهای کاری را چطور بچینید، و بازیابی چطور تصمیم میگیرد چه چیزی را نقل کند.