Nothing Prevents Misery

    perspective-api-client

    3.1.0 • Public • Published

    perspective-api-client

    Current Version Build Status

    Node.js client library for the Perspective API.

    Install

    $ npm install perspective-api-client
    

    Usage

    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

    Install

    npm i perspective-api-client

    DownloadsWeekly Downloads

    1,375

    Version

    3.1.0

    License

    MIT

    Unpacked Size

    11 kB

    Total Files

    5

    Last publish

    Collaborators

    • sloria