ادامهی یک مکالمه
هر تماس گفتگو یک conversationId برمیگرداند.
اگر در تماس بعدی همان را بفرستید، دستیار با کل تاریخچهی آن مکالمه بهعنوان
زمینه پاسخ میدهد. اگر نفرستید، آخرین مکالمهی بازِ همان کاربر نهایی ادامه پیدا میکند.
الگو
// نوبت ۱ — هنوز conversationId ای وجود ندارد.
const first = await askAssistant(assistantCode, "user_9f21", "Hi, I have a billing question.");
// first.conversationId -> "9c1e3f5a7b9d2c4e6f8a0b2d4f6a8c0e"
// نوبت ۲ — آن را دوباره ارسال کنید.
const second = await askAssistant(
assistantCode,
"user_9f21",
"I was charged twice last month.",
first.conversationId,
);
// second.conversationId همان مقدار قبلی است — مکالمه ادامه مییابد.(تابع کمکی askAssistant در اینجا همان است که در
صفحهی مرجع گفتگو تعریف شده.)
چه چیزی یک مکالمه را مشخص میکند
یک مکالمه با ترکیب هر دوی principal و conversationId مشخص میشود
— conversationId یک شناسهی ۳۲ کاراکتریِ Hex است که آن را در سمت خودتان
ذخیره میکنید (در رکورد کاربر/نشستِ خودتان، یک ستون پایگاهداده، یا هر
جایی که برای اپلیکیشن شما منطقی است) و به رشتهی در حال ادامهی آن کاربر
نهایی مرتبط میکنید.
امروز هیچ Endpoint «فهرست مکالمات من» یا «دریافت تاریخچهی مکالمه» در
API عمومی وجود ندارد. اگر به تاریخچهی مکالمه در سمت خودتان نیاز دارید
(مثلاً برای نمایش یک رونوشت در رابط کاربریتان)، آن را هنگام ارسال/دریافت
هر نوبت، خودتان نگه دارید — از دید شما این API یک ابتدایی گفتگوی
Stateless درخواست/پاسخ است، هرچند پلکسیت در سمت سرور و از طریق
conversationId زمینه را نگه میدارد.
شروع دوباره
برای شروع عمدیِ یک مکالمهی جدید و بیربط برای همان کاربر نهایی، فقط
"newConversation": true را بفرستید (روی conversationId غلبه میکند) — نیازی
نیست چیزی بهطور صریح بسته یا حذف شود. نفرستادنِ conversationId بهتنهایی کافی
نیست: آن کار آخرین مکالمهی بازِ همان principal را ادامه میدهد.
اعتبارسنجی
conversationId، در صورت ارسال، باید با الگوی ^[a-f0-9]{32}$ مطابقت
داشته باشد — Hex با حروف کوچک، دقیقاً ۳۲ کاراکتر (مطابق همان چیزی که خودِ
API برمیگرداند). ارسال شناسهای که با این الگو مطابقت ندارد، از
اعتبارسنجی رد میشود و یک bad_request برمیگرداند — به
خطاها مراجعه کنید. ارسال یک
conversationId که از نظر شکل معتبر ولی ناشناخته/متعلق به جای دیگری است،
جدا از شکل آن بررسی میشود — با آن با احتیاط رفتار کنید (آمادهی
دریافت یک خطا باشید) بهجای فرض اینکه هر رشتهی ۳۲ کاراکتریِ Hex اختراعی
شما کار خواهد کرد.