Mašīnu pieaugums: AI reālās pasaules lietojumi
Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.
Šajā apmācībā jūs uzzināsit, kā iestatīt pilnīgu RESTful API, kas apkalpos HTTP pieprasījumus, izmantojot Node.js un Express, vienlaikus veicot apgriezto starpniekserveri, izmantojot NGINX, Ubuntu 16.04 LTS. Mēs izmantosim lietojumprogrammu Pastnieks, ļoti labi zināms API izstrādes rīks, lai pārbaudītu mūsu API un pārliecinātos, ka tā ir pilnībā funkcionāla un darbojas pareizi. Node.js ir ātrs, vairāku platformu JavaScript ietvars, kura pamatā ir Chrome V8 dzinējs. To izmanto gan darbvirsmas, gan serveru lietojumprogrammās, un tas ir slavens ar viena pavediena notikumu cilpas apstrādi. Mēs izmantosim Node.js kā aizmugursistēmu mūsu RESTful API, kas ir komplektā ar Express.js — mūsu tīmekļa lietojumprogrammu ietvaru, kas izveidots Node.js. Express.js tiek izlaists kā bezmaksas un atvērta programmatūra. Express ir servera puses, rakstīts JavaScript, un ir paredzēts API veidošanai, tāpēc tas ir lieliski piemērots mūsu projektam. No otras puses, Postman ir ļoti jaudīgs HTTP klients, ņemot vērā API attīstību. Tajā ir visi rīki, kurus jūs varētu vēlēties API izstrādei.
Pirmkārt, jūs vēlaties doties uz Postman vietni un lejupielādēt un instalēt Postman galvenajam datoram (nevis jūsu serverim). Visas instalēšanas instrukcijas būs viņu vietnē.
Lai sāktu, mums vispirms būs jāinstalē Node.js, lai mēs varētu sākt izstrādāt mūsu API. Mēs lejupielādēsim un instalēsim Node.js no oficiālās vietnes.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Turklāt vēlēsities paķert arī nepieciešamos veidošanas rīkus, kas noderēs moduļu apkopošanā.
sudo apt-get install build-essential
Šajā apmācībā mēs izmantosim Node.js LTS versiju, kas ir versija 8.9.3.
Mums būs jāinicializē jauns Node.js projekts, kurā būs lietojumprogramma. Lai to izdarītu, izveidojiet jaunu direktoriju.
mkdir expressapi
Mainiet uz jauno direktoriju. Kad esat iekšā, palaidiet npm initun izpildiet visas nepieciešamās uzvednes. Ņemiet vērā savas lietojumprogrammas "ieejas punktu": šo failu izveidosit vēlāk. Kad esat pabeidzis, jūs redzēsiet package.jsonfailu pašreizējā direktorijā. Tas darbojas kā mūsu projekta apraksts, un tajā ir uzskaitītas visas funkcionēšanai nepieciešamās atkarības.
Tagad mēs konfigurēsim Express.js un tā atkarības.
npm install express
Sāksies instalēšanas process. Paies dažas minūtes, līdz viss tiks lejupielādēts.
Tālāk mēs izveidosim mūsu API galveno sākuma failu. Šeit jūs izmantosit package.jsonfailā redzēto "ieejas punktu" . Šīs apmācības nolūkos es izmantošu noklusējuma nosaukumu shēmu index.js.
touch index.js
Pēc tam atveriet to nano teksta redaktorā.
nano index.js
Mūsu galvenajā failā mēs vispirms vēlamies izsaukt visas mūsu galvenās pakotnes un reģistrēt savus maršrutus.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
const router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'API is Online!' });
});
app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);
Būtībā tas, ko mēs šeit darām, ir mūsu lietotnes inicializācija un pamata maršrutētāja iestatīšana mūsu API. Ņemiet vērā, ka mēs iestatījām mūsu lietojumprogrammas portu uz 8080. Šis numurs mums būs nepieciešams, kad konfigurēsim mūsu RESTful API. Tagad mēs esam gatavi iet uz priekšu un pārbaudīt mūsu API.
Projekta direktorijā izpildiet tālāk norādīto.
node <filename>.js
Tas sāks API, kur <filename>atrodas failā norādītais sākuma package.jsonfails. Pēc tam savā datorā/Mac datorā atveriet Postman un Newaugšējā labajā stūrī noklikšķiniet uz pogas " Request" , pēc tam noklikšķiniet uz " ". Atrodoties tur, jums vajadzētu redzēt joslu ar uzrakstu " GET" blakus tai. Šeit mēs ievadīsim mūsu pieprasījuma URL. Vienkārši ievadiet tālāk norādīto pieprasījuma URL sadaļā un noklikšķiniet uz " Send".
`http://your-server-ip:3000/api`
Jūs redzēsit " 'API is online'".
Lai apstrādātu maršrutus, mēs izmantosim Express maršrutētāju. Ja nezināt, kas ir maršrutētājs, būtībā tas ir tas, kā lietojumprogrammu galapunkti reaģē uz klientu pieprasījumiem. Šeit ir norādīti maršruti, kurus mēs izveidosim kā piemēru:
/api/numbers - Parāda visus skaitļus no 1 līdz 10.
/api/letters - Parāda visus burtus no AZ.
Tagad mēs izveidosim savu pirmo maršruta starpprogrammatūras struktūru, piemēram, tā.
router.use(function(req, res, next) {
console.log('We've got something.');
next() //calls next middleware in the application.
});
router.route('/numbers/:number').get((req, res) => {
res.json({result: req.params.number + 1})
});
Šajā piemērā mēs izveidojām situāciju, kurā lietotājs var pieprasīt skaitļa + 1 summu, norādot tā vārda formu, izmantojot GET metodi. Mēs izmantojam router.route()funkciju, lai norādītu uz numuru, kuru mēs vēlamies nosūtīt atpakaļ. Parametri ir nosaukti ar " :" pirms tiem. Mēs piekļūstam šiem parametriem, izmantojot req.params.
Šeit ir piemērs ar burtiem.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
Mēs izmantojam to pašu metodi, kas norādīta iepriekš, taču mēs nosūtām vēstuli atpakaļ ar lielo burtu.
NGINX ir plaši pazīstama atvērtā pirmkoda programmatūra, ko izmanto tīmekļa apkalpošanai, reversajiem starpniekserveriem, straumēšanai un citam. Mēs izmantosim NGINX, lai mainītu mūsu API starpniekserveri, lai mēs varētu to palaist portā 80, jo Node.js neļauj izveidot savienojumus portos, kas ir mazāki par 1024 bez root piekļuves. Tas var noderēt, saistot domēnu ar serveri.
Lai sāktu NGINX instalēšanu, terminālī būs jāpalaiž tālāk norādītā darbība un jāgaida, līdz instalēšana tiks pabeigta.
sudo apt-get install nginx
Tālāk mēs vēlēsimies izveidot mūsu vietnes failu, ko NGINX izmantos, lai mainītu mūsu lietotnes starpniekserveri.
sudo nano /etc/nginx/sites-available-api.js
Aizpildiet failu ar tālāk norādīto, pēc tam — CTRL+, Olai to saglabātu.
server {
listen 80;
location / {
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host
$http_host;
proxy_set_header
X-NginX-Proxy true; proxy_pass
http://127.0.0.1:8080/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade
$http_upgrade;
proxy_set_header Connection
"upgrade";
proxy_redirect off;
proxy_set_header
X-Forwarded-Proto $scheme;
}
}
Izmantojot to pašu portu, kurā mēs palaidām savu lietojumprogrammu iepriekš, mēs sakām Nginx novirzīt visus pieprasījumus no mūsu IP adreses portā 80uz mūsu API, kas darbojas portā 8080.
Pēc tam iespējojiet apgriezto starpniekserveri, simsaitijot mūsu jaunizveidoto failu ar sites-availablemapi:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
Tas nodrošinās, ka NGINX mainīs mūsu API starpniekserveri.
Kad būsim pabeiguši NGINX konfigurāciju, mēs startēsim NGINX, pēc tam sāksim mūsu API. Pirmkārt, restartējiet NGINX.
sudo systemctl restart nginx
Pēc tam atgriezieties savā API direktorijā un sāciet to.
node <filename>.js
Lietojumprogramma darbosies portā 80. Vienkārši palaidiet testu no augšas ar Postman, lai pārliecinātos, ka viss darbojas pareizi.
Ražošanas vidē vēlaties pārliecināties, vai jūsu Node lietojumprogrammām ir procesa pārvaldnieks, lai nodrošinātu, ka tās pastāvīgi darbojas fonā. Šajā apmācībā mēs izmantosim procesu pārvaldnieku ar nosaukumu PM2 (Process Manager 2), kas ir procesa pārvaldnieks Node.js lietojumprogrammām, kas nodrošinās to darbību mūžīgi ar minimālu dīkstāves laiku. PM2 ir aprīkots ar daudziem noderīgiem pārvaldības rīkiem, piemēram, apturēšanu, atkārtotu ielādi, pauzi un citiem. Lai instalētu PM2, ierakstiet tālāk norādīto un gaidiet, līdz tas tiek instalēts.
sudo npm install pm2 -g
Kad tā ir instalēta, jums tikai jāpārliecinās, ka atrodaties projekta direktorijā, ierakstiet tālāk norādīto, un lietojumprogramma tiks startēta.
pm2 start <filename>.js
Kā minēts iepriekš, PM2 ir daži noderīgi rīki, kurus varat izmantot, lai labāk pārvaldītu savu lietojumprogrammu.
pm2 stop- Kā norāda nosaukums, tas ļauj apturēt pašlaik darbojošos lietojumprogrammu un apturēt tās procesu. Ja jūsu lietojumprogramma rada negaidītu rezultātu, noderēs tās apturēšana.
pm2 list- Saraksta funkcija ļauj skatīt visas pašlaik darbojošās lietojumprogrammas, izmantojot PM2, kartētas pēc to nosaukumiem. Ja vēlaties ātri pārbaudīt lietojumprogrammas darbības laiku, izmantojiet šo rīku.
pm2 restart- Ja jūsu lietojumprogramma kāda iemesla dēļ sasalst un vēlaties to atkārtoti ielādēt, pm2 restart to dara. Tas apturēs pieteikšanās procesu un atsāks to no jauna, izmantojot citu procesu.
pm2 monit- PM2 iebūvētais monitora rīks ļauj skatīt diagrammu ar jūsu lietojumprogrammas specifiskajām detaļām, piemēram, CPU/RAM lietojumu, lietotājam draudzīgā ncurses stila diagrammā. Tas ir noderīgi, ja vēlaties vizuālu priekšstatu par jūsu lietojumprogrammas slodzi.
Mēs esam pabeiguši savu uzdevumu izveidot RESTful API, izmantojot Node.js, Express un apgriezto starpniekserveri, izmantojot NGINX. Jūtieties brīvi paplašināt šo apmācību. Izmantojot jauno API, varat paveikt daudzas lieliskas lietas, piemēram, pievienot autentifikācijas metodes, datubāzi, labāku maršrutu un kļūdu apstrādi un daudz ko citu. Ja jums ir domēns ar “A” ierakstu, kas jau ir iestatīts jūsu IP adresē, varēsit piekļūt savai API no sava domēna. Ja vēlaties uzzināt vairāk par Express.js, apmeklējiet viņu vietni http://expressjs.com . Lai uzzinātu vairāk par NGINX un apgriezto starpniekserveri, apmeklējiet vietni http://nginx.com . Lai uzzinātu vairāk par PM2, apmeklējiet viņu lapu http://pm2.keymetrics.io .
Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.
Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.
Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.
Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.
Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…
Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.
Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.
Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.
Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.
Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk