یکی از کاربردهای چت باتها برای خیلی کمپانی ها مثل e-commerce ها، پشتیبانی/customer support هست. این که یک چت بات ۲۴ ساعته جواب سوالها را بده. فکر کردم یک پروژه کاربردی و آموزشی درست کنم که هم واقعا بتونید استفاده کنید و هم ایده بگیرید.
این شد که یک ورژن خوب و قابل استفاده ساختم با کمک دستیارم Claude code. اسمش را هم Chirp گذاشتم. یک سیستم چتبات کامل که قابلیت RAG داره، یعنی میتونید دیتای خودتون رو بهش بدید تا بر اساس اونا جواب بده.
- اصلاً Chirp چیه؟ یه ویجت چت هوش مصنوعی که میتونید تو هر وبسایتی امبد (Embed) کنید. مثل اینترکام یا دریفت، ولی با این تفاوت که کنترلش دست خودتونه و هزینهاش هم بسیار کم میشه اگه با مدلهای اپن سورس اجراش کنید. ویدیوی دمو.
- تکنولوژیهای استفاده شده: • بکاِند: FastAPI • فرانتاِند: React + TypeScript • از Qdrant برای vector DB •و OpenAI هم که مغزش • راحت با Docker میاد بالا.
- چند تا نکته فنی:
۱. من RAG ساده پیاده کردم. ولی بسته به کاربرد میتونید (و بهتره) روش های پیشرفته تر استفاده کنید. نکته مهم: حتماً از SSE برای استریم کردن جوابها استفاده کنید تا کاربر منتظر نمونه.
۲. معماری در دنیای واقعی: • استفاده از Shadow DOM برای ویجت حیاتی هست تا استایلهای سایت مقصد روی چتبات اثر نذاره. • مدیریت خطا (Error Handling) مقدار قابل توجهی از کد رو تشکیل داد. توی محیط واقعی همهچی ممکنه خراب بشه: تایماوت شبکه، محدودیت نرخ OpenAI و...
۳. جادوی داکر: با Multi-stage build حجم ایمیج نهایی رو خیلی پایین آوردم، سعی کردم زیر ۵۰۰ مگابایت نگه دارم. فقط با یک docker-compose up کل سیستم (بکاِند، فرانت و دیتابیس) بالا میاد.
- چرا این پروژه رو ساختم؟ هدفم فقط ساخت یک ابزار نبود، میخواستم نشون بدم چطور RAG رو از سطح تئوری به تولید (Production) برسونید. کدها شاید همهجا تمیز نباشن، ولی "واقعی" هستن.
نکته خیلی مهم: توی فولدر docs تمام جزییات پیاده سازی از plan و API و PRD همه اونجاست. و اینکه ۱۳ تا branch درست کردم که هر مرحله را کامل نشون میده. حتما ببینید.
و اما نکته اخلاقی: دیدن ویدیوهای آموزشی رو تموم کنید و شروع کنید به ساختن. پروژه بسازید، خرابش کنید و دوباره درستش کنید. این بهترین راه یادگیریه.
کد کامل پروژه رو میتونید اینجا ببینید، استار بدید و روش تمرین کنید:
https://github.com/mallahyari/customer-support-agent
@DevTwitter | <Mehdi Allahyari/>
Post #11278
5.07K
- ❤ 21
- 👎 18
- 👍 3