Package Exports
- perspective-api-client
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (perspective-api-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
perspective-api-client
Node.js client library for the Perspective API.
Install
$ npm install perspective-api-clientUsage
const Perspective = require('perspective-api-client');
const perspective = new Perspective({apiKey: process.env.PERSPECTIVE_API_KEY});
(async () => {
const text = 'you empty-headed animal food trough wiper!';
const result = await perspective.analyze(text);
console.log(JSON.stringify(result, null, 2));
})();
// {
// "attributeScores": {
// "TOXICITY": {
// "spanScores": [
// {
// "begin": 0,
// "end": 42,
// "score": {
// "value": 0.77587414,
// "type": "PROBABILITY"
// }
// }
// ],
// "summaryScore": {
// "value": 0.77587414,
// "type": "PROBABILITY"
// }
// }
// },
// "languages": [
// "en"
// ]
// }Specifying models
The TOXICITY model is used by default. To specify additional models,
pass options.attributes.
(async () => {
const text = 'fools!';
const result = await perspective.analyze(text, {attributes: ['unsubstantial', 'spam']});
console.log(JSON.stringify(result, null, 2));
})();
// {
// "attributeScores": {
// "UNSUBSTANTIAL": {
// "spanScores": [
// {
// "begin": 0,
// "end": 6,
// "score": {
// "value": 0.9592708,
// "type": "PROBABILITY"
// }
// }
// ],
// "summaryScore": {
// "value": 0.9592708,
// "type": "PROBABILITY"
// }
// },
// "SPAM": {
// "spanScores": [
// {
// "begin": 0,
// "end": 6,
// "score": {
// "value": 0.008744183,
// "type": "PROBABILITY"
// }
// }
// ],
// "summaryScore": {
// "value": 0.008744183,
// "type": "PROBABILITY"
// }
// }
// },
// "languages": [
// "en"
// ]
// }More options
You can also pass an AnalyzeComment object for more control over the request.
(async () => {
const text = 'you empty-headed animal food trough wiper!';
const result = await perspective.analyze({
comment: {text},
requestedAttributes: {TOXICITY: {scoreThreshold: 0.7}},
});
console.log(JSON.stringify(result, null, 2));
})();
// {
// "attributeScores": {
// "TOXICITY": {
// "spanScores": [
// {
// "begin": 0,
// "end": 42,
// "score": {
// "value": 0.77587414,
// "type": "PROBABILITY"
// }
// }
// ],
// "summaryScore": {
// "value": 0.77587414,
// "type": "PROBABILITY"
// }
// }
// },
// "languages": [
// "en"
// ]
// }API
perspective = new Perspective()
analyze(text, [options])
text
Type: String or Object
Either the text to analyze or an AnalyzeComment object. HTML tags will be stripped by default.
options
attributes
Type: Array or Object
Model names to analyze. TOXICITY is analyzed by default. If passing an Array of names, the names may be lowercased.
See https://github.com/conversationai/perspectiveapi/blob/master/api_reference.md#models
for a list of valid models.
doNotStore
Type: Boolean
Default: true
If true, prevent API from storing comment and context from this request.
stripHTML
Type: Boolean
Default: true
Whether to strip HTML tags from the text.
truncate
Type: Boolean
Default: false
If true, truncate text to the first 20480 characters (max length
allowed by the Perspective API).
FAQ
How does this compare to @conversationai/perspectiveapi-js-client?
Similarities:
- Exposes the AnalyzeComment endpoint of the Perspective API
- Strips HTML tags by default
Differences:
- Returns full responses (rather than only returning summary scores)
- Exposes all AnalyzeComment options
- Supports all Node.js LTS versions
License
MIT © Steven Loria