Proyecto que implementa una api rest que consume los servicios de google cloud vision para el análisis de imágenes. Desarrollado con nodejs y desplegado en kebernetes de google cloud.
HTTP POST http://35.238.97.163/objects
HTTP POST http://35.238.97.163/explicit
git clone https://github.com/jramirezneira/googlevisiontest.git
cd googlevisiontest
gcloud auth configure-docker
docker build -t gcr.io/[PROJECT_ID]/app:v1 . //reemplazar [PROJECT_ID] por el id del proyecto en google cloud
docker push gcr.io/[PROJECT_ID]/app:v1 //reemplazar [PROJECT_ID] por el id del proyecto en google cloud
kubectl apply -f deployment.yaml --record
kubectl get services
Funciones JS ES6 (server.js) de la api que procesan las peticiones POST para el análisis de imagenes:
app.post("/objects", upload.single('uploads'), function (req, res) {
const currentFile = req.file.path;
console.log(currentFile);
const request = {
source: {
filename: currentFile
}
};
vision.labelDetection(request)
.then((results) => {
const objects = results[0].labelAnnotations;
//console.log('objects:');
//objects.forEach((object) => console.log(object.description));
unlinkAsync(req.file.path);
res.send(objects);
})
.catch((err) => {
console.error('ERROR:', err);
res.send("ERROR");
});
});
app.post("/explicit", upload.single('uploads'), function (req, res) {
const currentFile = req.file.path;
console.log(req.file.path);
const request = {
source: {
filename: currentFile
}
};
vision.safeSearchDetection(request)
.then((results) => {
const objects = results[0].safeSearchAnnotation;
//console.log(objects);
unlinkAsync(req.file.path);
res.send(objects);
})
.catch((err) => {
console.error('ERROR:', err);
res.send("ERROR");
});
});