def distortion_correct_aksk(_ak, _sk, image, url, correction=True): endpoint = utils.get_endpoint(ais.AisService.MODERATION_SERVICE) _url = 'https://%s/v1.0/moderation/image/distortion-correct' % endpoint sig = signer.Signer() sig.AppKey = _ak sig.AppSecret = _sk if sys.version_info.major >= 3: if image: image = image.decode("utf-8") _data = {"image": image, "url": url, "correction": correction} kreq = signer.HttpRequest() kreq.scheme = "https" kreq.host = endpoint kreq.uri = "/v1.0/moderation/image/distortion-correct" kreq.method = "POST" kreq.headers = {"Content-Type": "application/json"} kreq.body = json.dumps(_data) status_code, resp = utils.request_aksk(sig, kreq, _url) if sys.version_info.major < 3: return resp else: return resp.decode('utf-8')
def image_content_batch_aksk(_ak, _sk, urls, categories=None, threshold=None): endpoint = utils.get_endpoint(ais.AisService.MODERATION_SERVICE) _url = 'https://%s/v1.0/moderation/image/batch' % endpoint sig = signer.Signer() sig.AppKey = _ak sig.AppSecret = _sk _data = { "urls": urls, "categories": categories, "threshold": threshold, } kreq = signer.HttpRequest() kreq.scheme = "https" kreq.host = endpoint kreq.uri = "/v1.0/moderation/image/batch" kreq.method = "POST" kreq.headers = {"Content-Type": "application/json"} kreq.body = json.dumps(_data) status_code, resp = utils.request_aksk(sig, kreq, _url) if sys.version_info.major < 3: return resp else: return resp.decode('utf-8')
def moderation_video_aksk(_ak, _sk, url, frame_interval=5, categories=['politics', 'terrorism']): sig = signer.Signer() sig.AppKey = _ak sig.AppSecret = _sk endpoint = utils.get_endpoint(ais.AisService.MODERATION_SERVICE) status, r = _moderation_video_aksk(endpoint, sig, url, frame_interval, categories) if status != 200: return r submit_result = json.loads(r) job_id = submit_result['result'].get('job_id', '') #print "Process job id is :", job_id time.sleep(1.0) retry_times = 0 try: while True: status, r = _get_result_aksk(endpoint, sig, job_id) if status != 200: if retry_times < _RETRY_TIMES: retry_times += 1 time.sleep(2.0) continue else: return r rec_result = json.loads(r) process_status = rec_result["result"].get('status') if process_status == 'failed': return r elif process_status == 'finish': return r # # process_status == 0 || process_status == 1 # else: time.sleep(2.0) continue except Exception: return ''
def moderation_image_aksk(_ak, _sk, image, url, categories=None, threshold=None, moderation_rule="default"): endpoint = utils.get_endpoint(ais.AisService.MODERATION_SERVICE) _url = 'https://%s/v1.0/moderation/image' % endpoint sig = signer.Signer() sig.AppKey = _ak sig.AppSecret = _sk if sys.version_info.major >= 3: if image: image = image.decode("utf-8") _data = { "image": image, "url": url, "categories": categories, "threshold": threshold, "moderation_rule": moderation_rule } kreq = signer.HttpRequest() kreq.scheme = "https" kreq.host = endpoint kreq.uri = "/v1.0/moderation/image" kreq.method = "POST" kreq.headers = {"Content-Type": "application/json"} kreq.body = json.dumps(_data) status_code, resp = utils.request_aksk(sig, kreq, _url) if sys.version_info.major < 3: return resp else: return resp.decode('utf-8')
def moderation_text_aksk( _ak, _sk, text, type='content', categories=["ad", "politics", "p**n", "abuse", "contraband", "flood"]): endpoint = utils.get_endpoint(ais.AisService.MODERATION_SERVICE) _url = 'https://%s/v1.0/moderation/text' % endpoint sig = signer.Signer() sig.AppKey = _ak sig.AppSecret = _sk _data = { "categories": categories, # 检测场景 Array politics:涉政 p**n:涉黄 ad:广告 abuse:辱骂 contraband:违禁品 flood:灌水 "items": [{ "text": text, "type": type } # items: 待检测的文本列表 text 待检测文本 type 文本类型 ] } kreq = signer.HttpRequest() kreq.scheme = "https" kreq.host = endpoint kreq.uri = "/v1.0/moderation/text" kreq.method = "POST" kreq.headers = {"Content-Type": "application/json"} kreq.body = json.dumps(_data) status_code, resp = utils.request_aksk(sig, kreq, _url) if sys.version_info.major < 3: return resp.decode('unicode-escape').encode('utf-8') else: return resp.decode('unicode_escape')