# Testing cognitive search in local environment 1. Create a virtual environment with python requirements.txt ``` pip intall -r requirements.txt ``` ``` azure-functions azure-search-documents==11.4.0b6 openai[datalib]==0.27.8 ``` 2. Implement the code with respective keys ``` # pip install azure-search-documents==11.4.0b6 # pip install openai[datalib]==0.28 from azure.search.documents import SearchClient from azure.search.documents.models import QueryType from azure.core.credentials import AzureKeyCredential import openai resource_name = "cognitivesearch-jpeast-aoi-standard" base_resource_name = "oai-jp-gpt35" # search_service_name = "resorce_name" # Cognitive Searchのデプロイ名 search_index_name = "index_name" # index名 search_api_key = "api_key" # cognitive search/search service APIキー search_endpoint = f"https://{resource_name}.search.windows.net" # Endポイント vector_field_name = "vector" # index内でベクトルを格納しているフィールド名 特に変更していなければ「vector」 # context_field_name = "chunk" # index内でchunkを格納しているフィールド名 特に変更していなければ「chunk」 semantic_vector_name = "semantic vector name" openai.api_type = "azure" # AOAIを使用するためazure openai.api_base = f"https://{base_resource_name}.openai.azure.com/" #endポイント openai.api_version = "2023-07-01-preview" #Azure AI Studioのチャットプレイグランドで送信例のコード表示から openai.api_key = "api_key" # APIキー # embedding_deploy_name = "gpt-35-turbo" # AOAIのembeddingモデルのデプロイ名 embedding_deploy_name = "text-embedding-AOI" # AOAIのembeddingモデルのデプロイ名 search_client = SearchClient(endpoint=search_endpoint, index_name=search_index_name, credential=AzureKeyCredential(search_api_key)) # print(search_client) # query_text = '{検索したい内容}' query_text = 'sample' query_vector = openai.Embedding.create(engine=embedding_deploy_name, input=query_text)["data"][0]["embedding"] # print(query_vector) # exit() results = list( search_client.search( query_text, filter=None, query_type=QueryType.SEMANTIC, # セマンティック検索を指定 # query_language="ja-jp", # 日本語の場合は ja-jp query_speller="none", semantic_configuration_name=semantic_vector_name, top=3, # Message: Parameter 'captions' is supported only when 'queryType' is set to 'semantic'. query_caption="extractive|highlight-false" if True else None, vector=query_vector, top_k=50 if query_vector else None, vector_fields=vector_field_name if query_vector else None ) ) print(results[0]["title"]) ``` 3. Run the python script from terminal