مقاله آموزشی

چت‌بات پشتیبانی سایت با هوش مصنوعی؛ بسازیم یا اشتراک بخریم؟

نویسنده: تیم نِت اَرز به‌روزرسانی: ۱۰ دقیقه مطالعه ۴۰ بازدید

سؤال معمولاً این‌طور به ما می‌رسد: «برای سایتم چت‌بات پشتیبانی می‌خواهم؛ اشتراک ماهانهٔ یک سرویس آماده بگیرم یا خودم روی API بسازم؟» و تقریباً همیشه با یک مقایسهٔ اشتباه شروع می‌شود: عدد ماهانهٔ سرویس آماده در برابر حدس مبهمی از هزینهٔ API. این دو جنس هزینه اصلاً هم‌واحد نیستند. سرویس آماده بر اساس تعداد کاربر یا تعداد گفتگو صورت‌حساب می‌دهد و مسیر API بر اساس توکن. تا وقتی هزینهٔ یک گفتگو را نشمرده باشید، هیچ‌کدام از دو گزینه را نمی‌توانید ارزیابی کنید.

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

هزینهٔ یک گفتگو دقیقاً از چه ساخته می‌شود؟

هر بار که کاربر پیامی می‌فرستد، شما یک درخواست کامل به مدل می‌فرستید که سه بخش دارد: دستور سیستمی (لحن، قوانین، اطلاعات محصول یا تکه‌های بازیابی‌شده از دانش‌نامه)، تاریخچهٔ گفتگو تا این لحظه، و پیام تازهٔ کاربر. نکتهٔ گران قیمت همین وسط است: تاریخچه در هر نوبت دوباره فرستاده می‌شود. یعنی در یک گفتگوی پنج‌نوبته، دستور سیستمی پنج بار حساب می‌شود و پیام‌های اول تقریباً پنج بار.

فرمول ساده است:

هزینهٔ گفتگو = (مجموع توکن ورودی × نرخ ورودی) + (مجموع توکن خروجی × نرخ خروجی)

برای اینکه عدد واقعی دربیاید، یک گفتگوی متعارف پشتیبانی را فرض می‌گیریم: دستور سیستمی به‌همراه دو سه تکه از دانش‌نامه حدود ۱٬۵۰۰ توکن، هر پیام کاربر حدود ۶۰ توکن، هر پاسخ ربات حدود ۱۸۰ توکن، و پنج نوبت رفت‌وبرگشت. اگر همین را بشمارید:

نوبتتوکن ورودی همان نوبتتوکن خروجی
اول۱٬۵۶۰۱۸۰
دوم۱٬۸۰۰۱۸۰
سوم۲٬۰۴۰۱۸۰
چهارم۲٬۲۸۰۱۸۰
پنجم۲٬۵۲۰۱۸۰
جمع۱۰٬۲۰۰۹۰۰

حالا نرخ را بگذارید. برای مدل‌های کوچک و اقتصادی، نرخ رسمی سرویس در حال حاضر حدود ۰٫۱۵ دلار برای هر یک میلیون توکن ورودی و حدود ۰٫۶ دلار برای هر یک میلیون توکن خروجی است. فهرست دقیق و به‌روز مدل‌ها و نرخ‌هایشان را در فهرست مدل‌ها و قیمت‌ها ببینید، چون این اعداد هر چند ماه جابه‌جا می‌شوند.

IN_RATE  = 0.15   # dollars per 1M input tokens
OUT_RATE = 0.60   # dollars per 1M output tokens

def conversation_cost(system_tokens=1500, turns=5, user_tokens=60, reply_tokens=180):
    total_in, history = 0, 0
    for _ in range(turns):
        history += user_tokens
        total_in += system_tokens + history
        history += reply_tokens
    total_out = turns * reply_tokens
    return (total_in * IN_RATE + total_out * OUT_RATE) / 1_000_000

print(round(conversation_cost(), 5))   # 0.00207

یعنی حدود ۰٫۰۰۲ دلار برای هر گفتگوی کامل؛ دو دهم سنت. یک هشدار مهم اما لازم است: متن فارسی در توکنایزرهای امروزی گران‌تر از انگلیسی است و برای هر کلمه توکن بیشتری مصرف می‌کند. در تجربهٔ عملی، ضریب ۱٫۵ تا ۲ برابر برای محتوای فارسی محافظه‌کارانه و درست است. پس عدد واقعی‌تر برای یک چت‌بات فارسی حدود ۰٫۰۰۳ تا ۰٫۰۰۴ دلار در هر گفتگو است. اگر می‌خواهید مبنای شمارش توکن را دقیق‌تر بفهمید، توکن چیست و هزینهٔ API چطور حساب می‌شود همین را قدم‌به‌قدم باز کرده است.

در ماه چقدر می‌شود؟ جدول حجم مصرف

حالا همان عدد را در ترافیک واقعی ضرب کنید. ستون آخر همان برآورد با ضریب ۱٫۶ برای فارسی است:

گفتگو در ماهتوکن ورودیتوکن خروجیهزینهٔ پایه (دلار)برآورد فارسی (دلار)
۵۰۰۵٫۱ میلیون۰٫۴۵ میلیونحدود ۱٫۰حدود ۱٫۷
۲٬۰۰۰۲۰٫۴ میلیون۱٫۸ میلیونحدود ۴٫۱حدود ۶٫۶
۱۰٬۰۰۰۱۰۲ میلیون۹ میلیونحدود ۲۰٫۷حدود ۳۳
۵۰٬۰۰۰۵۱۰ میلیون۴۵ میلیونحدود ۱۰۳٫۵حدود ۱۶۶

اگر تا امروز فکر می‌کردید هزینهٔ مدل رقم بزرگی است، این جدول باید خیالتان را راحت کند: برای اکثر سایت‌های ایرانی که ماهی چند صد تا چند هزار گفتگو دارند، هزینهٔ توکن کوچک‌ترین جزء ماجراست. هزینهٔ اصلی جای دیگری است و بخش بعدی دقیقاً دربارهٔ همان است.

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

سرویس آماده چه چیزی می‌دهد که کد شما ندارد؟

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

  • زمان تا راه‌اندازی: یک بعدازظهر در برابر چند هفته. برای یک کمپین یا یک فروش فصلی، همین یک بند می‌تواند کل تصمیم را عوض کند.
  • پنل اپراتور و تحویل به انسان: وقتی ربات نمی‌داند، گفتگو باید به یک آدم واقعی برسد؛ با صف، وضعیت آنلاین، و تاریخچه. این بخش معمولاً از خود ربات پیچیده‌تر است.
  • چندکاناله بودن: ویجت سایت، تلگرام، واتساپ، اینستاگرام در یک صندوق مشترک.
  • گزارش و تحلیل: نرخ حل‌شدن، موضوعات پرتکرار، رضایت کاربر، زمان پاسخ.
  • تیم غیرفنی: اگر قرار است همکار پشتیبانی خودش پاسخ‌ها و دانش‌نامه را ویرایش کند، رابط آماده لازم دارید.

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

نقطهٔ سربه‌سر را چطور حساب کنیم؟

سه عدد لازم دارید و هیچ‌کدام تومانی نیست؛ خودتان با واحد خودتان پر می‌کنید:

  1. هزینهٔ یک‌بارهٔ ساخت (B): برای نسخه‌ای که واقعاً قابل استفاده باشد — پاسخ استریمی، دانش‌نامه، ثبت لاگ گفتگوها، مسیر تحویل به انسان و یک پنل حداقلی — تجربهٔ ما حدود ۲۰ تا ۴۰ ساعت کار توسعه‌دهنده است. آن را در نرخ ساعتی خودتان ضرب کنید.
  2. هزینهٔ ماهانهٔ نگهداری (M): حدود ۲ تا ۴ ساعت در ماه برای اصلاح پرامپت، به‌روزرسانی دانش‌نامه و رسیدگی به خطاها، به‌علاوهٔ هزینهٔ توکن از جدول بالا و هزینهٔ سرور.
  3. هزینهٔ ماهانهٔ سرویس آماده (S): همان صورت‌حسابی که پیشنهاد گرفته‌اید.
ماه‌های سربه‌سر = B / (S - M)

اگر S از M کمتر باشد، مخرج منفی می‌شود و معنایش روشن است: ساختن هیچ‌وقت خودش را برنمی‌گرداند و باید سرویس آماده بخرید. اگر عدد بین ۶ تا ۱۲ ماه درآمد، تصمیم مرزی است و به این بستگی دارد که آیا این چت‌بات قرار است بخشی از محصول خودتان شود یا فقط یک ویجت گوشهٔ سایت. اگر زیر ۶ ماه درآمد و توسعه‌دهنده دارید، ساختن معمولاً درست است — به‌ویژه چون همان زیرساخت بعداً برای جستجوی داخلی، خلاصه‌سازی تیکت و ابزارهای دیگر هم استفاده می‌شود.

چه زمانی ساختن واقعاً برنده است؟

فارغ از عدد، چند وضعیت هست که در آن‌ها سرویس آماده جواب نمی‌دهد:

  • ربات باید به داده‌های زندهٔ شما وصل شود: «سفارش من کجاست؟» بدون فراخوانی API انبار و حمل‌ونقل جواب ندارد. این همان جایی است که ابزاردهی به مدل لازم می‌شود.
  • داده حساس است: اگر متن گفتگوها نباید از زیرساخت خودتان خارج شود، کنترل کامل روی مسیر داده تنها با پیاده‌سازی خودتان ممکن است.
  • حجم بالاست: در مدل‌های قیمت‌گذاری «به ازای هر گفتگو»، رشد ترافیک صورت‌حساب را خطی بالا می‌برد؛ در مسیر توکنی هم بالا می‌رود اما از سطح بسیار پایین‌تری شروع می‌شود.
  • لحن و رفتار باید دقیقاً مال شما باشد: کنترل کامل پرامپت چیزی است که در پنل‌های آماده معمولاً محدود است. اصول نوشتن این دستور را در راهنمای پرامپت‌نویسی ببینید.

اگر ساختن را انتخاب کردید، این پنج کار را نادیده نگیرید

  1. سقف مصرف بگذارید. هم روی طول تاریخچه (مثلاً فقط شش پیام آخر)، هم روی تعداد درخواست هر بازدیدکننده در ساعت. بدون این دو، یک اسکریپت مزاحم می‌تواند اعتبار یک ماه را در یک شب تمام کند.
  2. کلید API را هرگز در جاوااسکریپت فرانت نگذارید. درخواست باید از سرور خودتان برود؛ کلید داخل مرورگر یعنی کلید عمومی.
  3. تاریخچه را خلاصه کنید. به‌جای فرستادن کل گفتگو، بعد از چند نوبت یک خلاصهٔ کوتاه جای پیام‌های قدیمی بنشانید. همین یک کار می‌تواند هزینهٔ ورودی گفتگوهای طولانی را نصف کند.
  4. پاسخ‌های تکراری را کش کنید. در پشتیبانی، بخش بزرگی از سؤال‌ها چند فرم ثابت دارند.
  5. مسیر خروج انسانی بگذارید. رباتی که نمی‌داند و اعتراف نمی‌کند، از نبودنش بدتر است.

قدم بعدی

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

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

اگر مسیر API را انتخاب کردید، برای شروع به یک کلید و کمی اعتبار نیاز دارید. درگاه هوش مصنوعی «نِت اَرز» یک آدرس base_url سازگار با OpenAI در صفحهٔ درگاه هوش مصنوعی در اختیارتان می‌گذارد و اعتبار را با پرداخت تومانی شارژ می‌کنید؛ در حال حاضر مدل‌های OpenAI فعال است و بقیهٔ ارائه‌دهندگان در حال اتصال‌اند. قیمت لحظه‌ای شارژ اعتبار را در صفحهٔ افزایش اعتبار وب‌سرویس ChatGPT می‌بینید و جزئیات پرداخت ریالی را در API هوش مصنوعی با پرداخت ریالی توضیح داده‌ایم. اگر هنوز بین اشتراک ماهانه و اعتبار API مردد هستید، تفاوت API و اشتراک این انتخاب را جداگانه باز کرده است. برای وب‌مسترها هم صفحهٔ راهکارهای وب‌مستران فهرست کوتاه‌تری از همین ابزارها دارد.

آموزش‌های کاربردی در گیسو

گیسو برند هوش مصنوعی نِت اَرز است، با همین حساب و همین اعتبار. این راهنماها قدم‌به‌قدم نشان می‌دهند همین کار را چطور با هوش مصنوعی انجام دهید.

پرسش‌های پرتکرار

هزینهٔ چت‌بات فارسی چقدر بیشتر از انگلیسی است؟

متن فارسی در توکنایزرهای رایج برای هر کلمه توکن بیشتری مصرف می‌کند و در عمل ضریب ۱٫۵ تا ۲ برابر برآورد محافظه‌کارانه‌ای است. یعنی اگر یک گفتگوی انگلیسی حدود دو دهم سنت هزینه دارد، همان گفتگو به فارسی حدود سه تا چهار دهم سنت درمی‌آید. برای بودجه‌بندی همیشه با عدد بالاتر حساب کنید.

چرا هزینهٔ ورودی از خروجی بیشتر درمی‌آید؟

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

برای یک سایت کوچک آیا اصلاً ارزش دارد خودم بسازم؟

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

آیا می‌توانم کلید API را مستقیم در کد فرانت‌اند بگذارم؟

خیر. هر چیزی که در مرورگر اجرا شود قابل خواندن است و کلید شما عملاً عمومی می‌شود. درخواست باید از سرور خودتان به مدل برود و کلید فقط در سمت سرور نگهداری شود؛ در کنارش سقف مصرف و محدودیت نرخ برای هر بازدیدکننده بگذارید.

محصولات مرتبط با این مقاله

مطالب مشابه

نظر خوانندگان

هنوز نظری ثبت نشده. اگر این مقاله پرسشتان را جواب داد یا جای چیزی در آن خالی ماند، همین‌جا بنویسید.

نظرتان را بنویسید

این مقاله چقدر به کارتان آمد؟ (اختیاری)

نظرها را پیش از انتشار بررسی می‌کنیم. نقد صریح مشکلی ندارد؛ تبلیغ و توهین منتشر نمی‌شود.