رفتن به محتوای اصلی
هوشوانا

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

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

مسئله: پرسش‌های تکراری و صف طولانی پشتیبانی

در بیشتر کسب‌وکارها، بخش بزرگی از پیام‌های پشتیبانی تکراری است: «سفارشم کی می‌رسد؟»، «شرایط مرجوعی چیست؟»، «چطور رمزم را عوض کنم؟». کارشناس پشتیبانی وقت زیادی صرف پاسخ دادن به همین پرسش‌ها می‌کند و مشتری هم باید ساعت‌ها، گاهی تا روز کاری بعد، منتظر بماند.

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

معماری پیشنهادی

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

  1. پایگاه دانش: پرسش‌های متداول، قوانین ارسال و مرجوعی، راهنمای محصولات و هر سندی که کارشناس‌ها به آن ارجاع می‌دهند را در پایگاه دانش هوشوانا بارگذاری کنید. متن‌ها به‌صورت خودکار تکه‌تکه و فهرست می‌شوند.
  2. بازیابی (RAG): هنگام هر پرسش، تکه‌های مرتبط پیدا می‌شوند و همراه پرسش به مدل می‌رسند. کافی است شناسه‌ی پایگاه دانش را در درخواست بفرستید یا آن را در قوانین کلید به کلید وصل کنید.
  3. مدل پاسخ‌گو: یک مدل سریع و ارزان بیشتر پرسش‌ها را از روی همین تکه‌ها جواب می‌دهد. در دستور سیستمی صریح بنویسید که فقط از متن داده‌شده پاسخ بدهد و اگر جواب را نمی‌داند، همین را بگوید.
  4. ارجاع به انسان: وقتی مدل مطمئن نیست، کاربر ناراضی است یا موضوع به پول و حساب کاربری مربوط می‌شود، گفت‌وگو را با خلاصه‌ای کوتاه به کارشناس بسپارید.

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

گام‌های راه‌اندازی

  1. در هوشوانا ثبت‌نام کنید، حساب را شارژ کنید و یک کلید API مخصوص چت‌بات بسازید.
  2. برای این کلید سقف هزینه‌ی ماهانه و فهرست مدل‌های مجاز تعیین کنید تا هزینه از کنترل خارج نشود.
  3. اسناد پشتیبانی را در یک پایگاه دانش بارگذاری کنید و با چند پرسش واقعی مشتری، کیفیت بازیابی را بسنجید.
  4. دستور سیستمی را بنویسید: لحن، زبان پاسخ، ذکر منبع و رفتار در صورت ندانستن جواب.
  5. چت‌بات را ابتدا برای بخشی از کاربران فعال کنید و لاگ درخواست‌ها را هر روز مرور کنید.
  6. پاسخ‌های اشتباه را با افزودن یا اصلاح سند در پایگاه دانش برطرف کنید، نه با طولانی کردن دستور سیستمی.

انتخاب مدل: ارزان برای بیشتر پاسخ‌ها، قوی برای موارد سخت

وقتی پاسخ از پیش در پایگاه دانش آمده، کار اصلی مدل خواندن چند پاراگراف و بازنویسی روان آن به فارسی است. برای این کار مدل‌های کوچک و سریع مانند openai/gpt-4o-mini یا google/gemini-3.5-flash-lite کاملاً کافی‌اند و هزینه‌ی هر پاسخ را بسیار پایین نگه می‌دارند. سرعت پاسخ هم برای تجربه‌ی کاربر در چت اهمیت زیادی دارد.

برای درصد کمی از گفت‌وگوها که چند مرحله استدلال لازم دارند، مثل مقایسه‌ی چند محصول، شکایت‌های پیچیده یا پرسش‌هایی که پاسخ آن‌ها از ترکیب چند سند به دست می‌آید، درخواست را به مدل قوی‌تری مانند anthropic/claude-sonnet-4.6 یا openai/gpt-5.5 بفرستید. چون همه‌ی مدل‌ها با یک کلید و یک API در دسترس‌اند، این جابه‌جایی فقط تغییر نام مدل در کد است.

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

هزینه‌ی هزار پاسخ پشتیبانی

فرض کنید هر پاسخ حدود ۸۰۰ توکن ورودی (دستور سیستمی، تکه‌های پایگاه دانش و پرسش کاربر) و ۲۵۰ توکن خروجی دارد. جدول زیر هزینه‌ی یک پاسخ و هزار پاسخ را با قیمت امروز هوشوانا نشان می‌دهد.

هزینه‌ی هزار پاسخ پشتیبانی
مدلنقشهزینه‌ی هر پاسخهزار پاسخ
GPT-4o Miniپاسخ‌های روزمره۸۰ تومان۷۹٬۷۰۰ تومان
Gemini 3.5 Flash Liteپاسخ‌های روزمره۲۵۵ تومان۲۵۵٬۲۰۰ تومان
Claude Sonnet 4.6موارد پیچیده۱٬۸۱۴ تومان۱٬۸۱۴٬۳۰۰ تومان
GPT-5.5موارد پیچیده۳٬۳۹۳ تومان۳٬۳۹۲٬۵۰۰ تومان

محاسبه بر اساس ۸۰۰ توکن ورودی و ۲۵۰ توکن خروجی برای هر مورد و با نرخ امروز انجام شده است. هزینه‌ی واقعی به طول متن‌ها بستگی دارد و در لاگ هر درخواست دقیق ثبت می‌شود.

نمونه‌ی کد

این نمونه با SDK رسمی OpenAI نوشته شده است. ابتدا مدل ارزان امتحان می‌شود و اگر پاسخ در پایگاه دانش نبود، یک بار مدل قوی‌تر و در نهایت کارشناس انسانی وارد عمل می‌شود. شناسه‌ی kb_123 را با شناسه‌ی پایگاه دانش خودتان عوض کنید.

support_bot.py
from openai import OpenAI
import os

client = OpenAI(base_url="https://hooshvana.ir/api/v1", api_key=os.environ["HOOSHVANA_API_KEY"])

SYSTEM = (
    "You are the support assistant of our shop. Answer in Persian, only from the provided context. "
    "If the answer is not in the context, reply exactly: NEED_HUMAN"
)

def answer(question: str, history: list[dict]) -> str:
    messages = [{"role": "system", "content": SYSTEM}, *history, {"role": "user", "content": question}]
    for model in ("openai/gpt-4o-mini", "anthropic/claude-sonnet-4.6"):
        resp = client.chat.completions.create(
            model=model,
            messages=messages,
            extra_body={"hooshvana": {"knowledge_base_ids": ["kb_123"]}},
        )
        text = resp.choices[0].message.content or ""
        if "NEED_HUMAN" not in text:
            return text
    return "پرسش شما را برای کارشناس پشتیبانی فرستادیم و به‌زودی پاسخ می‌دهیم."

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

چت‌بات از کجا اطلاعات کسب‌وکار من را می‌داند؟

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

چطور جلوی پاسخ‌های ساختگی را بگیرم؟

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

هزینه‌ی ماهانه‌ی چت‌بات را چطور کنترل کنم؟

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

آیا گفت‌وگوهای مشتریان برای آموزش مدل استفاده می‌شود؟

هوشوانا از داده‌های شما برای آموزش هیچ مدلی استفاده نمی‌کند. ثبت متن درخواست‌ها هم اختیاری است و می‌توانید آن را برای کلید چت‌بات خاموش نگه دارید.

چت‌بات پشتیبانی‌تان را همین امروز راه بیندازید