توسعهدهندگان
داریک را به محصول و جریان داده خود متصل کنید.
اتصال با یک قرارداد ساده انجام میشود: درخواست امضاشده، بههمراه دادهی کسبوکار شما در safe_context. کلیدها و مستندات کامل پس از ورود در پنل در دسترساند.
مسیرهای اتصال
سه راه برای وصل شدن
بسته به اینکه چقدر کنترل میخواهید و دادهتان کجاست، یکی از این مسیرها را انتخاب میکنید.
برای نقاط تماس وب
سرویس واسط سایت
یک سرویس سبک که بین سایت شما و هستهی داریک مینشیند: شناسهی نشست را هش میکند، پیام و زمینه را پاکسازی میکند و فقط دادهی لازم را از اتصالدهنده میگیرد.
برای محصولات اختصاصی
فراخوانی مستقیم API
اگر میخواهید کنترل کامل روی جریان داشته باشید، مستقیم با همان قرارداد امضاشده به نقاط پایانی درخواست بزنید.
برای دادهی کسبوکار
منابع دادهی سفارشی
اتصالدهندهها فقط فیلدهایی را میگیرند که داریک در needed_data درخواست کرده. اتصالدهندهی تولیدی هرگز دادهی محصول، موجودی، سفارش یا پرداخت را جعل نمیکند.
مرجع
نقاط پایانی
| متد | مسیر | احراز هویت | کاربرد |
|---|---|---|---|
| POST | /v1/understand | Tenant HMAC | تحلیل پرسش کاربر: نیت، زمینه و دادهای که برای پاسخ لازم است. |
| POST | /v1/respond | Tenant HMAC | ساخت پاسخ نهایی بر پایهی زمینه و دادهی کسبوکار در safe_context. |
| POST | /v1/feedback | Tenant HMAC | ثبت بازخورد روی یک پاسخ با همان request_id، برای مسیر خوداصلاحی. |
| GET | /v1/health | بدون احراز هویت | بررسی سلامت سرویس. |
احراز هویت
امضای HMAC
هر درخواست با کلید API، یک timestamp و امضای HMAC-SHA256 روی «بدنهٔ خام + نقطه + timestamp» ارسال میشود. مقایسهی امضا در زمان ثابت انجام میشود و تحمل اختلاف زمانی قابل تنظیم است.
// Node.js — امضای HMAC و فراخوانی /v1/respond
import crypto from "crypto";
const API = process.env.DARIK_API_URL; // دامنهٔ سرور شما
const API_KEY = process.env.DARIK_API_KEY; // از تب «کلیدهای API» در پنل
const SECRET = process.env.DARIK_API_SECRET; // فقط یکبار هنگام ساخت نمایش داده میشود
const body = JSON.stringify({
tenant_id: process.env.DARIK_TENANT_ID,
request_id: crypto.randomUUID(),
user_message: "گارانتی محصولات چند ماهه؟",
safe_context: {
store_name: "فروشگاه شما",
warranty: "همه محصولات ۱۸ ماه گارانتی دارند.",
return_policy: "کالای بازنشده تا ۷ روز قابل مرجوعی است."
}
});
const ts = Math.floor(Date.now() / 1000).toString();
// امضا روی «بدنهٔ خام + نقطه + timestamp»
const sig = crypto.createHmac("sha256", SECRET)
.update(body + "." + ts).digest("hex");
const res = await fetch(API + "/v1/respond", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-darik-api-key": API_KEY,
"x-darik-timestamp": ts,
"x-darik-signature": sig
},
body
});
console.log(await res.json());<?php
// PHP — همان قرارداد امضا
$body = json_encode($payload, JSON_UNESCAPED_UNICODE);
$timestamp = time();
$signature = hash_hmac('sha256', $body . "." . $timestamp, $tenantSecret);
?>// اگر پاسخی درست نبود، همان request_id را برگردانید
await fetch(API + "/v1/feedback", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-darik-api-key": API_KEY,
"x-darik-timestamp": ts,
"x-darik-signature": sig
},
body: JSON.stringify({
request_id: "<همان request_id درخواست قبلی>",
feedback_type: "negative_feedback"
})
});کلیدها و محیط
دامنههای دسترسی و متغیرهای محیطی
دامنههای دسترسی کلید
respond
اجازهی فراخوانی /v1/respond.
feedback
اجازهی فراخوانی /v1/feedback.
understand
اجازهی فراخوانی /v1/understand.
ساخت، چرخش و ابطال کلید از تب «کلیدهای API» در پنل انجام میشود. کلید ابطالشده بلافاصله مسدود میگردد.
متغیرهای محیطی
DARIK_API_URL
آدرس سرویس داریک.
DARIK_API_KEY
کلید عمومی مستأجر؛ در هدر x-darik-api-key ارسال میشود.
DARIK_API_SECRET
راز امضا؛ فقط یکبار هنگام ساخت کلید نمایش داده میشود.
DARIK_TENANT_ID
شناسهی مستأجر، قابل مشاهده در پنل.
زیرساخت
مسیریابی درخواست
پیش از ساخت پاسخ، داریک تصمیم میگیرد درخواست از کدام مسیر برود. این تصمیم بخشی از معماری است و در گزارش هر درخواست ثبت میشود.
پاسخ از دانش ساختهشده
وقتی پاسخ معتبر و قابل استفادهی مجدد وجود دارد.
تفکیک چند نیت همزمان
وقتی یک پیام بیش از یک پرسش در خود دارد.
پاسخ محتاطانه
وقتی داده کافی هست اما اطمینان کامل نیست.
ارجاع به مدل، با اعتبارسنجی
وقتی تولید پاسخ لازم است؛ خروجی پیش از تحویل بررسی میشود.
درخواست توضیح بیشتر
وقتی پرسش مبهم است؛ بهجای حدس زدن، سؤال روشنکننده پرسیده میشود.
روش سنجش این مسیرها و محدودیتهای دادهی فعلی در صفحهی روش سنجش معماری توضیح داده شده است.
در دسترس نیست
Webhooks و بستهی SDK رسمی
در حال حاضر داریک نقطهی پایانی Webhook و بستهی SDK منتشرشدهای ندارد. تا زمانی که اینها وجود نداشته باشند، مستندی برایشان نمینویسیم. اتصال از طریق همان قرارداد HTTP بالا انجام میشود که در هر زبانی قابل پیادهسازی است — نمونهی Node.js و PHP در همین صفحه آمده.
اگر جریان کاری شما به این موارد نیاز دارد، با تیم رونیک در میان بگذارید.