Azure表单识别器错误发出请求时出现错误

2024-10-06 07:35:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图遵循此文档了解表单识别器API, 特别是确认收据的示例:

https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/quickstarts/client-library?pivots=programming-language-python&tabs=windows

我正在尝试以下代码:

import sys
import logging
from azure.ai.formrecognizer import FormRecognizerClient
from azure.core.credentials import AzureKeyCredential
import os
import azure.ai.formrecognizer

endpoint = r"https://form-recognizer-XXXXX-test.cognitiveservices.azure.com/"
form_recognizer_client = FormRecognizerClient(endpoint=endpoint, credential="XXXXXXXXX")
receiptUrl = "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/master/sdk/formrecognizer/azure-ai-formrecognizer/tests/sample_forms/receipt/contoso-receipt.png"

poller = form_recognizer_client.begin_recognize_receipts_from_url(receiptUrl)
receipts = poller.result()

得到这个错误:

    request.http_request.headers[self._name] = self._credential.key

AttributeError: 'str' object has no attribute 'key'

我看到的区别是,在示例中,端点和键被称为类的属性:

form_recognizer_client = FormRecognizerClient(endpoint=self.endpoint, credential=AzureKeyCredential(self.key))

但我不知道“self.”从何而来,也不知道该值如何不是字符串


Tags: keyfromhttpsimportselfformcomclient
1条回答
网友
1楼 · 发布于 2024-10-06 07:35:08

我同意quickstart中有点不清楚该密钥来自何处。在本例中,API键被设置为类变量(self来自于类变量),但您不需要这样做来让代码正常工作

要成功进行身份验证,字符串API密钥“XXXXXXXXX”必须包装在凭证类AzureKeyCredential中。我已在下面更新了您的代码以执行此操作,请让我知道它是否适用于您:

import sys
import logging
from azure.ai.formrecognizer import FormRecognizerClient
from azure.core.credentials import AzureKeyCredential
import os
import azure.ai.formrecognizer

endpoint = r"https://form-recognizer-XXXXX-test.cognitiveservices.azure.com/"
form_recognizer_client = FormRecognizerClient(endpoint=endpoint, 
    credential=AzureKeyCredential("XXXXXXXXX"))
receiptUrl = "https://raw.githubusercontent.com/Azure/azure-sdk-for- 
    python/master/sdk/formrecognizer/azure-ai- 
    formrecognizer/tests/sample_forms/receipt/contoso-receipt.png"

poller = form_recognizer_client.begin_recognize_receipts_from_url(receiptUrl)
receipts = poller.result()

相关问题 更多 >