برنامه نویسی

با 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 دکمه:

دکمه برنامه جدید Discord Blue Discord

نام برنامه را وارد کنید و بی فکر موافقت کنید … منظورم این است که ، بخوانید ، سپس با آن موافقت کنید ، با توجه به خدمات خدمات و توسعه دهندگان Word Developer Word ،.

نام برنامه Textarea

بعداً می توانید نام را تغییر دهید ، بنابراین هنوز نگران فکر کردن به نام عالی نباشید.
در صورت تمایل می توانید برخی از اطلاعات کلی در مورد برنامه خود را پر کنید.

اطلاعات عمومی برنامه

در مرحله بعد ، برای آزمایش آن باید ربات را به 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 پرونده

کلید API Google AI

خوب ، تاکنون ، شما .env پرونده باید داشته باشد بدون مقادیر خالیبشر باید مانند آن در این تصویر باشد ، با رازهای شما:

پرونده dot 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 به شما می گوید چگونه وارد شوید.

خوب حالا …

این GIF زمان است

وقت آن است که کد 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 دستورات اکنون (با فرض اینکه پیکربندی را انجام داده اید) ، سپس دوباره صفحه را بارگیری کنید.

پروژه ربات Vercel

اکنون برگه تنظیمات را برای پروژه خود پیدا کنید. روی آن کلیک کنید و به آن بروید Environment variables در نوار کناری.
هنگامی که در آنجا هستید ، متغیر را از .env وارد پروژه خود شوید و ذخیره آن را فراموش نکنید! باید مانند تصویر زیر باشد:

محتویات dot 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 تعامل را در جعبه بچسبانید ، سپس تغییرات خود را ذخیره کنید.

تنظیمات URL فعل و انفعالات Discord

اتمام

برای اعمال تغییرات خود ، اجرا کنید 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 ، سرور توسعه ، ساخت بهینه سازی و موارد دیگر

آرم را از هم جدا کردن

نسخه NPM
بارگیری NPM
سرور اختلاف نظر
codeql

Creatraft یک چارچوب مدرن و سازگار با توسعه دهنده برای ساختن ربات های Discord با سهولت است که یک CLI قوی و مجموعه ای از ابزارها برای ساده سازی روند توسعه فراهم می کند و به شما امکان می دهد تا روی ایجاد تجربیات شگفت انگیز BOT تمرکز کنید و فکر کنید که آن را به عنوان “باتری ها شامل” فکر کنید رویکرد ، به شما اجازه می دهد سریع و کارآمد شروع کنید. این مانند Next.js برای رباتهای Discord است.

توجه: اگر این اسناد را در NPM مشاهده می کنید ، برای اسناد به روز تر ، مخزن GitHub را بررسی کنید.

فهرست مطالب

🚀 شروع کار

نصب

شما می توانید با استفاده از پروژه خود به صورت محلی در پروژه خود نصب کنید npm


پایان gif

با تشکر از خواندن!
بهترین کد

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا