رفتن به محتوا
دانشیارمستندات
ورود
  • اپ، فضای کاری، سند
  • پردازش سند
  • گفت‌وگو و نشست‌ها
  • ارجاع‌ها
  • مهارت‌ها
  1. مستندات
  2. مفاهیم
  3. گفت‌وگو و نشست‌ها

گفت‌وگو و نشست‌ها

گفت‌وگوها چطور ذخیره می‌شوند، کاربران نهایی چطور از هم جدا می‌مانند، و بازیابی چطور بخش‌ها را انتخاب می‌کند.

هر پرسش روی یک فضای کاری اجرا می‌شود، برای یکی از کاربران نهایی شما، درون گفت‌وگویی که سرور ذخیره‌اش می‌کند.

نشست‌ها

نشست یعنی یک گفت‌وگو. اگر session_id نفرستید سرور یکی می‌سازد و از پیام اولتان برایش عنوان می‌گذارد؛ اگر پسش بفرستید، گفت‌وگو با بیست نوبت آخر به‌عنوان زمینه ادامه پیدا می‌کند.

نشست‌ها سمت سرور ذخیره می‌شوند و از هر اتفاقی در سمت شما جان سالم به در می‌برند. لازم نیست خودتان متن گفت‌وگوها را نگه دارید — هرچند شاید بخواهید، چون مسیرهای فهرست تنها راه بازخواندنشان هستند.

cURL
JavaScript
Python
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",
    "session_id": "b6d2e1a4-77c3-4f59-9a10-2e8d6c4b0f37",
    "message": "And for patients over 70?"
  }'

جدا کردن کاربران نهایی شما

مقدار external_user_id شناسهٔ شماست برای کسی که می‌پرسد. در هر فراخوانی الزامی است و همان چیزی است که با وجود اشتراک در یک کلید API، کاربران نهایی شما را از هم جدا نگه می‌دارد.

از شناسه‌ای پایدار در سامانهٔ خودتان استفاده کنید — شناسهٔ کاربر، نه ایمیل و نه کوکی نشست. اگر تغییر کند، آن شخص تاریخچه‌اش را از دست می‌دهد. اگر دو نفر یکی داشته باشند، تاریخچهٔ هم را می‌بینند.

هیچ چیزی این مقدار را اعتبارسنجی نمی‌کند. فرستادن یک مقدار یکسان برای همهٔ کاربران، بی‌سروصدا همهٔ گفت‌وگوهایشان را در یک نشست ادغام می‌کند و مدل با زمینهٔ شخص دیگری پاسخ می‌دهد.

بازیابی چطور کار می‌کند

وقتی پرسشی می‌رسد، سرور آن را بردارسازی می‌کند، نزدیک‌ترین بخش‌ها را از میان سندهای پردازش شده آن فضای کاری بر اساس شباهت برداری پیدا می‌کند، و از روی همان بخش‌ها به‌علاوهٔ تاریخچهٔ اخیر گفت‌وگو پاسخ می‌دهد.

  • به‌طور پیش‌فرض پنج بخش نزدیک را از کل فضای کاری بازیابی می‌کند.
  • اگر resource_ids بفرستید، بازیابی هم اجباری می‌شود و هم گسترده‌تر — حدود پانزده بخش، به‌علاوهٔ چند بخش از هر سندی که نام برده‌اید، تا سندی که نزدیک‌ترین تطابق نیست هم نماینده داشته باشد.
  • فضای کاری‌ای که هیچ سند ready ندارد، به‌جای آن از دانش عمومی و بدون ارجاع پاسخ می‌دهد. تنها حالتی است که پاسخ بر سندهای شما تکیه ندارد.
آستانهٔ ارتباط وجود ندارد. فضای کاری‌ای که سند ready دارد همیشه چیزی بازیابی می‌کند، حتی برای یک سلام — پس ارجاع داشتنِ یک پاسخ به‌خودی‌خود به این معنا نیست که پرسش مرتبط بوده است.

وقتی پاسخ یک فرم است

گاهی مدل پیش از آن‌که بتواند پاسخ به‌دردبخوری بدهد به ورودی نیاز دارد. به‌جای حدس زدن، response.type را برابر form برمی‌گرداند همراه با مجموعه‌ای از فیلدها برای جمع‌آوری.

نمونه
{
  "status": "ok",
  "data": {
    "assistant_message": {
      "role": "assistant",
      "content": "Which department should I answer for?",
      "response": {
        "type": "form",
        "parts": [{ "text": "Which department should I answer for?", "source": null }],
        "form": {
          "title": "Narrow the question",
          "fields": [
            {
              "name": "department",
              "label": "Department",
              "type": "select",
              "required": true,
              "options": ["Cardiology", "Neurology", "Oncology"]
            }
          ]
        }
      }
    }
  }
}

هر فیلد name، label، type و required دارد و ممکن است placeholder و options هم داشته باشد. نوع‌ها عبارت‌اند از text، textarea، number، select، checkbox، radio، date و email.

یک نکتهٔ ظریف: فیلد checkbox با options یک گروه چندانتخابی است و همان فیلد بدون options یک گزینهٔ سادهٔ بله/خیر. بر اساس وجود options شرط بگذارید.

مسیری برای فرستادن پاسخ‌های فرم وجود ندارد. آن‌ها را جمع کنید، به‌صورت متن قالب‌بندی کنید، و در همان نشست به‌عنوان یک پیام معمولی بعدی بفرستید.
قبلیپردازش سندبعدیارجاع‌ها

در این صفحه

  • نشست‌ها
  • جدا کردن کاربران نهایی شما
  • بازیابی چطور کار می‌کند
  • وقتی پاسخ یک فرم است

همهٔ نمونه‌های این مستندات روی API واقعی اجرا می‌شوند. اگر نمونه‌ای کار نکرد، به ما بگویید؛ آن یک باگ در مستندات است.

گفت‌وگو با ما