AttributeError: объект 'str' не имеет атрибута 'get_token' в Python при использовании векторного поиска Azure Cognitive Search
Я пытаюсь выполнить векторный поиск с помощью Когнитивного поиска Azure в Python. Это мой код:
query = "What are the advantages of an open-source ai model?"
search_client = SearchClient(AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT, AZURE_COGNITIVE_SEARCH_INDEX_NAME, credential=AZURE_COGNITIVE_SEARCH_API_KEY)
vector_query = VectorizableTextQuery(text=query, k=3, fields="content_vector")
results = search_client.search(
search_text=None,
vector_queries= [vector_query],
select=["title", "content_vector", "metadata"],
)
for result in results:
print(result)
Но это вызывает у меня следующую ошибку:
AttributeError Traceback (most recent call last)
<ipython-input-32-a8dbad346de2> in <cell line: 16>()
14 print(results)
15
---> 16 for result in results:
17 print(result)
14 frames
/usr/local/lib/python3.10/dist-packages/azure/core/pipeline/policies/_authentication.py in on_request(self, request)
97 self._token = self._credential.get_token(*self._scopes, enable_cae=self._enable_cae)
98 else:
---> 99 self._token = self._credential.get_token(*self._scopes)
100 self._update_headers(request.http_request.headers, self._token.token)
101
AttributeError: 'str' object has no attribute 'get_token'
Когда я делаю простойprint(results)
я получил
<iterator object azure.core.paging.ItemPaged at 0x7f17cf3af550>
Я использую последнюю версию API когнитивного поиска Azure через:
!pip install azure-search-documents --pre --upgrade
> Requirement already satisfied: azure-search-documents in
> /usr/local/lib/python3.10/dist-packages (11.4.0b11)
1 ответ
Спасибо, Тим Робертс, я изменил следующее:
Я добавил строку
AZURE_COGNITIVE_SEARCH_CREDENTIAL = AzureKeyCredential(AZURE_COGNITIVE_SEARCH_API_KEY)
и изменил следующую строку
search_client = SearchClient(AZURE_COGNITIVE_SEARCH_SERVICE_ENDPOINT, AZURE_COGNITIVE_SEARCH_INDEX_NAME, credential=AZURE_COGNITIVE_SEARCH_CREDENTIAL)