CovBot - WhatsApp 19 дээр суурилсан чатбот 19 ба түүнээс дээш мэдээлэл: 7 алхам
CovBot - WhatsApp 19 дээр суурилсан чатбот 19 ба түүнээс дээш мэдээлэл: 7 алхам
Anonim
Image
Image
Twilio данс үүсгэх
Twilio данс үүсгэх

CoVbot бол Whatsapp дээр суурилсан энгийн бөгөөд ойлгомжтой чатбот юм. Ботын гол онцлог нь:

Энэ нь танд сонгосон орны хамгийн сүүлийн үеийн COVID-19 статусыг энгийн бөгөөд ойлгомжтой байдлаар өгөх болно.

Нэмж дурдахад, bot нь гэртээ хийх сонирхолтой үйл ажиллагааг санал болгож болно, тухайлбал:

  1. Кино санал болгох - Шилдэг 10 киноны жагсаалтаас үзэх кино, зохиомж, үргэлжлэх хугацааны товч тоймыг агуулсан кино. Энэ жагсаалт нь програм хангамжид хатуу кодлогдоогүй тул энэ нь танд одоогийн чиг хандлагад үндэслэсэн хамгийн сүүлийн үеийн шинэчлэлтүүдийг өгөх болно.
  2. ТВ нэвтрүүлэг санал болгох - Хамгийн алдартай телевизийн шоу нэвтрүүлгүүдийн тойм, үнэлгээний талаархи товч тоймыг үзэх телевизийн шоу. Энэ жагсаалт нь програм хангамжид хатуу кодлогдоогүй тул энэ нь танд одоогийн чиг хандлагад үндэслэсэн хамгийн сүүлийн үеийн шинэчлэлтүүдийг өгөх болно.
  3. Ном санал болгох - Шилдэг 10 номын жагсаалтаас унших ном, товч, хавтасны зурагтай.
  4. Өдөр тутмын дасгалууд-Энэ бол CRANK фитнессийн Инстаграм хуудсандаа өгсөн 7 хоногийн дасгалын хуваарь дээр үндэслэсэн видео юм.

Хэрэв танд энэхүү зааварчилгаа таалагдсан бол Анхны зүйлийн зохиогчийн уралдаанд саналаа өгөөрэй. (тийм ээ, энэ бол миний анхны зааварчилгаа юм, хэрэв ямар нэг зүйл тодорхойгүй эсвэл нэмэлт тайлбар хэрэгтэй бол коммент хэсэгт надад мэдэгдээрэй, би танд тусалж чадна:)

Хангамж

Энэхүү төсөл нь зөвхөн програм хангамж дээр суурилсан төсөл тул зөөврийн компьютер/ширээний компьютер/macOS/Linux болон интернет ашиглан энэхүү зааварчилгааг дагаж мөрдөж буй хэн бүхэн энэхүү төслийг дуусгах боломжтой. Би програмын туршлагатай хүмүүст код/процессыг илүү нарийвчлан тайлбарлахын тулд төгсгөлд нь нарийвчилсан хэсгийг оруулах болно, энэ нь төслийг дуусгахад шаардлагагүй гэдгийг анхаарна уу.

Төслийн хүндрэлийн түвшин:

Маш хялбар биш, гэхдээ тийм ч хэцүү биш

Бидний ашиглах тоног төхөөрөмж:

  • Windows/macOS/Linux дээр ажилладаг зөөврийн компьютер/ширээний компьютер.
  • WhatsApp Messenger суулгасан гар утас

Бидний ашиглах програм хангамж:

  1. Python програмчлалын хэл
  2. ngrok бол манай сүлжээнд гаднаас сервер рүүгээ нэвтрэх боломжийг олгодог хэрэгсэл юм
  3. Таны сонгосон редактор: (жишээ нь Notepad ++, Гайхамшигтай Текст, Vim гэх мэт)

Алхам 1: Шаардлагатай програм хангамжийг суулгана уу

Image
Image

Энэ үе шатанд бид дараахь зүйлийг хийх болно

  1. Python> 3.6 -ийг суулгаад туршиж үзээрэй
  2. Шаардлагатай питон номын сангуудыг суулгана уу
  3. Ngrok суулгана уу

Хэрэв танд програм суулгасан бол та энэ алхамыг алгасаж болно

Python суулгах:

Энэ төслийн бүх арын/сервер кодын баазыг Python 3.6 дээр бичсэн болно. Тиймээс програмуудаа ажиллуулахын тулд Python> 3.6 програмыг компьютер дээрээ суулгасан байх шаардлагатай. Windows болон macOS -д python хэрхэн суулгах талаар CoreySchafer -ийн зааврыг дагана уу

Та cmd/Terminal дээр дараах зүйлийг бичиж зөв суулгасан эсэхийг шалгах боломжтой.

python -c 'print (f "Hello World")'

Хэрэв бүх зүйл зөв суулгасан бол Hello World дэлгэц дээр хэвлэгдэх ёстой. Хэрэв танд буруу синтаксийн алдаа гарвал та python -ийн буруу хувилбарыг суулгасан байна. Python -ийн хувилбарыг суулгаарай> = 3.6

Pip ашиглан шаардлагатай python сангуудыг суулгана уу:

Бид програм хангамжаа ажиллуулахын тулд дараах питон номын санг ашиглах болно.

  1. Колбо - Энэ бол манай серверийн хүрээ юм
  2. Twilio - Энэхүү номын сан нь питоныг WhatsApp -тэй харилцах боломжийг олгодог
  3. Хүсэлт - Энэ номын сан нь API -аас өгөгдөл хүсэхэд ашиглагддаг
  4. BeautifulSoup4 - Энэхүү номын сан нь вэбсайтуудаас мэдээлэл хусахад ашиглагддаг
  5. lxml - Энэ номын санг вэбсайтаас холбогдох мэдээллийг гаргаж авахын тулд BeautifulSoup -тэй хослуулан ашигладаг

Эдгээр санг суулгахын тулд та дараах зүйлийг хийх боломжтой.

CMD/Terminal -ийг нээгээд дараах тушаалыг бичнэ үү.

pip колбо, твилио, хүсэлт, beautifulsoup4, lxml

ЭСВЭЛ

Requirements.txt файлыг татаж аваад файл байгаа директор дахь терминалыг нээгээд дараах зүйлийг бичнэ үү.

pip install -r шаардлага.txt

Ngrok суулгана уу

ngrok нь танай орон нутгийн машин дээр ажилладаг серверийг интернетэд ил гаргах боломжийг олгодог. Таны сервер ямар порт сонсож байгааг ngrok -д хэлээрэй.

Ngrok вэбсайт дээрх зааврыг дагаж өөрийн ашиглаж буй үйлдлийн системд ngrok суулгах.

Зөвлөгөө: Гарын авлагын 3 -р алхам нь энэ төсөлд хамааралгүй тул алгасаж болно

Алхам 2: Twilio данс үүсгэх

Энэ үе шатанд бид дараахь зүйлийг хийх болно

  1. Twilio данс бүртгүүлэх
  2. Twilio -ийн консолын ашигтай хэсгүүдийн хурдан танилцуулга

Бүртгүүлэх:

Энэ төсөлд бид Twilio Whatsapp API ашиглан питон програмаа Whatsapp -тэй холбох болно. Twilio API -ийг ашиглахын тулд эхлээд Twilio -ийн албан ёсны вэбсайт дээр данс үүсгэх шаардлагатай. Туршилтын дансны хувьд Twilio нь ашиглахад 15 долларын үнэгүй кредит санал болгодог.

Шуурхай танилцуулга:

Та данс үүсгэсний дараа энэ төслийн Twilio консолын хамгийн сонирхолтой хэсгүүд нь:

Хяналтын самбар - Хяналтын самбараас та үлдсэн зээлийн хэмжээг харж, төслийнхөө нэрийг өөрчилж, програмчлалын хэлийг өөрчлөх боломжтой.

Програмчлагдах SMS хэсэг дэх Whatsapp дэд хэсэг - Консолын Whatsapp хэсгээс та bot -тэй нэгдэх код, манай bot -тэй ярилцах төсөлд ашиглах Whatsapp -ийн тоо, вэб хуукийг тохируулах боломжтой болно.. Эдгээр бүх зүйлийн талаар илүү дэлгэрэнгүй мэдээллийг дараагийн алхамуудад тайлбарлах болно

Алхам 3: COVID 19 өгөгдөл, кино, телевизийн нэвтрүүлгийн API түлхүүрийг аваарай

COVID 19 -ийн өгөгдөл, кино, телевизийн нэвтрүүлгийн API түлхүүрийг аваарай
COVID 19 -ийн өгөгдөл, кино, телевизийн нэвтрүүлгийн API түлхүүрийг аваарай
COVID 19 -ийн өгөгдөл, кино, телевизийн нэвтрүүлгийн API түлхүүрийг аваарай
COVID 19 -ийн өгөгдөл, кино, телевизийн нэвтрүүлгийн API түлхүүрийг аваарай

API түлхүүр эсвэл програмчлалын интерфэйсийн түлхүүр нь компьютерийн програмаар дамждаг код юм. Хөтөлбөр эсвэл програм нь API эсвэл програмын интерфэйсийг дуудаж, хэрэглэгч, хөгжүүлэгч эсвэл дуудлага хийх програмаа вэбсайт руу таниулдаг.

Бид хамгийн сүүлийн үеийн COVID 19 -ийн статус, кино, телевизийн шоуны талаар мэдээлэл авахын тулд API ашигладаг. API -д хандахын тулд хэрэглэгч бүрийн хувийн түлхүүр хэрэгтэй болно. Энэ алхамд бид эдгээр түлхүүрүүдийг авах болно

COVID 19 өгөгдөлд API түлхүүр авах:

  • RapidAPI данс руугаа нэвтэрнэ үү эсвэл бүртгүүлнэ үү.
  • Үүний дараа Gramzivi-ийн COVID-19 API руу очно уу
  • API консолын "Толгойн параметрүүд" хэсэгт доош гүйлгэнэ үү.
  • Таны API түлхүүр "X-RapidAPI-түлхүүр" талбарт харагдах ёстой.

Кино, телевизийн шоуны өгөгдөлд API түлхүүр авах:

  • TMDB данс руугаа нэвтрэх эсвэл бүртгүүлнэ үү
  • Үүний дараа тохиргоо руу очно уу - API
  • "API түлхүүр (v3 auth)" хэсэг рүү доош гүйлгэнэ үү.
  • Таны API түлхүүр доор харагдах ёстой

"Config.py" файлыг үүсгэнэ үү

Бид одоо API түлхүүрээ хадгалахын тулд config.py файлыг үүсгэх болно. Бид эдгээрт зориулж тусдаа файл үүсгэдэг, учир нь API түлхүүр нь нууц мэдээлэл бөгөөд хэрэв та төслөө хуваалцвал API түлхүүрээ хуваалцахгүй байх ёстой.

  • Шинэ төслийн лавлах үүсгэх
  • Шинээр үүсгэсэн директор дотор "config.py" нэртэй шинэ файл үүсгэнэ үү.
  • Энэ файлыг өөрийн хүссэн редактороор (Sublime, Notepad ++) засварлаж, дараах текстийг өмнөх алхам дээр олж авсан холбогдох мэдээллээр хуулж солино уу.

session_key = "нууц" #Энэ нь аюулгүй биш.. гэхдээ зөвхөн туршихад л болно

rapid_api_key = "" api_key = ""

Файлыг хадгална уу

Алхам 4: Python болон Twilio Via Ngrok -ийг холбоно уу

Энэ үе шатанд бид дараахь зүйлийг хийх болно.

  1. Эх кодыг татаж авах
  2. Хөтөлбөрийг хэрэгжүүлж, орон нутгийн IP -ийг ngrok -ээр дамжуулан олон нийтийн хаягаар дамжуулахын тулд бид хүсэлт гаргах боломжтой болно
  3. Хүсэлтийг манай сервер рүү дамжуулахын тулд Twilio дансаа тохируулна уу

Ботын эх кодыг татаж авах:

Энэ тохиргоонд хавсаргасан бүх файлыг сүүлийн алхам дээр үүсгэсэн төслийн директор руу татаж аваарай.

Хөтөлбөрийг гүйцэтгэх:

CMD/терминал дахь эх кодын лавлах руу очоод дараах тушаалыг ажиллуулна уу.

python server_main.py

Сүүлийн алхам дээр бидний үүсгэсэн "config.py" байгаа эсэхийг шалгаарай, эс тэгвээс танд алдаа гарах болно

Гаралт нь иймэрхүү байх ёстой:

* "Server_main" колбаны апп -д үйлчилж байна (залхуу ачаалах)

* Байгаль орчин: үйлдвэрлэл АНХААРУУЛГА: Энэ бол хөгжүүлэлтийн сервер юм. Үүнийг үйлдвэрлэлийн зохион байгуулалтад бүү ашиглаарай. Үүний оронд үйлдвэрлэлийн WSGI сервер ашиглана уу. * Дебаг хийх горим: асаалттай * https://127.0.0.1:5000/ дээр ажиллаж байна (CTRL+C дарж гарах) * Stat -ээр дахин эхлүүлэх * Debugger идэвхтэй байна! * Дебаг хийгчийн ПИН: 740-257-236

Энэ нь таны сервер 5000 -р порт дээр таны дотоод сүлжээнд зөв ажиллаж байгаа гэсэн үг юм. Энэ серверийг дотоод сүлжээнээсээ гаднаас хандах боломжтой болгохын тулд бид ngrok -ийг ашиглах болно.

Орон нутгийн IP -ийг олон нийтийн хаяг руу ngrok -ээр дамжуулах

Ngrok -ийг CMD/терминалаар татаж авсан директор руу очиж дараах тушаалыг ажиллуулна уу.

ngrok http 5000

Гаралт нь иймэрхүү байх ёстой:

ngrok by @inconshreveable (гарахын тулд Ctrl+C)

Сессийн статус онлайн хуралдаан 7 цаг, 59 минут дуусна 2.3.35 хувилбар АНУ, АНУ -ын вэб интерфейс https://127.0.0.1:4040 Дамжуулах _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Дамжуулах _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Холболт ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00

HTTP холбоосыг "Forwading" хэсгээс хуулж ав (ngrok.io хүртэл). (Үүнийг холбоос болгон таслах заавраас зайлсхийхийн тулд би энэ жишээн дэх _ -ийг нэмсэн)

Twilio -г серверийн хүсэлтийг дараах хаягаар дамжуулахын тулд шинэ хаягийг ашиглахаар тохируулна уу

Одоо бид серверээ олон нийтэд нээлттэйгээр дамжуулж амжилттай дамжуулсны дараа Twilio -ийг Twilio Whatsapp API ашиглан хүсэлт гаргах үед бид хүсэлтийг сервер рүүгээ дамжуулахаар тохируулах хэрэгтэй. Үүнийг хийхийн тулд бид дараахь зүйлийг хийх шаардлагатай байна.

  1. Twilio's Console дээрх Whatsapp хэсэгт очно уу
  2. "Sanbox" дэд хэсэгт очно уу
  3. "Мессеж ирэхэд" текст хайрцагт /sms өргөтгөлөөр хуулж авсан ngrok -аас HTTP холбоосыг буулгана уу (эхэнд болон төгсгөлд _ -ийг хуулж болохгүй):

_https://d44c955749bf.ngrok.io/sms_

Одоо чатботын бүх зүйлийг тохируулсан болно. Дараагийн алхамд бид бүх зүйл зөв ажиллаж байгаа эсэхийг шалгаж болно

Алхам 5: Манай програмыг туршиж үзээрэй

Манай програмыг туршиж үзээрэй
Манай програмыг туршиж үзээрэй
Манай програмыг туршиж үзээрэй
Манай програмыг туршиж үзээрэй
Манай програмыг туршиж үзээрэй
Манай програмыг туршиж үзээрэй

Энэ үе шатанд бид дараахь зүйлийг хийх болно.

  1. Хандалтын кодыг ашиглан манай ботод нэгдээрэй
  2. Манай програмыг туршаад үзээрэй

Хандалтын кодыг ашиглан манай ботод нэгдээрэй

Энэ төсөлд бид Twilio -ийн Whatsapp Sandbox дугаарыг Whatsapp bot дээрээ ашиглах болно. Хүн бүрийн хувьд энэ тоо өөр байх болно. Та өөрийн дугаарыг дараах байдлаар олох боломжтой.

  • Twilio данс руугаа нэвтэрнэ үү
  • Twilio Console -> Whatsapp хэсэг -> Sandbox руу очно уу
  • Та Twilio Sandbox дугаараа дараах текстээр харах болно.

Найзуудаа Sandbox дээрээ уриарай. WhatsApp мессеж илгээхийг тэднээс хүсээрэй:

Whatsapp-ийн аюулгүй байдлын бодлогын улмаас Whatsapp-ээр дамжуулан автоматжуулсан боттой ярихыг хүссэн хүн бүр код ашиглан шууд бүртгүүлэх шаардлагатай болдог. Та өөрийн кодыг Twilio хамгаалагдсан хайрцгийн дугаартай ижил хэсгээс дараах текстийг хайж олох боломжтой

Та Twilio Sandbox Whatsapp дугаар болон бүртгүүлснийхээ дараа бот ашиглаж эхлэхийн тулд гар утсан дээрээ очоод дараах зүйлийг хий.

  1. "Twilio Sandbox Whatsapp дугаар" -ыг өөрийн сонгосон нэрээр харилцагчдаа хадгалаарай (жишээ нь CovBot)
  2. Whatsapp -ийг нээгээд тухайн харилцагч руу дараах мессежийг илгээнэ үү.

нэгдэх

Та ийм мессежийг харах ёстой:

Twilio Sandbox: Бүх зүйл бэлэн боллоо ….

Энэ нь та bot -тайгаа холбогдсон бөгөөд qs -аас асуухад бэлэн байна гэсэн үг юм

Манай програмыг туршиж үзээрэй:

Ботоо холбосны дараа янз бүрийн онцлог шинж чанарыг туршиж үзэхийн тулд bot руу дараах мессежийг илгээнэ үү.

Сайн байна уу

Та дараах текстийг харах ёстой.

CoVbot -д тавтай морил!

COVID-19-ийн хамгийн сүүлийн үеийн шинэчлэлтийг энгийн, хурдан, хялбар байдлаар өгөх боломжтой энгийн чатбот. Бид бүгдээрээ хорио цээрийн дэглэмд байгаа тул ботийг ашиглан бид өөрсдийгөө, найз нөхөд, гэр бүлийнхээ аюулгүй байдлыг хангахыг хичээдэг тул гэртээ цагийг зөв боловсон өнгөрүүлэхийн тулд ямар нэгэн хөгжилтэй үйл ажиллагааг санал болгож болно. Танд таалагдаж, хэрэгтэй болно гэж найдаж байна! Эхлэхийн тулд 4 илгээнэ үү!

Одоо та ботын янз бүрийн онцлогийг туршиж үзэх сонголтыг дагаж болно.

ЭНЭ БАЙНА! Таны Whatsapp Chatbot бэлэн боллоо !!!! Баяр хүргэе

Алхам 6: Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт:

Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт
Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт
Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт
Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт
Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт
Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт
Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт
Энэ нь хэрхэн ажилладаг, цаашдын сайжруулалт

Энэ хэсэг нь питон програмчлалын туршлагатай хүмүүст зориулагдсан болно. Үгүй бол та энэ хэсгийг алгасаж болно

Кодын тайлбар

Үндсэн гогцоо:

Таны Twilio дугаар руу Whatsapp мессеж илгээх үед Twilio API нь таны заасан сервер рүү POST хүсэлт илгээдэг. Сервер нь Flask framework -ийг ашиглан хийгддэг тул бид POST хүсэлтийн явцад хүлээн авсан өгөгдлийг авахын тулд Flask Request объектыг ашиглаж болно. Өгөгдөл дээр үндэслэн (Энэ тохиолдолд тоонууд) бид хэрэглэгч ямар сонголтыг сонгож, зохих мэдээллийг өгөх болно

COVID -ийн өгөгдөл, кино, телевизийн шоу:

COVID 19, кино, телевизийн шоуны өгөгдлийг API -аас авдаг. Би python номын сангийн хүсэлтийг ашиглан өгөгдлийг олж аваад JSON формат руу хөрвүүлдэг. Дараа нь би холбогдох мэдээллийг задлан шинжилдэг. Кино, ТВ нэвтрүүлгийн хувьд би санамсаргүй питоны номын санг ашиглан санамсаргүй телевизийн шоу, Кино сонгосон

Номын дэлгэрэнгүй мэдээлэл

Төсөлд ашигласан номын санал болгох алгоритм бол зүгээр л вэб хусагч юм. Танд дэлгэрэнгүй мэдээлэл бүхий санамсаргүй ном өгдөг API олдсонгүй, тиймээс би BeautifulSoup4 ашиглан вэбсайтыг хусаад lxml задлагч ашиглан номны холбогдох мэдээллийг гаргаж авлаа.

Дэд цэсийн дэлгэрэнгүй мэдээлэл:

Whatsapp мессеж нь харьяалалгүй протокол болох SMS мессеж шиг байдаг тул дэд цэсийг хэрэгжүүлэх нь бусадтай харьцуулахад арай илүү төвөгтэй байсан. Үүнийг шийдэхийн тулд би хоёр техникийг ашигласан.

  1. Глобал хувьсагчдыг ашиглан мессежийн байдлыг санаж байх - Энэ нь зөвхөн COVID 19 дэд хувилбарт зориулагдсан болно. Энэ тохиолдолд хэрэглэгч "Миний оронд байгаа COVID 19 -ийн статус" сонголтыг хийх үед гүйцээгүй_мессеж нэртэй дэлхийн хувьсагчийг True болгож тохируулах бөгөөд өмнөх сонголт дээр суурилсан өөр мессеж шаардлагатай хэвээр байгааг харуулна. Дараа нь эхэнд нь зурвасыг бүрэн бус гэж тэмдэглэсэн эсэхийг шалгадаг бөгөөд энэ нь тухайн мессежийг COVID өгөгдлийн улсын нэр гэж үзээд мэдээллийг зөв функцэд дамжуулж, дэлхийн хувьсагчийн дутуу зурвасыг худал гэж тохируулдаг.
  2. Twilio күүки ба колбоны хуралдаан ашиглах - Cookies болон Flask Sessions нь "хорио цээрийн дэглэмийг санал болгох" дэд цэсэнд төлөв байдлыг хэрэгжүүлэхэд ашиглагддаг, яг одоо интернэтэд байгаа аливаа вэб програм үүнийг ашигладаг шиг хэрэглэгчийн нэрээ санаж байхын оронд ашигладаг. эсвэл данс нь хоёр тооны хоорондох хөрвүүлэлтийг санаж байна. Хэрэв та энэ хэсгийн талаар илүү их мэдээлэл авахыг хүсч байвал Twilio багийн бичсэн Twilio жигнэмэг дээрх энэхүү гайхалтай гарын авлагыг уншихыг зөвлөж байна.

Ирээдүйн сайжруулалт:

  1. Python болон Design Pattern -ийн объектод чиглэсэн байдлыг ашиглан кодын бүтэц, DRYness -ийг сайжруулаарай
  2. Дэлхийн хувьсагчдыг устгах
  3. Алдаа зохицуулалтыг сайжруулах боломжтой
  4. Эрдэнэ шиш болон Twilio CLI ашиглан ngrok хаягийг автоматаар шинэчилнэ үү
  5. Кодын баримт бичиг

Алхам 7: Эцсийн тэмдэглэл

Та бүхэнд энэ төсөл таалагдсан гэж найдаж байна. Энэ бол миний анхны зааварчилгаа юм, тиймээс хэрэв ямар нэгэн зүйл тодорхойгүй эсвэл нэмэлт тайлбар хийх шаардлагатай бол коммент хэсэгт надад мэдэгдээрэй, би танд тусалж чадна. Хэрэв та энэ төслийг өөр техник эсвэл онцлог жагсаалтаар хийсэн бол үүнийг хуваалцаарай

Зөвлөмж болгож буй: