Skip to content

Commit

Permalink
added clarifai
Browse files Browse the repository at this point in the history
  • Loading branch information
diegodoval committed Jan 13, 2017
1 parent 61f59e7 commit 93899c0
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 6 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ GOOGLE_NLP_API_KEY=<API KEY>
GOOGLE_CLOUD_PRIVATE_KEY="<key>"
GOOGLE_CLOUD_EMAIL="[email protected]"

# Clarifai
CLARIFAI_CLIENT_ID=<token>
CLARIFAI_CLIENT_SECRET=<secret>

# Recast.ai
RECAST_AI_TOKEN=<token>

Expand Down
4 changes: 4 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -270,13 +270,17 @@ googleAPI.addService(languageAnalysisCommonServiceInfo, LanguageAnalysis.googleL

googleAPI.addService(imageAnalysisCommonServiceInfo, ImageAnalysis.googleImageAnalysisAPIPack, apiAddCompletion);

var clarifaiAPI = NXAPIPacks.connector.apiForId("clarifai");
clarifaiAPI.addService(imageAnalysisCommonServiceInfo, ImageAnalysis.clarifaiImageAnalysisAPIPack, apiAddCompletion);

var msAzureAPI = NXAPIPacks.connector.apiForId("ms-azure");

msAzureAPI.addService(sentimentAnalysisCommonServiceInfo, SentimentAnalysis.msAzureSentimentAnalysisAPIPack, apiAddCompletion);
msAzureAPI.addService(entityAnalysisCommonServiceInfo, EntityAnalysis.msAzureEntityAnalysisAPIPack, apiAddCompletion);
msAzureAPI.addService(languageAnalysisCommonServiceInfo, LanguageAnalysis.msAzureLangAnalysisAPIPack, apiAddCompletion);



var recastAIAPI = NXAPIPacks.connector.apiForId("recast-ai");
recastAIAPI.addService(entityAnalysisCommonServiceInfo, EntityAnalysis.recastaiEntityAPIPack, apiAddCompletion);

Expand Down
70 changes: 70 additions & 0 deletions lib/image-analysis.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,73 @@ var googleImageAnalysisAPIPack = function(apiInfo, packType) {
};

exports.googleImageAnalysisAPIPack = googleImageAnalysisAPIPack;


//Clarifai
var Clarifai = require('clarifai');

var clarifaiImageAnalysisAPIPack = function(apiInfo, packType) {

var entitypack = new NXAPIPacks.NXAPIPack(apiInfo, packType);

entitypack.setAPIFunctionInitialize(function(serverPack, req, res, baseAPIResponse) {

var image = req.body.image;

if (image != undefined && image.dataURI != undefined) {

baseAPIResponse.inputDataPresent = "true";
// baseAPIResponse.image = image;

var clarifaiClient = new Clarifai.App(
process.env.CLARIFAI_CLIENT_ID,
process.env.CLARIFAI_CLIENT_SECRET
);


serverPack.clarifaiClient = clarifaiClient;


serverPack.parameters = {
// language: language,
image: image
// config: config
};


serverPack.setReady(true);
} else {
baseAPIResponse.error = "Error processing input data.";
}

});

entitypack.setAPIFunctionExecute(function(serverPack, apiResponse, completion) {



var base64Str = NXIMage.base64StringFromJsonImage(serverPack.parameters.image);

serverPack.clarifaiClient.models
.predict(Clarifai.GENERAL_MODEL, base64Str).then(
function(response) {
if (response.outputs.length > 0 && response.outputs[0].data.concepts != undefined) {
apiResponse.result.score = response.outputs[0].data.concepts.length;
}
apiResponse.serverResponse = response;
completion(apiResponse);
},
function(err) {
apiResponse.serverResponse = err;
completion(apiResponse);
}
);



});

return entitypack;
};

exports.clarifaiImageAnalysisAPIPack = clarifaiImageAnalysisAPIPack;
13 changes: 7 additions & 6 deletions lib/nx/image2json.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,15 @@
return tmpPath;
}

function bufferFromJsonImage(image) {

function base64StringFromJsonImage(image) {
var dataURI = image.dataURI.replace(/\r?\n/g, '');
// split the URI up into the "metadata" and the "data" portions
var pos = dataURI.indexOf(',');
var data = unescape(dataURI.substring(pos + 1));
return data;
}



function bufferFromJsonImage(image) {
var data = base64StringFromJsonImage(image);
var buf = new Buffer(data, 'base64');
return buf;
}
Expand Down Expand Up @@ -82,7 +82,8 @@
exportImageFileToTempJSON : exportImageFileToTempJSON,
jsonImageFromFile: jsonImageFromFile,
jsonImageFromBinaryBuffer: jsonImageFromBinaryBuffer,
bufferFromJsonImage: bufferFromJsonImage
bufferFromJsonImage: bufferFromJsonImage,
base64StringFromJsonImage: base64StringFromJsonImage
};

}();
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"apiai": "^3.0.3",
"apicache": "^0.7.2",
"body-parser": "1.15.2",
"clarifai": "^2.1.0-dev",
"cognitive-services": "0.1.0",
"compressible": "^2.0.9",
"compression": "^1.6.2",
Expand Down
10 changes: 10 additions & 0 deletions public/data/services/apis/clarifai.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"id" : "clarifai",
"provider": "Clarifai",
"name": "Clarifai",
"providerUrl": "https://www.clarifai.com",
"consoleUrl": "https://developer.clarifai.com/",
"officialGithubURL": "https://github.com/Clarifai",
"unofficialGithubURL": "",
"description": "Artificial Intelligence with a Vision. Build amazing apps with the world’s best image and video recognition API."
}

0 comments on commit 93899c0

Please sign in to comment.