Dela via


Indexsökningsverktyg för Azure Machine Learning (förhandsversion)

Med uppslagsverktyget för snabbflödesindex kan du använda vanliga vektorindex (till exempel Azure AI Search, FAISS och Pinecone) för hämtning av utökad generering (RAG) i promptflödet. Verktyget identifierar automatiskt indexen på arbetsytan och gör att valet av index kan användas i flödet.

Viktigt!

Indexsökningsverktyget finns för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Skapa med indexsökningsverktyget

  1. Skapa eller öppna ett flöde i Azure Machine Learning-studio. Mer information finns i Skapa ett flöde.

  2. Välj + Fler verktyg>Indexsökning för att lägga till indexsökningsverktyget i ditt flöde.

    Skärmbild av knappen M malmverktyg och listrutan som visar verktyget Indexsökning i Azure Machine Learning-studio.

    Skärmbild av indexsökningsverktyget som lagts till i ett flöde i Azure Machine Learning-studio.

  3. Ange värden för indataparametrarna för indexsökningsverktyget. LLM-verktyget kan generera vektorindata.

  4. Lägg till fler verktyg i flödet efter behov eller välj Kör för att köra flödet.

  5. Mer information om de returnerade utdata finns i utdata.

Indata

Följande är tillgängliga indataparametrar:

Namn Type Beskrivning Obligatoriskt
mlindex_content sträng Typ av index som ska användas. Indata beror på indextyp. Exempel på en JSON för Azure Cog Search Index visas under tabellen* Ja
frågor string, Union[string, List[String]] Texten som ska frågas. Ja
query_type sträng Vilken typ av fråga som ska utföras. Alternativen är nyckelord, semantik, hybrid osv. Ja
top_k integer Antalet högst poängsatta entiteter som ska returneras. Standardvärdet är 3. Nej

* EXEMPEL PÅ ACS JSON:

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



Utdata

Följande JSON-formatsvar är ett exempel som returneras av verktyget som innehåller de högsta k-poängsatta entiteterna. Entiteten följer ett allmänt schema med vektorsökningsresultat som tillhandahålls av promptflow-vectordb SDK. För vektorindexsökningen fylls följande fält i:

Fältnamn Type Beskrivning
metadata Dict Anpassade nyckel/värde-par som tillhandahålls av användaren när du skapar indexet
page_content sträng Innehållet i vektorsegmentet som används i sökningen
poäng flyttal Beror på indextyp som definierats i Vektorindex. Om indextypen är Faiss är poängen L2-avstånd. Om indextypen är Azure AI Search är poängen cosinélikhet.
[
  {
    "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
  },
    
]

Migrera från äldre verktyg till indexsökningsverktyget

Indexsökningsverktyget ser ut att ersätta de tre inaktuella äldre indexverktygen, verktyget Vector Index Lookup, Vektor DB-uppslagsverktyget och verktyget Faiss Index Lookup. Om du har ett flöde som innehåller något av dessa verktyg följer du stegen nedan för att uppgradera flödet.

Uppgradera dina verktyg

  1. Uppdatera körningen.

  2. Navigera till ditt flöde. Du kan göra detta genom att välja fliken Fråga flöde under Redigering, välja pivotfliken Flöden och sedan välja namnet på ditt flöde.

  3. När du är inne i flödet väljer du knappen "+ Fler verktyg" längst upp i fönstret. En listruta bör öppnas och välja Indexsökning [förhandsversion] för att lägga till en instans av indexsökningsverktyget.

    Skärmbild av listrutan Fler verktyg i promptflödet.

  4. Ge den nya noden namnet och välj "Lägg till".

    Skärmbild av indexsökningsnoden med namn.

  5. I den nya noden väljer du textrutan "mlindex_content". Detta bör vara den första textrutan i listan.

    Skärmbild av den expanderade indexsökningsnoden med rutan mlindex_content som beskrivs i rött.

  6. I rutan Generera som visas följer du anvisningarna nedan för att uppgradera från de tre äldre verktygen:

    • Om du använder det äldre uppslagsverktyget för vektorindex väljer du "Registrerat index" i listrutan "index_type". Välj vektorindextillgången i listrutan "mlindex_asset_id".
    • Om du använder det äldre verktyget Faiss Index Lookup väljer du "Faiss" i listrutan "index_type" och anger samma sökväg som i det äldre verktyget.
    • Om du använder det äldre uppslagsverktyget för Vector DB väljer du AI Search eller Pinecone beroende på db-typen i listrutan "index_type" och fyller i informationen efter behov.
  7. När du har fyllt i nödvändig information väljer du Spara.

  8. När du återvänder till noden bör det finnas information i textrutan "mlindex_content". Välj textrutan "frågor" härnäst och välj de söktermer som du vill fråga efter. Du vill välja samma värde som indata till noden "embed_the_question", vanligtvis antingen "${inputs.question}" eller "${modify_query_with_history.output}" (det förra om du befinner dig i ett standardflöde och det senare om du befinner dig i ett chattflöde).

    Skärmbild av den expanderade indexsökningsnoden med indexinformation i cellerna.

  9. Välj en frågetyp genom att klicka på listrutan bredvid "query_type". "Vektor" ger identiska resultat som det äldre flödet, men beroende på indexkonfigurationen kan andra alternativ som "Hybrid" och "Semantic" vara tillgängliga.

    Skärmbild av den expanderade indexsökningsnoden med vektorsökning som beskrivs i rött.

  10. Redigera underordnade komponenter för att använda utdata från den nyligen tillagda noden i stället för utdata från den äldre vektorindexsökningsnoden.

  11. Ta bort vektorindexsökningsnoden och dess överordnade inbäddningsnod.

Nästa steg