Мазмуну:

CovBot - WhatsApp негизделген чатбот COVID 19 маалыматы жана башкалар: 7 кадам
CovBot - WhatsApp негизделген чатбот COVID 19 маалыматы жана башкалар: 7 кадам

Video: CovBot - WhatsApp негизделген чатбот COVID 19 маалыматы жана башкалар: 7 кадам

Video: CovBot - WhatsApp негизделген чатбот COVID 19 маалыматы жана башкалар: 7 кадам
Video: WORLD OF WARSHIPS BLITZ (SINKING FEELING RAMPAGE) 2024, Ноябрь
Anonim
Image
Image
Twilio эсебин түзүү
Twilio эсебин түзүү

CoVbot - бул Whatsappка негизделген жөнөкөй жана интуитивдүү чатбот. Боттун негизги өзгөчөлүгү:

Бул жөнөкөй жана интуитивдүү түрдө тандалган өлкөдө COVID-19нын акыркы статусун бере алат.

Кошумча катары, бот үйдө кызыктуу иш -аракеттерди сунуштай алат, мисалы:

  1. Тасма сунуштоо - Топ 10 тасмалар тизмесинен көрүү үчүн тасма, сюжет жана узактыгы жөнүндө кыскача сереп. Бул тизме программалык камсыздоодо коддолгон эмес болгондуктан, бул сизге ар дайым учурдагы тенденцияларга негизделген акыркы жаңыртууларды берет.
  2. Сыналгы шоусун сунуштоо - Сюжет жана рейтинг боюнча кыскача сереп менен эң популярдуу телешоулордон көрүү үчүн телешоу. Бул тизме программалык камсыздоодо коддолгон эмес болгондуктан, бул сизге ар дайым учурдагы тенденцияларга негизделген акыркы жаңыртууларды берет.
  3. Китеп сунуштоо - Бул китептин мукабасы жана мукабасы бар эң мыкты 10 китеп тизмесинен окуу үчүн китеп.
  4. Күнүмдүк машыгуу-Бул 7 күндүк машыгуу графигине негизделген видео CRANK гимназиясынын Инстаграм эсебинде.

Эгерде сиз бул Нускаманы жактырсаңыз, сураныч, Биринчи Зат Авторлорунун Конкурсунда добуш берүүнү карап көрүңүз. (жана ооба бул менин биринчи көрсөтмөм, андыктан бир нерсе түшүнүксүз болсо же кошумча түшүндүрмөгө муктаж болсо, комментарийлер бөлүмүндө мага билдириңиз, мен сизге жардам бере алам:)

Жабдуулар

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

Долбоордун кыйынчылык деңгээли:

Өтө оңой эмес, бирок өтө кыйын эмес

Биз колдоно турган жабдыктар:

  • Windows/macOS/Linux менен иштеген ноутбук/рабочий.
  • WhatsApp мессенджери орнотулган уюлдук телефон

Биз колдоно турган программалык камсыздоо:

  1. Python программалоо тили
  2. ngrok - бул биздин серверге биздин тармактын сыртынан кирүүгө мүмкүнчүлүк берүүчү курал
  3. Сиз тандаган редактор: (мис. Notepad ++, Sublime Text, Vim ж. Б.)

1 -кадам: Керектүү Программаны орнотуңуз

Image
Image

Бул кадамда биз төмөнкүлөрдү жасайбыз:

  1. Python> 3.6 орнотуп, аны сынап көрүңүз
  2. Керектүү python китепканаларын орнотуңуз
  3. Ngrok орнотуу

Эгерде сизде эки тиркеме орнотулган болсо, анда бул кадамды өткөрүп жибере аласыз

Python орнотуу:

Бул долбоордун бүт backend/server codebase Python 3.6де жазылган. Ошондуктан, биздин тиркемелерди иштетүү үчүн, компьютерибизде Python> 3.6 орнотулган болушу керек. Windows жана macOS үчүн python орнотуу боюнча CoreySchafer үйрөткүчтү ээрчиңиз

Сиз cmd/Terminalге төмөнкүлөрдү терүү менен бардыгы туура орнотулганын текшере аласыз:

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

Эгерде баары туура орнотулган болсо, анда Hello World экранда басылышы керек. Эгерде сиз жараксыз синтаксистик ката алсаңыз, анда сизде pythonдун туура эмес версиясы орнотулган. Python> = 3.6 версиясын орнотуңуз

Пипти колдонуу менен керектүү python китепканаларын орнотуңуз:

Программабыздын иштеши үчүн биз төмөнкү python китепканаларын колдонобуз:

  1. Flask - Бул биздин сервердин негизи
  2. Twilio - Бул китепкана питондун WhatsApp менен байланышуусун камсыздайт
  3. Сураныч - Бул китепкана API'лерден маалыматтарды суроо үчүн колдонулат
  4. BeautifulSoup4 - Бул китепкана веб -сайттардан маалыматты кыруу үчүн колдонулат
  5. lxml - Бул китепкана BeautifulSoup менен бирге веб -сайттан тиешелүү маалыматты алуу үчүн колдонулат

Бул китепканаларды орнотуу үчүн сиз төмөнкүлөрдү жасай аласыз:

CMD/Терминалды ачыңыз жана төмөнкү буйрукту териңиз:

пип орнотуу колбасы, twilio, суроо, beautifulsoup4, lxml

ЖЕ

Requirements.txt файлын жүктөп алып, файл жайгашкан каталогдо терминалды ачыңыз жана териңиз:

pip орнотуу -r талаптар.txt

Ngrok орнотуу

ngrok сизге жергиликтүү машинаңызда иштеген серверди интернетке чыгарууга мүмкүнчүлүк берет. Жөн гана ngrokко сиздин сервер кайсы порт угуп жатканын айт.

Сиз колдонгон операциялык системага ngrok орнотуу үчүн ngrok веб -сайтындагы көрсөтмөнү аткарыңыз.

Кеңеш: Колдонмонун 3 -кадамы бул долбоорго тиешеси жок, андыктан өткөрүп жиберүүгө болот

2 -кадам: Twilio эсебин түзүү

Бул кадамда биз төмөнкүлөрдү жасайбыз:

  1. Twilio эсебине катталуу
  2. Twilio's Console боюнча пайдалуу бөлүмдөргө тез киришүү

Кирүү:

Бул долбоордо биз питон программабызды Whatsappка туташтыруу үчүн Twilio Whatsapp API колдонобуз. Twilio API колдоно алуу үчүн, адегенде Twilio расмий сайтында каттоо эсебин түзүшүбүз керек. Сыноо эсеби үчүн Twilio бизге $ 15 акысыз кредит сунуштайт.

Ыкчам киришүү:

Сиз каттоо эсебин түзгөндөн кийин, бул долбоор үчүн Twilio консолунун эң кызыктуу бөлүмдөрү:

Куралдар тактасы - Куралдар тактасынан сиз дагы эле калган кредиттин суммасын көрө аласыз, долбооруңуздун аталышын түзөтүп, программалоо тилин өзгөртө аласыз

Программалануучу SMS бөлүмүндөгү Whatsapp бөлүмү - Консолдун Whatsapp бөлүмүнөн сиз ботко кошулуу кодуна, биздин бот менен сүйлөшүү үчүн долбоордо колдоно турган 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 консолунун "Header Parameters" бөлүмүнө ылдый сыдырыңыз.
  • Сиздин API ачкычыңыз "X-RapidAPI-Key" талаасында көрүнүшү керек.

Тасмалар жана телешоу маалыматтары үчүн API ачкычын алыңыз:

  • Кирүү же TMDB эсебиңизге катталуу
  • Андан кийин жөндөөңүзгө өтүңүз - API
  • "API ачкычы (v3 авторизациясы)" бөлүмүнө ылдый сыдырыңыз.
  • Сиздин API ачкычыңыз анын астында көрүнүшү керек

"Config.py" файлын түзүңүз

Биз азыр API ачкычтарыбызды сактоо үчүн config.py файлын түзөбүз. Биз алар үчүн өзүнчө файл түзөбүз, себеби API ачкычтары купуя маалымат жана эгер сиз долбооруңуз менен бөлүшсөңүз, API ачкычыңызды бөлүшпөшүңүз керек.

  • Жаңы долбоордун каталогун түзүңүз
  • Жаңы түзүлгөн каталогдун ичинде "config.py" деп аталган жаңы файл түзүңүз
  • Бул файлды сиз тандаган редактор менен түзөтүңүз (Sublime, Notepad ++) жана төмөнкү текстти көчүрүү жана мурунку кадамда алынган тиешелүү маалымат менен алмаштыруу:

session_key = "жашыруун" #Бул коопсуз эмес.. бирок сыноо үчүн баары жакшы

rapid_api_key = "" api_key = ""

Файлды сактаңыз

4 -кадам: Python менен Twilio аркылуу Ngrok аркылуу туташыңыз

Бул кадамда биз төмөнкүлөрдү жасайбыз:

  1. Булак кодун жүктөп алыңыз
  2. Программаны аткарыңыз жана жергиликтүү IPти ngrok аркылуу ачык дарекке жөнөтүңүз, андыктан биз ага суроо -талап кое алабыз
  3. Суроону серверибизге жөнөтүү үчүн Twilio каттоо эсебиңизди конфигурациялаңыз

Боттун баштапкы кодун жүктөп алыңыз:

Бул орнотууда тиркелген бардык файлды акыркы кадамда түзүлгөн проект каталогуна жүктөп алыңыз.

Программаны аткарыңыз:

CMD/терминалдагы баштапкы коддун каталогуна өтүңүз жана төмөнкү буйрукту аткарыңыз:

python server_main.py

Акыркы кадамда биз түзгөн "config.py" бар экенин тактаңыз, болбосо ката кетиресиз

Чыгаруу мындай болушу керек:

* Flask колдонмосун тейлөө "server_main" (жалкоо жүктөө)

* Айлана -чөйрө: өндүрүш ЭСКЕРТҮҮ: Бул өнүгүү сервери. Аны өндүрүшкө жайылтууда колдонбоңуз. Анын ордуна өндүрүш WSGI серверин колдонуңуз. * Мүчүлүштүктөрдү оңдоо режими: күйгүзүлгөн * https://127.0.0.1:5000/де иштөө (CTRL+C басуу үчүн) * Стат менен кайра баштоо * Мүчүлүштүктөрдү оңдоочу активдүү! * Мүчүлүштүктөрдү оңдоочу PIN: 740-257-236

Бул сиздин сервер 5000 портунда жергиликтүү тармагыңызда туура иштеп жатканын билдирет. Бул серверди жергиликтүү тармагыңыздын сыртынан жеткиликтүү кылуу үчүн ngrok колдонобуз.

Ngrok аркылуу ачык IP дарегине

CMD/терминал аркылуу ngrok жүктөлгөн каталогго өтүңүз жана төмөнкү буйрукту аткарыңыз:

ngrok http 5000

Чыгаруу мындай болушу керек:

ngrok by @inconshreveable (Ctrl+C чыгуу үчүн)

Сеанстын онлайн режиминдеги сессиясы 7 саат 59 мүнөттө аяктайт 2.3.35 Версия Америка Кошмо Штаттары (биз) Web Interface 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

"Forwading" бөлүгүнөн HTTP шилтемесин көчүрүү (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 ботубуз үчүн колдонобуз. Ар бир адам үчүн бул сан башка болот. Сиз номериңизди төмөнкүчө таба аласыз:

  • Twilio эсебиңизге кириңиз
  • Twilio Consoleго өтүңүз -> Whatsapp бөлүмү -> Sandbox
  • Сиз Twilio Sandbox номериңизди төмөнкү текст менен көрөсүз:

Досторуңузду Sandboxко чакырыңыз. Алардан WhatsApp билдирүүсүн жөнөтүүнү сураныңыз:

Whatsappтын коопсуздук саясатына байланыштуу, Whatsapp аркылуу автоматташтырылган бот менен сүйлөшкүсү келгендердин бардыгы кодду колдонуу менен ачык түрдө баш тартуусу керек. Сиз кодуңузду Twilio Sandbox номериңиз менен бир бөлүмдө текст менен таанышып таба аласыз:

Twilio Sandbox Whatsapp номериңизди жана катталуу кодуңузду алгандан кийин, ботту колдонууну баштоо үчүн мобилдик телефонуңузга барыңыз жана төмөнкүлөрдү аткарыңыз:

  1. "Twilio Sandbox Whatsapp номерин" өзүңүз тандаган ысым менен байланышка сактаңыз (мис. CovBot)
  2. Whatsappты ачыңыз жана ал байланышка төмөнкү билдирүүнү жөнөтүңүз:

кошулуу

Сиз мындай билдирүүнү көрүшүңүз керек:

Twilio Sandbox: Баары даяр…

Бул сиздин ботуңуз менен байланышып, qs суроого даяр экениңизди билдирет

Биздин колдонмону сынап көрүңүз:

Боттун ар кандай өзгөчөлүктөрүн текшерүү үчүн, туташкандан кийин ботко төмөнкү билдирүүнү жөнөтүңүз:

салам

Сиз төмөнкү текстти көрүшүңүз керек:

CoVbotко кош келиңиз!

COVID-19дун акыркы жаңыртууларын жөнөкөй, тез жана оңой бере турган жөнөкөй чатбот. Баарыбыз карантинге алынгандыктан, боттун жардамы менен үйдө убактыбызды пайдалуу өткөрүү үчүн, өзүбүздү, досторубузду жана үй -бүлөбүздү коргоого аракет кылабыз. Сизге жагат жана пайдалуу деп ишенебиз! Баштоо үчүн 4 жөнөтүңүз!

Эми сиз боттун ар кандай өзгөчөлүктөрүн сынап көрүү үчүн опцияны колдонсоңуз болот.

ДАЛ УШУЛ! Whatsapp Chatbotңуз даяр !!!! Куттуктайм

6 -кадам: Бул кантип иштейт жана келечекти жакшыртуу:

Бул кантип иштейт жана келечектеги жакшыртуу
Бул кантип иштейт жана келечектеги жакшыртуу
Бул кантип иштейт жана келечектеги жакшыртуу
Бул кантип иштейт жана келечектеги жакшыртуу
Бул кантип иштейт жана келечектеги жакшыртуу
Бул кантип иштейт жана келечектеги жакшыртуу
Бул кантип иштейт жана келечектеги жакшыртуу
Бул кантип иштейт жана келечектеги жакшыртуу

Бул бөлүм python программалоо тажрыйбасы бар адамдар үчүн. Антпесеңиз, бул бөлүмдү өткөрүп жибере аласыз

Коддун түшүндүрмөсү

Негизги цикл:

Сиздин Twilio номериңизге Whatsapp билдирүүсү жөнөтүлгөндө, Twilio API сиз көрсөткөн серверге POST сурамын жөнөтөт. Сервер Flask алкагынын жардамы менен ишке ашырылат, ошондуктан биз POST суроо учурунда алынган маалыматтарды алуу үчүн Flask Request объектисин колдоно алабыз. Маалыматтардын негизинде (Бул учурда сандар) биз колдонуучу кандай вариантты тандап алганын чечебиз жана тиешелүү маалыматты беребиз

COVID маалыматы жана тасмалар жана телешоулар:

COVID 19, Тасмалар жана Телешоу Маалыматтары APIден алынат. Мен маалыматтарды алуу үчүн python китепканасынын өтүнүчүн колдонуп, анан аны JSON форматына айландырам. Анан мен жөн гана тиешелүү маалыматты талдайм. Кинолор жана телешоу үчүн мен кокусунан питон китепканасын колдонуп, туш келди телешоуну жана Кинону тандадым

Китеп чоо -жайы

Долбоордо колдонулган китеп сунуштоо алгоритми жөн гана веб кыргыч. Мен сизге туш келди китеп берген эч кандай API таба алган жокмун, ошондуктан жөн эле BeautifulSoup4 менен веб -сайтты кырып, lxml талдагычын колдонуп, китептин тиешелүү маалыматын чыгарам.

Sub меню чоо -жайы:

Кошумча менюларды ишке ашыруу калгандардан бир аз татаалыраак болду, анткени Whatsapp билдирүүлөрү жарандыгы жок протоколго окшош. Муну чечүү үчүн мен эки техниканы колдондум:

  1. Билдирүүнүн абалын эстөө үчүн Глобалдык өзгөрмөлөрдү колдонуу - Бул COVID 19 Sub -опциясы үчүн гана ишке ашырылат. Бул учурда, колдонуучу "Менин өлкөмдөгү COVID 19 статусун" тандап алса, толук эмес_мессаж деп аталган глобалдык өзгөрмө "True" деп коюлат, анда мурунку вариантка негизделген дагы бир билдирүү дагы эле керек. Андан кийин башталганда текшерүү бар, эгерде ал билдирүү толук эмес деп белгиленсе, анда бул билдирүү COVID маалыматтары үчүн өлкөнүн аталышы болуп саналат жана маалыматты туура функцияга өткөрүп берет жана глобалдуу өзгөрмөлүү билдирүүнү False деп коет
  2. Twilio Cookies жана Flask Sessions колдонуу - Cookie файлдары жана Flask Sessions "Карантиндик Иш -аракеттерди Сунуштоо" суб -менюсунда, статустукту ишке ашыруу үчүн колдонулат, интернеттеги бардык веб -тиркемелер ушул күндөрү колдонот, бирок колдонуучу атыңыз сыяктуу нерселерди эстеп калуунун ордуна. же эсепке ал эки сандын айлануусун эстейт. Эгерде сизге бул бөлүк боюнча көбүрөөк маалымат керек болсо, мен Twilio командасы тарабынан жазылган Twilio Cookies файлдары боюнча бул эң сонун көрсөтмөнү окууну сунуштадым.

Келечектеги жакшыртуулар:

  1. Python жана Design Patternsтин объектке багыттуулугун колдонуп, коддордун архитектурасын жана DRYnessти жакшыртыңыз
  2. Глобалдык өзгөрмөлөрдү алып салуу
  3. Error Handling жакшыртылышы мүмкүн
  4. Жүгөрү жана Twilio CLI аркылуу ngrok дарегин автоматтык түрдө жаңыртуу
  5. Code Documentation

7 -кадам: Акыркы эскертүүлөр

Бул долбоор баарыңыздарга жагат деп ишенем. Бул менин биринчи үйрөткүчүм, андыктан бир нерсе түшүнүксүз болсо же кошумча түшүндүрмөгө муктаж болсо, комментарий бөлүмүндө мага билдирип кой, мен сага жардам бере алам. Ошондой эле, эгер сиз бул долбоорду башка техника же өзгөчөлүктөр тизмеси менен түзсөңүз, аны баары бөлүшөт

Сунушталууда: