Condividi tramite


Strumento ricerca indice per Azure Machine Learning (anteprima)

Lo strumento Index Lookup di prompt flow consente l'uso di indici vettoriali comuni, ad esempio Azure AI Search, FAISS e Pinecone, per il recupero della generazione augmentata (RAG) in prompt flow. Lo strumento rileva automaticamente gli indici nell'area di lavoro e consente di selezionare l'indice da usare nel flusso.

Importante

Lo strumento Ricerca indice è attualmente disponibile in anteprima pubblica. Questa anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Compilare con lo strumento Index Lookup

  1. Creare o aprire un flusso in Azure Machine Learning Studio. Per altre informazioni, vedere Creare un flusso.

  2. Selezionare + Altri strumenti>Index Lookup per aggiungere lo strumento Index Lookup al flusso.

    Screenshot del pulsante Altri strumenti e dell'elenco a discesa che mostra lo strumento Index Lookup in Azure Machine Learning Studio.

    Screenshot dello strumento Index Lookup aggiunto a un flusso in Azure Machine Learning Studio.

  3. Immettere i valori per i parametri di input dello strumento Index Lookup. Lo strumento LLM (Large Language Models) può generare l'input del vettore.

  4. Aggiungere altri strumenti al flusso in base alle esigenze oppure selezionare Esegui per eseguire il flusso.

  5. Per altre informazioni sull'output restituito, vedere Output.

Input

Di seguito sono riportati i parametri di input disponibili:

Nome Tipo Descrizione Richiesto
mlindex_content string Tipo di indice da utilizzare. L'input dipende dal tipo di indice. Di seguito è riportato un esempio di JSON dell'indice di ricerca cog di Azure*
query string, Union[string, List[String]] Testo su cui eseguire una query.
query_type string Tipo di query da eseguire. Le opzioni includono parola chiave, semantica, ibrida, etc.
top_k integer Numero di entità con il punteggio più alto da restituire. Il valore predefinito è 3. No

*Esempio JSON di ACS:

embeddings:
  api_base: <api_base>
  api_type: azure
  api_version: 2023-07-01-preview
  batch_size: '1'
  connection:
    id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<AOAI_connection>
  connection_type: workspace_connection
  deployment: <embedding_deployment>
  dimension: <embedding_model_dimension>
  kind: open_ai
  model: <embedding_model>
  schema_version: <version>
index:
  api_version: 2023-07-01-Preview
  connection:
    id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<cogsearch_connection>
  connection_type: workspace_connection
  endpoint: <cogsearch_endpoint>
  engine: azure-sdk
  field_mapping:
    content: id
    embedding: content_vector_open_ai
    metadata: id
  index: <index_name>
  kind: acs
  semantic_configuration_name: azureml-default



Output

La risposta in formato JSON seguente è un esempio restituito dallo strumento che include le entità con punteggio top-k. L'entità segue uno schema generico del risultato della ricerca vettoriale fornito dall'SDK promptflow-vectordb. Per la ricerca dell'indice vettoriale, vengono popolati i campi seguenti:

Nome campo Tipo Descrizione
metadata dict Coppie chiave-valore personalizzate fornite dall'utente durante la creazione dell'indice
page_content string Contenuto del blocco vettoriale usato nella ricerca
score float Dipende dal tipo di indice definito nell'indice vettoriale. Se il tipo di indice è Faiss, il punteggio è distanza L2. Se il tipo di indice è Azure AI Search, il punteggio è la somiglianza tra coseni.
[
  {
    "metadata":{
      "answers":{},
      "captions":{
        "highlights":"sample_highlight1",
        "text":"sample_text1"
      },
      "page_number":44,
      "source":{
        "filename":"sample_file1.pdf",
        "mtime":1686329994,
        "stats":{
          "chars":4385,
          "lines":41,
          "tiktokens":891
        },
        "url":"sample_url1.pdf"
      },
      "stats":{
        "chars":4385,"lines":41,"tiktokens":891
      }
    },
    "page_content":"vector chunk",
    "score":0.021349556744098663
  },

  {
    "metadata":{
      "answers":{},
      "captions":{
        "highlights":"sample_highlight2",
        "text":"sample_text2"
      },
      "page_number":44,
      "source":{
        "filename":"sample_file2.pdf",
        "mtime":1686329994,
        "stats":{
          "chars":4385,
          "lines":41,
          "tiktokens":891
        },
        "url":"sample_url2.pdf"
      },
      "stats":{
        "chars":4385,"lines":41,"tiktokens":891
      }
    },
    "page_content":"vector chunk",
    "score":0.021349556744098663
  },
    
]

Come eseguire la migrazione da strumenti legacy allo strumento Ricerca indice

Lo strumento Ricerca indice cerca di sostituire i tre strumenti di indicizzazione legacy deprecati, lo strumento Ricerca Indice vettoriale, lo strumento Ricerca Database vettoriale e lo strumento Ricerca Indice Faiss. Se si dispone di un flusso che contiene uno di questi strumenti, seguire i passaggi successivi per aggiornare il flusso.

Aggiornare gli strumenti

  1. Aggiornare il runtime.

  2. Passare al flusso. A tale scopo, selezionare la scheda Flusso prompt in Creazione, selezionando la scheda pivot Flussi e quindi selezionando il nome del flusso.

  3. Una volta all'interno del flusso, selezionare il pulsante "+ Altri strumenti" nella parte superiore del riquadro. Si deve aprire un elenco a discesa e selezionare Ricerca indice [Anteprima] per aggiungere un'istanza dello strumento Ricerca indice.

    Screenshot dell'elenco a discesa Altri strumenti nel flusso di richiesta.

  4. Assegnare un nome al nuovo nodo e selezionare “Aggiungi”.

    Screenshot del nodo di ricerca dell'indice con nome.

  5. Nel nuovo nodo selezionare la casella di testo “mlindex_content”. Questa dovrebbe essere la prima casella di testo nell'elenco.

    Screenshot del nodo Ricerca indice espanso con la casella mlindex_content evidenziata in rosso.

  6. Nel pannello Genera visualizzato seguire le istruzioni seguenti per eseguire l'aggiornamento dai tre strumenti legacy:

    • Se si usa lo strumento di Ricerca dell'indice vettoriale legacy, selezionare "Indice registrato" nell'elenco a discesa "index_type". Selezionare l'asset dell'indice vettoriale dall'elenco “a discesa mlindex_asset_id”.
    • Se si usa lo strumento legacy Ricerca indice Faiss, selezionare “Faiss” nell'elenco “a discesa index_type” e specificare lo stesso percorso dello strumento legacy.
    • Se si usa lo strumento di Ricerca database vettoriale legacy, selezionare Ricerca di intelligenza artificiale o Pinecone a seconda del tipo di database nell'elenco a discesa "index_type" e immettere le informazioni in base alle esigenze.
  7. Dopo aver compilato le informazioni necessarie, selezionare Salva.

  8. Al ritorno al nodo, nella casella di testo "mlindex_content" dovrebbero essere presenti delle informazioni. Selezionare la “casella di testo query” successiva e selezionare i termini di ricerca su cui eseguire la query. È consigliabile selezionare lo stesso valore dell'input nel nodo "embed_the_question", in genere "${inputs.question}" o "${modify_query_with_history.output}" (il primo se si è in un flusso standard e quest'ultimo se si è in un flusso di chat).

    Screenshot del nodo Ricerca indice espanso con informazioni sull'indice nelle celle.

  9. Selezionare un tipo di query facendo clic sull'elenco a discesa accanto a "query_type". "Vector" produrrà risultati identici come flusso legacy, ma a seconda della configurazione dell'indice, potrebbero essere disponibili altre opzioni, tra cui "Ibrido" e "Semantico".

    Screenshot del nodo Index Lookup espanso con la ricerca vettoriale evidenziata in rosso.

  10. Modificare i componenti downstream per utilizzare l'output del nodo appena aggiunto, anziché l'output del nodo legacy Ricerca indice vettoriale.

  11. Eliminare il nodo Ricerca indice vettoriale e il relativo nodo di incorporamento padre.

Passaggi successivi