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)
Другие вопросы по тегам