با Discord + Vercel یک Chatbot رایگان AI درست کنید! 🚀

وای ، مدتی است که من ارسال کردم! من روی انواع ابزارها ، پروژه های جانبی سرگرم کننده و چارچوب ها کار کرده ام. اما اینجا هستم!
بنابراین ، بیایید شروع کنیم.
ما چه می سازیم؟
در این آموزش ، ما یک چت بابات کاملاً رایگان را که می توانید از طریق Discord استفاده کنید ، درست خواهیم کرد. منظورم کاملاً رایگان است کاملاً رایگان! این هزینه شما خواهد بود هیچ برای ایجاد و میزبانی ربات یا تولید پیام چت AI.
یادداشت: این آموزش فرض می کند که شما یک هستید توسعه دهندهبشر اگر شما یک برنامه نویس نیستید ، احتمالاً می توانید آن را انجام دهید ، اما ممکن است چالش برانگیز باشد.
این آموزش همچنین فرض می کند که شما Node.js و NPM را روی دستگاه خود نصب کرده اید. من بسیار توصیه می کنم که BON را نیز نصب کنید ، اگرچه لازم نیست.
تمام نمونه های فرمان ترمینال برای لینوکس است.
اختلاف نظر چیست؟
Discord یک بستر محبوب برای ارتباطات است. این ترکیب متن ، صدا و گپ ویدیویی را در سرورهای قابل تنظیم یا پیام های مستقیم ترکیب می کند. این برنامه به طور گسترده توسط گیمرها ، جوامع و توسعه دهندگان برای اتصال و همکاری در زمان واقعی استفاده می شود. اگر از Slack یا Signal استفاده کرده اید ، باید بسیار آشنا باشد.
نکته جالب در مورد Discord پورتال Discord Developer است که به توسعه دهندگان اجازه می دهد تا برنامه های Discord ایجاد کنند. یک برنامه مانند یک کاربر Discord است (به جز یک ربات) که می تواند کارهای مفیدی را برای شما در Discord انجام دهد. به عنوان مثال ، این می تواند جامعه شما را با بازی های روزانه درگیر نگه دارد ، یا می تواند هر بار که یک پست جدید ایجاد می کنید در یک کانال Discord قرار دهید.
اگر هنوز حساب Discord ندارید ، باید یکی را ایجاد کنید.
چرا این آموزش خاص است
معمولاً وقتی یک ربات Discord ایجاد می کنید ، باید آن را بر روی سرور اجرا کنید که هزینه شما را هزینه کند. یا البته ، می توانید آن را روی لپ تاپ خود اجرا کنید ، که بسیار آزار دهنده است. هیچ کس نمی خواهد یک دسته از خدمات ربات ها همیشه روی رایانه شخصی خود کار کنند. به علاوه ، هنگامی که اینترنت را از دست می دهید ، ربات کار را متوقف می کند.
در این آموزش ، ما یک ربات “بدون سرور” را به Vercel مستقر می کنیم. Vercel فقط در صورت نیاز به ربات شما ، عملکردی بدون سرور را می چرخاند ، و رایانه شما را تمیز نگه می دارد و محیطی پایدار را برای ربات شما فراهم می کند.
البته بزرگترین فایده: Vercel کاملاً رایگان است!
برای استفاده از Vercel به یک حساب رایگان نیاز خواهید داشت. می توانید در Vercel.com ثبت نام کنید.
Google AI
این ربات از Google AI API برای تولید پیام چت AI استفاده می کند.
من قصد دارم فرض کنم که بیشتر شما یک حساب Google دارید. اگر این کار را نکنید ، باید یکی را در Google.com درست کنید
شما ممکن است از مدل های Google Gemini شنیده باشید که بزرگترین آنها نیستند ، اما مطمئناً بسیار ارزان هستند. مدل های آزمایشی گوگل کمی دورتر از ارزان می روند – آنها رایگان هستند! ما استفاده خواهیم کرد gemini-2.0-flash-exp
امروز مدل
در این مرحله ، ایده خوبی است که استودیوی Google AI را باز کنید ، زیرا ما در یک دقیقه به آن احتیاج داریم.
استودیوی Google AI را باز کنید
ایجاد یک ربات Discord
حالا ، بیایید کار کنیم! ابتدا باید یک برنامه Discord ایجاد کنیم و اعتبار برنامه را بدست آوریم. از آنجا که یک ربات بسیار شبیه به یک کاربر Discord است ، برای استفاده از Discord دقیقاً مانند کاربران باید وارد سیستم (با استفاده از توکن ربات) شود!
ابتدا پورتال توسعه دهنده Discord را باز کنید. اطمینان حاصل کنید که یک حساب Discord دارید و به Discord وارد شده اید.
پورتال توسعه دهنده Discord را باز کنید
اکنون ، در سمت راست بالای صفحه ، روی کلیک کنید New Application
دکمه:
نام برنامه را وارد کنید و بی فکر موافقت کنید … منظورم این است که ، بخوانید ، سپس با آن موافقت کنید ، با توجه به خدمات خدمات و توسعه دهندگان Word Developer Word ،.
بعداً می توانید نام را تغییر دهید ، بنابراین هنوز نگران فکر کردن به نام عالی نباشید.
در صورت تمایل می توانید برخی از اطلاعات کلی در مورد برنامه خود را پر کنید.
در مرحله بعد ، برای آزمایش آن باید ربات را به Discord دعوت کنیم. من توصیه می کنم که ربات را به سرور مورد نظر خود یا به سرور آزمایش بتا مانند من دعوت کنید (اگر می خواهید به آن بپیوندید ، از من در نظرات بپرسید).
برای به دست آوردن یک پیوند دعوت ربات ، به Installation
در نوار کناری پورتال توسعه دهنده و URL دعوت شده با Discord-Provide را کپی کنید.
در حال حاضر ، همچنین ایده خوبی است چک کردن جعبه ای که می گوید User install
، از آنجا که ما فقط می خواهیم این ربات در حال حاضر در سرورها (اصناف) در دسترس باشد.
پیوند دعوت را در مرورگر خود بچسبانید و ربات را به سرور مورد نظر خود اضافه کنید. بله
در حال حاضر ، ربات کاری نخواهد کرد. ما به زودی آن را برطرف خواهیم کرد.
ایجاد یک پروژه جدایی جدید
برای انجام روند ایجاد ربات a بخش آسانتر ، ما از یک شگفت انگیز ابزاری به نام Discraft (من وقتی ابزار را ساختم کمی مغرضانه هستم).
CRESAFT چارچوبی برای ربات های Discord است که به شما امکان می دهد به راحتی JavaScript ، TypeScript و در مورد ما ، ربات های Discord بدون سرور ایجاد کنید. این دستگاه تمام کد BoilerPlate را کنترل می کند ، توسعه را ساده می کند ، اجرای ساخت و ساز را آسان می کند و ربات شما را نیز ارائه می دهد.
⭐ گیتوب را نادیده بگیرید
برای استفاده از Ciscraft ، بیایید آن را در سطح جهانی با استفاده از NPM (یا مدیر بسته بندی دلخواه خود) نصب کنیم:
npm install --global discraft
حال ، بیایید یک پروژه جدید ایجاد کنیم. یک دایرکتوری برای پروژه ربات خود ایجاد کرده و در داخل آن حرکت کنید.
mkdir my-vercel-bot && cd my-vercel-bot
یک پروژه جدایی جدید را آغاز کنید:
discraft init
از نسخه 1.6.6
، سه گزینه الگوی وجود دارد. شما باید الگوی Vercel را انتخاب کنید و Current Directory
برای فهرست پروژه هنگامی که Ciscraft سؤالات دیگری را از شما می پرسد ، انتخاب پیش فرض معمولاً خوب است.
اگر وابستگی ها را با NPM نصب کنید ، مدتی طول می کشد. در واقع ، ممکن است آنقدر طول بکشد که بتوانید پست من را در مورد آن بخوانید bun install
، که 29x سریعتر از آن است npm install
:
خوب ، وابستگی ها نصب می شوند. بیایید ادامه دهیم
متغیرهای محیط
حال ما باید یک دسته از رازها را جمع کنیم! دو هدف اصلی برای متغیرهای محیط وجود دارد:
- به یک مقدار در همه جای پروژه خود دسترسی پیدا کنید و بعداً آن را به راحتی تغییر دهید
- اسرار ، مانند کلیدهای API ، در یک
.env
پرونده به گونه ای که آنها در کد شما نباشند. سپس می توانید کد خود را بدون نگرانی به اشتراک بگذارید!
شما باید پرونده ای مانند آن را ببینید .env.example
در پروژه شما آن را کپی کرده و به آن تغییر نام دهید .env
بشر می توانید حذف کنید .env.example
اگر می خواهید پرونده.
اکنون ، یک دسته از مقادیر خالی را در خود خواهید دید .env
پرونده:
# You will need to add these secrets to the 'Environment Variables' section of your Vercel project
# https://vercel.com/docs/projects/environment-variables
# From `General Information > Public Key` | https://discord.com/developers/applications
DISCORD_PUBLIC_KEY=''
# From `General Information > App ID` | https://discord.com/developers/applications
DISCORD_APP_ID=''
# From `Bot > Token` | https://discord.com/developers/applications
DISCORD_TOKEN=''
# From `Get API Key` | https://aistudio.google.com/app/apikey
GOOGLE_AI_API_KEY=''
# From the Google model list
GOOGLE_AI_MODEL='gemini-2.0-flash-exp'
خطوطی که از آنها شروع می شود #
نظرات هستند خطوط دیگر مقادیر هستند که اسرار ما باید جمع آوری کنیم. وقتی یک راز پیدا کردید ، آن را بین نقل قول ها در .env
ارزش ، مانند این:
# Before
VALUE=''
# After
VALUE='Yay! I am no longer empty.'
کلید Discord Public ، App ID و Bot Token همه را می توان در پورتال توسعه دهنده Discord یافت. گاهی اوقات ، ممکن است برای دیدن آن مجدداً نشانه را مجدداً تنظیم کنید. این اشکالی ندارد ، اما هنگام انجام این کار مراقب باشید ، زیرا کدی که از توکن فعلی استفاده می کند (قبل از تنظیم مجدد آن) هنگام تنظیم مجدد آن کار را متوقف می کند!
کلید API Google AI را می توان در استودیوی هوش مصنوعی ایجاد کرد که قبلاً باز کردیم. اگر هنوز استودیوی AI را باز کرده اید ، به آن بروید و کلیک کنید Get API Key
در نوار کناری چپ Create API Key
بشر اگر آن را بستید ، دوباره آن را باز کنید و همین کار را انجام دهید.
پس از تولید کلید خود ، آن را کپی کرده و آن را در آن قرار دهید .env
پرونده
خوب ، تاکنون ، شما .env
پرونده باید داشته باشد بدون مقادیر خالیبشر باید مانند آن در این تصویر باشد ، با رازهای شما:
بررسی اجمالی پروژه
اگر هنوز تعجب می کنید که در جهان چه اتفاقی افتاده است وقتی ما فرار کردیم init
فرمان ، نگران نباشید! با فرض اینکه همه چیز را به درستی اجرا کرده اید ، باید چیزی شبیه به این را در پروژه خود ببینید:
اگر این اولین بار است که از NPM استفاده می کنید ، روی آن کلیک نکنید node_modules
پوشه این شما را وحشت می کند و احتمالاً باعث می شود که هرگز بخواهید دوباره از NPM استفاده کنید
در حال حاضر ، روی commands
پوشه شما می توانید آن را مشاهده کنید chat.ts
وت ping.ts
، که دستوراتی است که ربات ما هنگام استقرار آن انجام می دهیم. احساس راحتی کنید که به درون آنها نگاه کنید ، اما هنوز چیزی را تغییر ندهید.
بقیه پرونده ها بهتر است در حال حاضر به تنهایی ترک کنند. هنگام اعزام به Vercel ، Necraft قصد دارد کارهای جادویی را برای آنها انجام دهد. اگر شما واقعاً باید بدانید ، آن را در GitHub بررسی کنید یا در نظرات از من سؤال کنید.
اعزام به Vercel
در واقع چند روش برای استقرار ربات به Vercel وجود دارد ، مانند یک ادغام repo github ، اما ساده ترین پرونده ما استفاده از Vercel CLI است ، زیرا Councraft قبلاً بخشی از آن را برای ما تنظیم کرده است.
ابتدا باید Vercel CLI را در سطح جهانی با استفاده از NPM نصب کنیم:
npm install --global vercel
اکنون باید در ترمینال خود وارد حساب Vercel خود شوید. دستور ورود به سیستم را برای انجام این کار اجرا کنید:
vercel login
با این وجود به صورت آنلاین وارد حساب Vercel خود می شوید و CLI به شما می گوید چگونه وارد شوید.
خوب حالا …
وقت آن است که کد BOT را به Vercel مستقر کنیم! ما می توانیم این کار را فقط با دو دستور ساده انجام دهیم:
npm run build
npm run deploy
این دستورات کد BOT را می سازند و مستقر می کنند. این است بسیار مهم که شما پرش نمی کنید build
مرحله هنگامی که به روزرسانی کردید ، یا به روزرسانی های شما اعمال نمی شود! شما باید هر بار آن را اجرا کنید.
در deploy
فرمان احتمالاً مانند شما س questions الاتی خواهد پرسید. Configure my-vercel-bot?
با Link to an existing project?
، و بیشتر پیش فرض ها معمولاً معقول هستند. من توصیه می کنم نه پیوند به یک پروژه موجود اما ایجاد یک برنامه جدید به جای آن ، و استفاده از انتخاب پیش فرض برای بقیه.
ما تقریباً آنجا هستیم ، اما هنوز کاملاً انجام نشده است!
آخرین مراحل پیکربندی
فقط چند کار در آخرین لحظه وجود دارد که باید در Vercel و Discord انجام دهیم تا همه چیز را اجرا کند.
پیکربندی Vercel
به یاد داشته باشید .env
پرونده ای با رازهای ما که قبلاً جمع آوری کرده ایم؟ خوب ، وقت آن است که آنها را در Vercel قرار دهیم.
ابتدا به Vercel.com بروید ، سپس روی پروژه خود در لیست کلیک کنید (اگر چندین نفر دارید). شما فقط در صورت اجرای آن خواهید دید deploy
فرمان زودتر اگر این کار را نکردید ، اجرا کنید build
وت deploy
دستورات اکنون (با فرض اینکه پیکربندی را انجام داده اید) ، سپس دوباره صفحه را بارگیری کنید.
اکنون برگه تنظیمات را برای پروژه خود پیدا کنید. روی آن کلیک کنید و به آن بروید Environment variables
در نوار کناری.
هنگامی که در آنجا هستید ، متغیر را از .env
وارد پروژه خود شوید و ذخیره آن را فراموش نکنید! باید مانند تصویر زیر باشد:
پیکربندی برنامه Discord
این مهمترین تغییر در یک ربات بدون سرور است. از این مرحله پرش نکنید!
ابتدا URL استقرار Vercel خود را پیدا کنید. این باید در داشبورد پروژه Vercel شما باشد. به عنوان مثال ، https://my-vercel-bot.vercel.app/. در مرورگر خود از این URL دیدن کنید. اگر همه چیز خوب باشد ، صفحه ای مانند این را مشاهده خواهید کرد:
توجه کنید The API route is: /api
پیام این مهم است این بدان معنی است که URL تعامل برای ربات شما است (deployment_url)/api
بشر بنابراین ، در مورد ما:
# Deployment URL:
https://my-vercel-bot.vercel.app/
# Interactions URL:
https://my-vercel-bot.vercel.app/api
بعد ، ربات خود را در پورتال Discord Developer بروید. حرکت به General Information
بخش در نوار کناری ، سپس به پایین بروید تا ببینید Interactions Endpoint URL
بشر URL تعامل را در جعبه بچسبانید ، سپس تغییرات خود را ذخیره کنید.
اتمام
برای اعمال تغییرات خود ، اجرا کنید build
وت deploy
دوباره دستورات
npm run build
npm run deploy
با استفاده از ربات
استفاده از ربات جدید شما بسیار ساده است! به Discord بروید و سرور را که در آن ربات را اضافه کرده اید پیدا کنید. ممکن است شما نیاز به بارگذاری مجدد صفحه داشته باشید.
تایپ کردن /
در کادر پیام Discord باعث می شود لیستی از دستورات برنامه نمایش داده شود. می توانید تایپ کنید تا آنها را فیلتر کنید. در این حالت ، ما تایپ خواهیم کرد /ping
بشر اگر نتایج زیادی وجود دارد ، صحیح را انتخاب کنید (یکی از ربات خود).
مطبوعات enter
برای انتخاب دستور. مطبوعات enter
دوباره برای اجرای آن
اگر همه چیز در حال کار باشد ، پاسخی خواهید دید: Pong from Vercel!
اگر چنین است ، بلند شوید و یک رقص شاد انجام دهید!
در غیر این صورت ، در مورد مشکلات خود در نظرات از من سؤال کنید. حتماً بررسی کنید که تمام متغیرهای محیط را تنظیم کرده و به درستی در Vercel و Discord پیکربندی کنید.
برای امتحان کردن می توانید روند کار را تکرار کنید /chat
فرمان!
🎉 شما این کار را کردید! 🎉
تبریک می گویم! شما فقط یک ربات Discord بدون سرور مستقر کرده اید!
من فکر می کنم در آینده آموزش های بیشتری در مورد شخصی سازی دستورات BOT و موارد دیگر می نویسم. در حال حاضر ، در اینجا اسناد وجود دارد:
https://github.com/the-best-codes/discraft-js#readme
(می دانم ، شما بچه ها از اسناد متنفر هستید 🙄)
ملاحظات بدون سرور
ممکن است تعجب کنید که چگونه به رویدادها پاسخ دهید یا وضعیت BOT را با ربات بدون سرور خود به صورت آنلاین تنظیم کنید. پاسخ: شما این کار را نمی کنید.
با توجه به ماهیت توابع بدون سرور ، شما نمی توانید یک اتصال ثابت WebSocket را به API Discord ، که برای دریافت و پردازش رویدادها از ربات Discord خود نیاز دارد ، نگه دارید.
اگر قبلاً نمی دانید ، واقعه در API Discord چیزی شبیه به:
- پینگ (
@here
با@everyone
با@Gloriously Happy Egg
، و غیره) ، - به روزرسانی داده (نام سرور تغییر می کند ، پیام ویرایش می شود ، و غیره) ،
- و بسیاری از موارد دیگر که می توانید در مستندات Discord که همه در اینجا جای نمی گیرند ، بخوانید
در تعامل یک عمل ناشی از کاربر است ، مانند یک برنامه (/
) فرمان.
Discord از URL تعامل سفارشی پشتیبانی می کند اما یک URL رویداد سفارشی نیست زیرا یک URL رویدادهای سفارشی به طرز وحشیانه ای ناامن خواهد بود! هر بار که کسی کاری انجام می داد ، حتی به اندازه ارسال پیام در سرور Discord شما ، آن را به URL رویدادهای سفارشی ارسال می شود. این امر می تواند انجام داده های کاوی یا ورود به سیستم را بسیار آسان کند که احتمالاً شرایط خدمات Discord را نقض می کند.
بنابراین ، اگر می خواستید یک چت بابات مانند کاربر بیشتری بسازید ، باید یک ربات غیر سرور ایجاد کنید ، که می توانید با جدایی نیز انجام دهید!
مستندات را بررسی کنید (از جمله اسناد ربات سرور ، هر دو JavaScript و TypeScript پشتیبانی شده) و لطفاً اگر Ciscraft به شما کمک کرد ، یک ستاره بگذارید!
چارچوب نهایی Discord Bot | CLI ، سرور توسعه ، ساخت بهینه سازی و موارد دیگر
Creatraft یک چارچوب مدرن و سازگار با توسعه دهنده برای ساختن ربات های Discord با سهولت است که یک CLI قوی و مجموعه ای از ابزارها برای ساده سازی روند توسعه فراهم می کند و به شما امکان می دهد تا روی ایجاد تجربیات شگفت انگیز BOT تمرکز کنید و فکر کنید که آن را به عنوان “باتری ها شامل” فکر کنید رویکرد ، به شما اجازه می دهد سریع و کارآمد شروع کنید. این مانند Next.js برای رباتهای Discord است.
توجه: اگر این اسناد را در NPM مشاهده می کنید ، برای اسناد به روز تر ، مخزن GitHub را بررسی کنید.
فهرست مطالب
🚀 شروع کار
نصب
شما می توانید با استفاده از پروژه خود به صورت محلی در پروژه خود نصب کنید npm
…
با تشکر از خواندن!
بهترین کد