imseldrith's picture
Duplicate from CVPR/ml-talking-face
91644ae
from googleapiclient import discovery
import argparse
import json
import os
API_KEY = os.environ['PERSPECTIVE_API_KEY']
class PerspectiveAPI:
def __init__(self):
self.client = discovery.build(
"commentanalyzer",
"v1alpha1",
developerKey=API_KEY,
discoveryServiceUrl="https://commentanalyzer.googleapis.com/$discovery/rest?version=v1alpha1",
static_discovery=False,
)
@staticmethod
def _get_request(text):
return {
'comment': {'text': text},
'requestedAttributes': {'TOXICITY': {}}
}
def _infer(self, text):
request = self._get_request(text)
response = self.client.comments().analyze(body=request).execute()
return response
def infer(self, text):
return self._infer(text)
def get_score(self, text, label='TOXICITY'):
response = self._infer(text)
return response['attributeScores'][label]['spanScores'][0]['score']['value']
def parse_args():
parser = argparse.ArgumentParser(
description='Perspective API Test.')
parser.add_argument('-i', '--input-text', type=str, required=True)
args = parser.parse_args()
return args
if __name__ == '__main__':
args = parse_args()
perspective_api = PerspectiveAPI()
score = perspective_api.get_score(args.input_text)
print(score)