@nuclia/protobuf
v1.2.3
Published
JavaScript utility to handle Nuclia protobuffer messages
Downloads
23
Readme
@nuclia/protobuf
JavaScript utility to handle Nuclia protobuffer messages.
Functions
NucliaProtobufConverteris a function accepting a buffer and returning a Promise that resolves to a parsed protobuffer message.extractParagraphTextsis a function adding to each Paragraph object atextattribute containing the actual text of the paragraph (by default, Paragraph objects only contain the position of their first and last characters).
Installation
npm install @nuclia/protobufor
yarn add @nuclia/protobufUsage
When using a webhook with the Nuclia Understanding API, the message sent to the webhook is a protobuffer message. It can be decoded using the NucliaProtobufConverter.
import { NucliaProtobufConverter } from '@nuclia/protobuf';
router.post('/handle', (request, response) => {
NucliaProtobufConverter(request.body).then((message) => {
console.log(message);
});
});When calling Nuclia Understanding API /pull endpoint, you get a JSON message containing a payload entry with base64 encoded protobuffer message. Processing it could be done as follows:
import { NucliaProtobufConverter } from '@nuclia/protobuf';
import fetch from 'node-fetch';
fetch('https://europe-1.nuclia.cloud/api/v1/processing/pull', {
headers: {
'x-stf-nuakey': `Bearer ${NUA_KEY}`,
'content-type': 'application/json',
},
method: 'GET',
})
.then((res) => res.json())
.then((data) => {
if (data.status === 'ok' && data.payload) {
return NucliaProtobufConverter(Buffer.from(data.payload, 'base64'));
} else {
return data;
}
})
.then((res) => console.log(res));To get paragraphs text, you can use the extractParagraphTexts function:
import { NucliaProtobufConverter, extractParagraphTexts } from '@nuclia/protobuf';
router.post('/handle', (request, response) => {
NucliaProtobufConverter(request.body).then((message) => {
console.log(extractParagraphTexts(message).fieldMetadata[0].metadata.metadata.paragraphs);
});
});