@nuclia/protobuf
v1.2.3
Published
JavaScript utility to handle Nuclia protobuffer messages
Downloads
17
Readme
@nuclia/protobuf
JavaScript utility to handle Nuclia protobuffer messages.
Functions
NucliaProtobufConverter
is a function accepting a buffer and returning a Promise that resolves to a parsed protobuffer message.extractParagraphTexts
is a function adding to each Paragraph object atext
attribute 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/protobuf
or
yarn add @nuclia/protobuf
Usage
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);
});
});