کانال‌ها

API گفتگو

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

مرور کلی

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

چه کارهایی می‌توانید انجام دهید؟

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

ایجاد کلید API

کانال API را باز کنید

موچت موردنظر را در داشبورد انتخاب کنید. در انتشار موچت، کارت API را باز کنید و راه اندازی را بزنید.

کلید را ایجاد کنید

ایجاد کلید API را بزنید. کلید در بخش مدیریت کلیدها نمایش داده می‌شود؛ با انتخاب آن، مقدار را کپی کنید.

کلید را در سرور تنظیم کنید

مقدار را در متغیر محیطی MUCHAT_API_KEY سرور خود قرار دهید. این کلید با شناسهٔ موچت یا websiteToken ویجت متفاوت است.

صفحهٔ ایجاد کلید API برای موچت انتخاب‌شده در داشبورد

ارسال پیام

درخواست POST /v2/chat را با هدر Authorization: Bearer بفرستید. این نمونه منتظر پاسخ نهایی JSON می‌ماند:

cURL
curl --request POST 'https://api.mu.chat/v2/chat' \
  --header "Authorization: Bearer $MUCHAT_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"query":"سلام","stream":false}'

متن پاسخ در data.message.parts قرار دارد. هر بخش متنی، type برابر text دارد و متن آن در text است. اطلاعات مکالمه و نتیجهٔ پاسخ‌گویی را در data.metadata بخوانید:

فیلدکاربرد
conversation_idشناسهٔ گفتگو برای ارسال پیام بعدی در همان مکالمه
external_message_idشناسهٔ پیام ورودی برای پیگیری یا تلاش مجدد
finish_reasonنتیجهٔ پاسخ‌گویی؛ برای نمونه completed یا suppressed
bot_activeوضعیت فعال‌بودن هوش مصنوعی در گفتگو
handoff_statusوضعیت واگذاری گفتگو به پشتیبان

ادامهٔ گفتگو و تلاش مجدد

برای پیام بعدی، conversation_id پاسخ قبلی را همراه query تازه در بدنه بفرستید. پیش از ارسال پیام بعدی، منتظر پایان درخواست قبلی بمانید؛ گفتگو با پاسخ در حال تولید، پیام هم‌زمان دیگری نمی‌پذیرد.

  • برای هر پیام منطقی می‌توانید یک external_message_id یکتا تعیین کنید. اگر همان درخواست را دوباره می‌فرستید، همان شناسه و بدنه را نگه دارید تا پیام تکراری ساخته نشود.
  • استفاده از همان شناسه با متن یا بدنهٔ متفاوت، خطای تعارض می‌دهد. برای پیام تازه، شناسهٔ تازه بسازید.
  • بدون conversation_id، پیام را به‌عنوان شروع گفتگو در نظر بگیرید. برای ادامهٔ مکالمه، شناسهٔ برگشتی را ذخیره کنید.
  • اگر message خالی است یا نتیجه suppressed است، متن ساختگی به کاربر نشان ندهید؛ وضعیت توقف هوش مصنوعی و ارجاع را بررسی کنید.

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

رفع مشکل

وضعیتبررسی
401کلید و قالب هدر Bearer را بررسی کنید.
403فعال‌بودن کانال و دسترسی پلن به API را بررسی کنید.
409شناسهٔ پیام تکراری با بدنهٔ متفاوت، درخواست هم‌زمان یا بسته‌بودن گفتگو را بررسی کنید.
422بدنه باید JSON معتبر باشد و پیام متنی خالی نفرستید.

برای آزمون، ابتدا یک پیام بفرستید، سپس با شناسهٔ برگشتی پیام دوم را ادامه دهید و ثبت همان گفتگو را در اینباکس بررسی کنید. حذف اتصال API، کلید آن را از دسترس درخواست‌های بعدی خارج می‌کند.

قدم‌های بعدی

مستندات موچت

در این صفحه