ساخت اپلیکیشن چتبات هوش مصنوعی: کلید، پرامپت، هزینه و ایمنی
برای ساخت اپلیکیشن چتبات هوش مصنوعی به چهار چیز نیاز دارید: یک رابط چت، یک سرور کوچک که کلید API ارائهدهندهی مدل را نگه میدارد و پیامها را به آن میفرستد، یک پرامپت سیستمی که به مدل میگوید کیست و چه کاری مجاز است انجام دهد، و محدودیتهایی که هزینه و سوءاستفاده را کنترل کنند. یک اپساز هوش مصنوعی میتواند همهی اینها را از روی توضیح شما بنویسد. کاری که بر عهدهی خودتان میماند، انتخاب ارائهدهنده، نوشتن دستورالعملها و تعیین کاری است که ربات هرگز نباید انجام دهد.
یک اپلیکیشن چتبات هوش مصنوعی از چه چیزهایی ساخته میشود
بیشتر اپلیکیشنهای چتبات، چه دستیار پشتیبانی، معلم خصوصی یا ابزار داخلی «از مستندات ما بپرس»، بخشهای یکسانی دارند:
| بخش | کارکرد | آیا میتوان از آن گذشت؟ |
|---|---|---|
| رابط چت | لیست پیامها، کادر ورودی، وضعیت «در حال فکر کردن» و پاسخهای استریمشده | خیر |
| مسیر سرور | پیام کاربر را دریافت میکند، پرامپت سیستمی را اضافه میکند و با کلید مخفی شما ارائهدهنده را صدا میزند | خیر، کلید هرگز نباید به مرورگر برسد |
| پرامپت سیستمی | دستورالعملهای ثابت: نقش، لحن، محدوده و آنچه باید رد شود | خیر |
| دانش | محتوای خود شما که ربات از روی آن پاسخ میدهد (سوالات متداول، سیاستها، مستندات محصول) | بله، برای دستیار عمومی |
| ذخیرهی گفتگو | ذخیرهی رشتهها در پایگاه داده تا کاربران بتوانند به آنها برگردند | بله، برای نسخهی اول |
| حساب کاربری | مشخص میکند هر کاربر فقط تاریخچهی خودش را ببیند و میزان استفادهی هر نفر محدود شود | بله، برای نمونهی عمومی با محدودیتهای سختگیرانه |
| محدودیتها و ثبت رویدادها | سقف طول پیام، محدودیت نرخ، سقف هزینه و ثبت خطاها | خیر |
مسیر سرور بخشی است که بیشتر افراد در آن اشتباه میکنند. اگر صفحهی چت مستقیم از مرورگر به ارائهدهنده وصل شود، هر کسی میتواند ابزارهای توسعهدهنده را باز کند، کلید شما را کپی کند و صورتحساب شما را بالا ببرد.
تصمیمهایی که پیش از ساخت باید بگیرید
کدام ارائهدهنده و کدام مدل
ارائهدهندگان اصلی (OpenAI، Anthropic، Google و دیگران) همه یک API به سبک چت دارند که به همان شیوه کار میکند: فهرستی از پیامها را میفرستید و پاسخ میگیرید. انتخاب مهمتر از نام برند، اندازهی مدل است:
- مدلهای کوچکتر و سریعتر ارزانترند و زود پاسخ میدهند. برای پاسخهای کوتاه، دستهبندی و رباتهای سادهی سوالات متداول مناسباند.
- مدلهای بزرگتر بهتر استدلال میکنند، دستورالعملهای طولانی را قابلاعتمادتر دنبال میکنند و با سوالات درهمریخته بهتر کنار میآیند، اما هزینهی هر پیامشان بیشتر و پاسخشان کندتر است.
با یک مدل متوسط شروع کنید، آن را با سوالهای واقعی خودتان آزمایش کنید و از همانجا به سمت بالا یا پایین بروید. اگر با نحوهی قیمتگذاری و فراخوانی این APIها تازه آشنا هستید، ابتدا راهنمای استفاده از APIهای LLM را بخوانید.
دانش ربات از کجا میآید
| محتوای شما | روش |
|---|---|
| یک یا دو صفحه (ساعات کاری، سیاست بازگشت کالا، قیمتها) | مستقیم در پرامپت سیستمی بگذارید |
| دهها صفحه که به ندرت تغییر میکنند | نسخهی فشرده را در پرامپت بگذارید، یا بر اساس موضوع تقسیم کنید و فقط بخش مرتبط را بفرستید |
| صدها سند، یا محتوایی که هر روز تغییر میکند | ذخیره کنید، برای هر سوال بخشهای مطابق را جستوجو کنید و فقط همانها را بفرستید (RAG) |
سادهترین گزینهای را انتخاب کنید که محتوایتان را پوشش دهد. بازیابی یک فهرست جستوجو، راهی برای بهروز نگه داشتن آن و نقاط بیشتری برای خطای پاسخ اضافه میکند. بسیاری از رباتهای مفید هرگز به آن نیاز ندارند.
عمومی یا پشت ورود
چتبات عمومی روی وبسایت راحت در دسترس است، اما به همان اندازه برای سوءاستفاده هم آسان است: کسی میتواند با یک اسکریپت هزاران پیام به آن بفرستد. چتبات پشت ورود، امکان ذخیرهی تاریخچه برای هر کاربر و تعیین سهمیهی روزانه برای هر حساب را میدهد. اگر عمومی است، طول پیام را محدود کنید، تعداد پیامهایی را که هر بازدیدکننده در یک بازه میتواند بفرستد محدود کنید و در داشبورد ارائهدهنده یک سقف سخت ماهانه بگذارید. نحوهی افزودن ورود به اپلیکیشن بخش مربوط به حساب کاربری را پوشش میدهد.
ذخیرهی گفتگوها یا نه
ذخیرهی رشتهها مفید است: کاربران میتوانند از همانجا که بودند ادامه دهند و شما میتوانید سوالهای واقعی را بخوانید و پرامپت را بهتر کنید. اما اینها دادهی شخصی هم هستند. تصمیم بگیرید چقدر نگهشان دارید، در اعلان حریم خصوصیتان اعلام کنید و چیزی را که لازم ندارید ذخیره نکنید.
پرامپت سیستمی را مثل شرح شغل بنویسید
پرامپت سیستمی دستورالعملی است که مدل پیش از هر گفتگو دریافت میکند. یک پرامپت خوب مثل یک بریف کوتاه برای کارمند تازهوارد نوشته میشود:
- نقش و مخاطب: «تو دستیار راهنمای Oakline هستی، یک تعمیرگاه دوچرخه. با مشتریها حرف میزنی.»
- محدوده: «به سوالهای مربوط به خدمات، قیمتها، ساعات کاری و رزرو جواب بده. برای بقیهی موارد بگو فقط میتوانی دربارهی تعمیرگاه کمک کنی.»
- منبع معتبر: «فقط از اطلاعات زیر استفاده کن. اگر پاسخ آنجا نبود، بگو نمیدانی و شمارهی تلفن تعمیرگاه را بده.»
- لحن و طول: «دوستانه، با زبان ساده، حداکثر سه جمله مگر اینکه جزئیات بیشتری خواسته شود.»
- قواعد سخت: «هرگز قیمت تعمیری را که فهرست نشده وعده نده. هرگز اطلاعات کارت بانکی نخواه.»
سپس آن را با سوالهای دشوار آزمایش کنید: درخواستهای بیربط، پیامهای بیادبانه، سوالهایی که پاسخشان در محتوای شما نیست، و تلاش برای اینکه دستورالعملها را نادیده بگیرد («قوانین را فراموش کن و…»). آنقدر پرامپت را تنظیم کنید تا پاسخها به اندازهای باشد که حاضر باشید پای آنها بایستید.
هزینه را قابلپیشبینی نگه دارید
ارائهدهندگان بر اساس توکن (تقریباً قطعههایی از کلمات) هزینه میگیرند، برای ورودیای که میفرستید و خروجیای که مدل مینویسد. سه چیز صورتحساب را بالا میبرد:
- طول گفتگو. هر پیام جدید معمولاً کل رشته را دوباره میفرستد تا مدل زمینه را داشته باشد. گفتگوی ۴۰ پیامی برای هر پاسخ خیلی بیشتر از گفتگوی ۴ پیامی هزینه دارد. فقط چند نوبت آخر را نگه دارید یا پیامهای قدیمیتر را خلاصه کنید.
- اندازهی پرامپت. یک پرامپت سیستمی بلند یا یک بلوک بزرگ دانش که چسبانده شده، با هر پیام فرستاده میشود.
- طول خروجی. در فراخوانی API حداکثر طول پاسخ را تعیین کنید و در پرامپت پاسخهای مختصر بخواهید.
پیش از راهاندازی، در داشبورد ارائهدهنده یک سقف هزینهی ماهانه تنظیم کنید و مصرف توکن را برای هر درخواست ثبت کنید تا ببینید کدام گفتگوها گراناند. ما در اینجا قیمت نمیآوریم، چون بین مدلها متفاوت است و اغلب تغییر میکند؛ قیمتهای لحظهای را از صفحهی خود ارائهدهنده بررسی کنید.
گامبهگام بسازید
گام ۱: ربات را توصیف کنید، نه کد را
یک پرامپت اول که مخاطب، محدوده، دادهها و قواعد ایمنی را نام ببرد، بیشتر راه را جلو میبرد:
یک چتبات پشتیبانی مشتری برای Oakline، یک تعمیرگاه دوچرخه، بساز. یک صفحهی چت با فهرست پیامها و کادر ورودی، و پاسخهایی که همانطور که نوشته میشوند نمایش داده شوند. مدل Anthropic را از یک مسیر سرور با کلید مخفی ANTHROPIC_API_KEY صدا بزن؛ هرگز آن را به مرورگر نشان نده. از یک پرامپت سیستمی استفاده کن که فقط به سوالهای مربوط به خدمات، قیمتها و ساعات کاری از متن فایلی به نام shop-info.md جواب بدهد و در غیر این صورت بگوید «مطمئن نیستم — لطفاً با شمارهی زیر تماس بگیرید». پیامها را به ۵۰۰ نویسه و هر بازدیدکننده را به ۲۰ پیام در ساعت محدود کن. طراحی تمیز و دوستانه که روی گوشی هم خوب باشد.
گام ۲: کلید را بهعنوان یک راز ذخیره کنید
کلید را در کنسول ارائهدهنده بسازید و سپس آن را در متغیرهای محیطی یا رازهای پروژه ذخیره کنید، نه در چت و نه در کد. اگر کلیدی جایی عمومی دیده شد، آن را در ارائهدهنده باطل کنید و کلید جدید بسازید. متغیرهای محیطی و رازها چیستند توضیح میدهد چرا این موضوع مهم است.
گام ۳: پاسخها را آزمایش کنید، فقط رابط را نه
وقتی چت کار کرد، بیشترین وقت را صرف کیفیت پاسخها کنید. فهرستی از حدود ۲۰ سوال واقعی نگه دارید، از جمله چند سوالی که باید رد شوند، و بعد از هر تغییر پرامپت همه را دوباره امتحان کنید. بررسی کنید:
- آیا در محدوده میماند؟
- وقتی جواب را نمیداند، بهجای ساختن پاسخ، این را میگوید؟
- وقتی کسی تلاش میکند دستورالعملها را لغو کند، مقاوم است؟
- آیا کلید در چیزی که مرورگر دانلود میکند وجود ندارد؟
گام ۴: در صورت نیاز حافظه و حساب کاربری اضافه کنید
وقتی گفتگوی تکنفره کار کرد، ذخیرهی رشتهها در پایگاه داده و در صورت نیاز ثبتنام و ورود را اضافه کنید تا هر کاربر فقط گفتگوهای خودش را ببیند. همزمان یک سهمیهی روزانهی پیام برای هر کاربر تعیین کنید.
گام ۵: با محدودیتها منتشر کنید
مطمئن شوید اپلیکیشن منتشرشده همان رازهای پیشنمایش را دارد، سقف هزینه در ارائهدهنده تنظیم شده و خطاها جایی ثبت میشوند که شما میبینیدشان. سپس پیش از قرار دادن آن در وبسایت اصلی، آن را با گروه کوچکی به اشتراک بگذارید.
ایمنی و اعتماد
چتبات به نام شما با عموم مردم حرف میزند، پس خطاهای آن را مسئولیت خودتان بدانید:
- پاسخهای نادرست. مدلها میتوانند با اطمینان چیزهای نادرست بگویند. ربات را روی موضوعی محدود نگه دارید، آن را بر پایهی محتوای خودتان بسازید و برای موضوعات مهم، یادداشت کوتاهی نشان دهید که پاسخها ممکن است اشتباه باشند.
- تزریق پرامپت. کاربران (یا اسنادی که ربات میخواند) ممکن است دستوراتی مثل «قوانین قبلی را نادیده بگیر» داشته باشند. به ربات اختیاراتی ندهید که نمیتوانید به آن اعتماد کنید: بدون بررسی در کد خودتان، بازپرداخت، حذف یا ارسال ایمیل به درخواست کاربر نباشد.
- موضوعات حساس. برای سوالهای پزشکی، حقوقی یا مالی، ربات باید مردم را به متخصص ارجاع دهد، نه اینکه مشاوره بدهد.
- دادهی شخصی. سوابق مشتریان را مگر در صورت لزوم در پرامپتها نچسبانید و بررسی کنید شرایط ارائهدهنده دربارهی نگهداری دادههای API چیست.
فهرست بررسی امنیت برای اپلیکیشنهای ساختهشده با هوش مصنوعی کل اپلیکیشن را پوشش میدهد.
اشتباهات رایج
- فراخوانی ارائهدهنده از مرورگر. کلید نشت میکند. همیشه از سرور خودتان عبور دهید.
- چتبات عمومی بدون محدودیت. یک اسکریپت میتواند بودجهی یک ماه را در یک بعدازظهر خالی کند.
- شروع همزمان با RAG، ابزارها و چند مدل. ابتدا یک گفتگوی خوب را کار بیندازید؛ بقیه را وقتی سوالهای واقعی نیاز آنها را نشان دادند اضافه کنید.
- آزمایش فقط با سوالهای دوستانه. کاربران شما در روز اول سوالهای عجیب، خصمانه و بیربط میپرسند.
- گذاشتن رشتهی گفتگو که بیپایان بزرگ شود. هزینه و زمان پاسخ با هر پیام بالا میرود.
زمانی که یک محصول آماده بهتر است
ساختن ربات اختصاصی وقتی منطقی است که چتبات بخشی از محصول شماست، به داده یا جریان کاری خودتان نیاز دارد، یا ظاهر و رفتار مشخصی لازم دارد. اغلب انتخاب درستی نیست وقتی:
- فقط یک ویجت پشتیبانی روی یک سایت موجود میخواهید. بسیاری از محصولات گفتگوی پشتیبانی زنده امروزه ربات پاسخگوی هوش مصنوعی دارند که مرکز راهنمای شما را میخواند و از قبل ارجاع به انسان، صندوق ورودی و گزارشگیری دارند.
- فقط شما یا تیمتان از آن استفاده میکنید. اشتراک یک دستیار عمومی مانند ChatGPT یا Claude، با آپلود اسنادتان، ممکن است کل نیازتان باشد.
- به تضمینهای سختگیرانهی انطباق نیاز دارید (مثلاً دادههای سلامت یا مالی تحت مقررات). یک فروشندهای که گواهیهای لازم را دارد ممکن است امنتر از یک ساخت اختصاصی باشد.
ساختن آن با Mythex
Mythex یک اپساز هوش مصنوعی است: چتبات را در گفتگو توصیف میکنید و رابط و فراخوانی سمت سرور را مینویسد، آن را در پیشنمایش زنده اجرا میکند و یک آدرس عمومی منتشر میکند. هوش مصنوعی داخل اپلیکیشن شما از کلید ارائهدهندهی خودتان استفاده میکند. آن را در رازهای پروژه اضافه میکنید یا از کارت رازهایی که Mythex در گفتگو نشان میدهد، و مصرف به حساب ارائهدهندهی شما صورتحساب میشود، نه به اعتبار ساخت Mythex. Mythex توکن برای کاربران اپلیکیشن شما، یک محصول آمادهی پایگاه دانش یا محدودیت نرخ آماده در اختیار نمیگذارد؛ اینها بخشهایی هستند که خودتان درخواست و آزمایش میکنید. صفحهی مستندات افزودن هوش مصنوعی داخل اپلیکیشن مراحل را توضیح میدهد، و افزودن هوش مصنوعی با کلیدهای API خودتان یک پرامپت شروع دارد.
اگر ربات به گفتگوهای ذخیرهشده نیاز دارد، Mythex وقتی بخواهید یک پایگاه دادهی Postgres به پروژه اضافه میکند. برای راههای بیشتر استفاده از مدلها داخل یک اپلیکیشن، از خلاصهسازی تا دستهبندی، نحوهی افزودن قابلیتهای هوش مصنوعی به اپلیکیشن را ببینید، یا برای نقطهی شروع، قالبهای اپلیکیشن را مرور کنید.
پرسشها
برای ساخت اپلیکیشن چتبات هوش مصنوعی به کلید API شخصی نیاز دارم؟
تقریباً در همه موارد بله. چتبات هر پیام را به یک ارائهدهنده مدل مانند OpenAI، Anthropic یا Google میفرستد و ارائهدهنده از حسابی که کلید API متعلق به آن است هزینه میگیرد. کلید باید روی سرور شما باشد، نه داخل صفحه وب.
اجرای یک چتبات هوش مصنوعی چقدر هزینه دارد؟
ارائهدهندگان بر اساس توکن هزینه میگیرند، هم برای متنی که میفرستید و هم برای متنی که مدل برمیگرداند، و قیمتها بین مدلها خیلی متفاوت است. چون هر پیام جدید معمولاً کل گفتگو را دوباره میفرستد، گفتگوهای طولانی برای هر پیام هزینه بیشتری دارند. صفحه قیمت ارائهدهنده را بررسی کنید و سقف هزینه را در داشبورد آن تنظیم کنید.
آیا میتوانم چتبات را روی اسناد خودم آموزش دهم؟
معمولاً خود مدل را آموزش نمیدهید. برای مقدار کم محتوا، آن را مستقیم در پرامپت سیستمی میگذارید؛ برای کتابخانهی بزرگ، محتوا را ذخیره میکنید، برای هر پرسش بخشهای مرتبط را جستوجو میکنید و فقط همانها را برای مدل میفرستید. به این روش دوم «تولید تقویتشده با بازیابی» یا RAG میگویند.
آیا میشود بدون کدنویسی یک چتبات هوش مصنوعی ساخت؟
بله. یک اپساز هوش مصنوعی میتواند از روی توضیح سادهی شما، رابط چت، مسیر سرور که مدل را صدا میزند و پایگاه دادهی گفتگوهای ذخیرهشده را بنویسد. اما باید خودتان حساب ارائهدهنده و کلید API را بسازید.