Delen via


Een bestaande AI Search-index gebruiken met het Azure AI Search-hulpprogramma

Gebruik een bestaande Azure AI Search-index met het Azure AI Search-hulpprogramma van de agent.

Notitie

Azure AI Search-indexen moeten voldoen aan de volgende vereisten:

  • De index moet ten minste één doorzoekbaar en ophaalbaar tekstveld bevatten (type Edm.String)
  • De index moet ten minste één doorzoekbaar vectorveld bevatten (type Collection(Edm.Single))
  • De index moet een vectorprofiel/geïntegreerde vectorisatie gebruiken

Zoektypen

Index zonder semantische configuratie

  • Het hulpprogramma Azure AI Search voert standaard een hybride zoekopdracht (trefwoord en vector) uit op alle tekstvelden.

Indexeren met semantische configuratie

  • Het Azure AI Search-hulpprogramma voert standaard hybride en semantische zoekopdrachten uit op alle tekstvelden.

Installatie: Een agent maken die een bestaande Azure AI Search-index kan gebruiken

Vereiste: een bestaande Azure AI Search-index hebben

Een vereiste voor het gebruik van het Azure AI Search-hulpprogramma is om een bestaande Azure AI Search-index te hebben. Als u geen bestaande index hebt, kunt u er een maken in Azure Portal met behulp van de wizard Gegevens importeren en vectoriseren.

Maak een projectverbinding met de Azure AI Search-resource met de index die u wilt gebruiken

Nadat u de agentinstallatie hebt voltooid, moet u een projectverbinding maken met de Azure AI Search-resource die de index bevat die u wilt gebruiken.

Als u de AI Search-resource die de index bevat die u wilt gebruiken voor uw project al hebt verbonden, slaat u deze stap over.

De verbindingssleutel en het eindpunt van uw Azure AI Search-resource ophalen
  1. Open uw Azure AI Search-resource.

    • Navigeer in Azure Portal naar de AI Search-resource die de index bevat die u wilt gebruiken.
  2. Kopieer het verbindingseindpunt.

    • Kopieer op het tabblad Overzicht de URL van uw resource. De URL moet de indeling https://<your-resource-name>.search.windows.net/hebben. Een schermopname van het tabblad Overzicht van een AI Search-resource in Azure Portal.
  3. Controleer of API-toegangsbeheer is ingesteld op Beide en kopieer een van de sleutels onder Beheer van beheersleutels.

    • Schuif in de linkernavigatiebalk omlaag naar de sectie Instellingen en selecteer Sleutels.
    • Controleer in de sectie API-toegangsbeheer of de optie Api-sleutel en op rollen gebaseerd toegangsbeheer is geselecteerd.
    • Als u wilt dat de verbinding API-sleutels gebruikt voor verificatie, kopieert u een van de sleutels onder Beheer van beheersleutels. Een schermopname van het tabblad AI Search-resourcesleutels in Azure Portal.
Een Azure AI Search-projectverbinding maken

Als u Microsoft Entra ID gebruikt voor het verificatietype voor de verbinding, moet u de door het project beheerde identiteit handmatig toewijzen aan de rollen Search Index Data Contributor en Search Service Contributor aan de Azure AI Search-resource.

Maak het volgende connections.yml-bestand

U kunt een API-sleutel of een YAML-configuratiebestand met referenties gebruiken. Vervang de tijdelijke aanduidingen voor nameendpoint en api_key door uw Azure AI Search-resourcewaarden. Zie het YAML-schema van de Azure AI Search-verbinding voor meer informatie over het YAML-configuratiebestand van de YAML-verbinding.

  • Voorbeeld van API-sleutel:

    name: my_project_acs_connection_keys
    type: azure_ai_search
    endpoint: https://contoso.search.windows.net/
    api_key: XXXXXXXXXXXXXXX
    
  • Referentieloos

    name: my_project_acs_connection_credentialless
    type: azure_ai_search
    endpoint: https://contoso.search.windows.net/
    

Voer vervolgens de volgende opdracht uit:

Vervang en vervang my_resource door my_project_name de resourcegroep en projectnaam die u hebt gemaakt in de agentinstallatie.

az ml connection create --file {connection.yml} --resource-group {my_resource_group} --workspace-name {my_project_name}

Nu u een projectverbinding met uw Azure AI Search-resource hebt gemaakt, kunt u het hulpprogramma Azure AI Search configureren en gebruiken met de SDK. Zie het tabblad Codevoorbeelden om aan de slag te gaan.

Quickstart: een bestaande Azure AI Search-index gebruiken met het Azure AI Search-hulpprogramma

In deze quickstart ziet u hoe u een bestaande Azure AI Search-index gebruikt met het hulpprogramma Azure AI Search.

Vereisten

Voltooi de installatie van het hulpprogramma Azure AI Search.

Stap 1: Een Azure AI-client maken

Maak eerst een Azure AI-client met behulp van de verbindingsreeks van uw project.

import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.projects.models import AzureAISearchTool

# Create an Azure AI Client from a connection string, copied from your Azure AI Foundry project.
# At the moment, it should be in the format "<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<ProjectName>"
# HostName can be found by navigating to your discovery_url and removing the leading "https://" and trailing "/discovery" 
# To find your discovery_url, run the CLI command: az ml workspace show -n {project_name} --resource-group {resource_group_name} --query discovery_url
# Project Connection example: eastus.api.azureml.ms;my-subscription-id;my-resource-group;my-hub-name

connection_string = os.environ["PROJECT_CONNECTION_STRING"] 

project_client = AIProjectClient.from_connection_string(
    credential=DefaultAzureCredential(),
    conn_str=connection_string,
)

Stap 2: De verbindings-id voor de Azure AI Search-resource ophalen

Haal de verbindings-id op van de Azure AI Search-verbinding in het project. U kunt het codefragment gebruiken om de verbindings-id van alle Azure AI Search-verbindingen in het project af te drukken.

# AI Search resource connection ID
# This code prints out the connection ID of all the Azure AI Search connections in the project
# If you have more than one AI search connection, make sure to select the correct one that contains the index you want to use.
conn_list = project_client.connections.list()
conn_id = ""
for conn in conn_list:
    if conn.connection_type == "AZURE_AI_SEARCH":
        print(f"Connection ID: {conn.id}")

De tweede manier om de verbindings-id op te halen, is door naar het project in Azure AI Foundry te gaan en op het tabblad Verbonden resources te klikken en vervolgens uw Azure AI Search-resource te selecteren. Een schermopname van een verbindingspagina voor AI Search-resources in Azure AI Foundry. In de URL ziet u de wsid=/subscription/your-subscription-id..., dit is de verbindings-id die u moet gebruiken. Kopieer alles wat na wsid= komt. Een schermopname van een AI Search-resourceverbinding en het kopiëren van de verbindings-id.

Stap 3: Het hulpprogramma Azure AI Search configureren

Met behulp van de verbindings-id die u in de vorige stap hebt gekregen, kunt u nu het hulpprogramma Azure AI Search configureren om uw Azure AI Search-index te gebruiken.

# TO DO: replace this value with the connection ID of the search index
conn_id =  "/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<your-project-name>/connections/<your-azure-ai-search-connection-name>"

# Initialize agent AI search tool and add the search index connection ID and index name
# TO DO: replace <your-index-name> with the name of the index you want to use
ai_search = AzureAISearchTool(index_connection_id=conn_id, index_name="<your-index-name>")

Stap 4: Een agent maken waarvoor het Azure AI Search-hulpprogramma is ingeschakeld

Wijzig het model in het model dat in uw project is geïmplementeerd. U vindt de naam van het model in Azure AI Foundry op het tabblad Modellen . U kunt ook de naam en instructies van de agent aanpassen aan uw behoeften.

agent = project_client.agents.create_agent(
    model="gpt-4o-mini",
    name="my-assistant",
    instructions="You are a helpful assistant",
    tools=ai_search.definitions,
    tool_resources = ai_search.resources,
)
print(f"Created agent, ID: {agent.id}")

Stap 5: Stel de agent vragen over gegevens in de index

Nu de agent is gemaakt, stelt u deze vragen over de gegevens in uw Azure AI Search-index. In het voorbeeld wordt ervan uitgegaan dat uw Azure AI Search-index informatie bevat over gezondheidsplannen.

# Create a thread
thread = project_client.agents.create_thread()
print(f"Created thread, thread ID: {thread.id}")
 
# Create a message
message = project_client.agents.create_message(
    thread_id=thread.id,
    role="user",
    content="what are my health insurance plan coverage types?",
)
print(f"Created message, message ID: {message.id}")
    
# Run the agent
run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
print(f"Run finished with status: {run.status}")
 
if run.status == "failed":
    # Check if you got "Rate limit is exceeded.", then you want to get more quota
    print(f"Run failed: {run.last_error}")

# Get messages from the thread 
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")
    
assistant_message = ""
for message in messages.data:
    if message["role"] == "assistant":
        assistant_message = message["content"][0]["text"]["value"]

# Get the last message from the sender
print(f"Assistant response: {assistant_message}")