0

我仔细阅读了一些东西。现在编写另一个代码。一切都很好,除了一个错误。我已将 config.py 和 util.py 放在类似的文件夹中,并在 config.py 中设置了我的“key”和“url”。我不明白为什么会出现这个错误?

回溯(最近一次调用最后一次):文件“a_similar1.py”,第 40 行,在 find_similars(face_id,face_list_id,max_candidates_return,模式)文件“a_similar1.py”,第 37 行,在 find_similars return util.request('POST', url, json=jsonb) 文件“/home/afshan/Microsoft_Azure/phase_1/Cognitive-Face-Python/cognitive_face/util.py”,第 106 行,在请求中 error_msg.get('message')) util.CognitiveFaceException: Error when调用认知面部 API:status_code:404 代码:ResourceNotFound 消息:未找到请求的资源。

util.py 的行是:

# Setup the headers with default Content-Type and Subscription Key.
    headers = headers or {}
    if 'Content-Type' not in headers:
        headers['Content-Type'] = 'application/json'
    #headers['Ocp-Apim-Subscription-Key'] = Key.get()
    headers['Ocp-Apim-Subscription-Key'] = 'd7c5495c64a44bc692761cd7c45ad56e'

    response = requests.request(
        method,
        url,
        params=params,
        data=data,
        json=json,
        headers=headers)

代码是:

import util
import uuid
import unittest

import cognitive_face as CF

face_id = None
face_list_id = None
max_candidates_return = None
mode = None

CF.Key.set('d7c5495c64a44bc692761cd7c45ad56e')
CF.BaseUrl.set('https://southeastasia.api.cognitive.microsoft.com/face/v1.0/')

def find_similars(face_id, face_list_id, max_candidates_return, mode):

    #face_id='5a27b8c3-f340-4559-baa3-a8dc770c5078', 
    face_id='bd930ddb-7f1d-4693-875d-3126a678dd68',
    face_list_id='ef799940-1305-11e9-bec1-080027226cb7', 
    max_candidates_return=100,
    mode='matchPerson'

    url = 'https://southeastasia.api.cognitive.microsoft.com/face/v1.0/'
    jsonb = {
    'faceId': face_id,
    'faceListId': face_list_id,
    'maxNumOfCandidatesReturned': max_candidates_return,
    'mode': mode,
    }

    return util.request('POST', url, json=jsonb) 


find_similars(face_id, face_list_id, max_candidates_return, mode)
4

1 回答 1

0

您将以下内容作为有效负载传递:

payload = {'faceId': '5a27b8c3-f340-4559-baa3-a8dc770c5078', 'faceIds': 'ef799940-1305-11e9-bec1-080027226cb7', 'maxNumOfCandidatesReturned': 20, 'mode': "matchPerson"}

正如文档所述

faceIds (Array):候选faceIds的数组。它们都是由 Face - Detect 创建的,faceId 将在检测调用后 24 小时过期。faceIds的数量限制为1000个。参数faceListId、largeFaceListId和faceIds不能同时提供

这里你没有传入一个数组faceIds,它应该如下所示:

payload = {'faceId': '5a27b8c3-f340-4559-baa3-a8dc770c5078', 'faceIds': ['ef799940-1305-11e9-bec1-080027226cb7'], 'maxNumOfCandidatesReturned': 20, 'mode': "matchPerson"}

编辑您的问题后

您添加了以下错误:

util.CognitiveFaceException: Error when calling Cognitive Face API: status_code: 404 code: ResourceNotFound message: The requested resource was not found.

你得到的错误是 404,所以调用的 Url 是错误的。你应该打电话https://[location].api.cognitive.microsoft.com/face/v1.0/findsimilars,在这里你只打电话给 root https://[location].api.cognitive.microsoft.com/face/v1.0。修复网址

于 2019-01-08T10:32:39.440 回答