Ferramenta de Pesquisa de Índice para o Azure Machine Learning (Pré-visualização)
A ferramenta de Pesquisa de Índice de fluxo de prompt permite o uso de índices vetoriais comuns (como Azure AI Search, FAISS, e Pinecone) para geração aumentada de recuperação (RAG) no fluxo de prompt. A ferramenta deteta automaticamente os índices no espaço de trabalho e permite a seleção do índice a ser usado no fluxo.
Importante
A ferramenta de pesquisa de índice está atualmente em pré-visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Criar com a ferramenta Pesquisa de índice
Crie ou abra um fluxo no estúdio do Azure Machine Learning. Para obter mais informações, consulte Criar um fluxo.
Selecione + Mais ferramentas>Pesquisa de índice para adicionar a ferramenta Pesquisa de índice ao seu fluxo.
Insira valores para os parâmetros de entrada da ferramenta Pesquisa de índice. A ferramenta LLM pode gerar a entrada vetorial.
Adicione mais ferramentas ao seu fluxo conforme necessário ou selecione Executar para executar o fluxo.
Para saber mais sobre a saída retornada, consulte saídas.
Entradas
Os seguintes parâmetros de entrada estão disponíveis:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
mlindex_content | string | Tipo de índice a utilizar. A entrada depende do tipo de índice. Exemplo de um JSON do Azure Cog Search Index pode ser visto abaixo da tabela* | Sim |
consultas de | string, União[string, List[String]] | O texto a consultar. | Sim |
query_type | string | O tipo de consulta a ser executada. As opções incluem palavra-chave, semântica, híbrida, etc. | Sim |
top_k | integer | A contagem de entidades mais bem pontuadas para retornar. O valor padrão é 3. | Não |
*Exemplo de JSON do 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
Saídas
A resposta de formato JSON a seguir é um exemplo retornado pela ferramenta que inclui as entidades com melhor pontuação. A entidade segue um esquema genérico de resultado de pesquisa vetorial fornecido pelo promptflow-vectordb SDK. Para a Pesquisa de índice vetorial, os seguintes campos são preenchidos:
Nome do Campo | Tipo | Description |
---|---|---|
do IdP | ditado | Pares chave-valor personalizados fornecidos pelo usuário ao criar o índice |
page_content | string | Conteúdo do bloco vetorial que está sendo usado na pesquisa |
score | flutuante | Depende do tipo de índice definido em Vetor Index. Se o tipo de índice for Faiss, a pontuação é a distância L2. Se o tipo de índice for Azure AI Search, a pontuação será a semelhança cosseno. |
[
{
"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
},
]
Como migrar de ferramentas herdadas para a ferramenta Pesquisa de índice
A ferramenta Pesquisa de índice procura substituir as três ferramentas de índice herdadas obsoletas, a ferramenta Pesquisa de índice vetorial, a ferramenta Pesquisa de banco de dados vetorial e a ferramenta Pesquisa de índice Faiss. Se você tiver um fluxo que contenha uma dessas ferramentas, siga as etapas abaixo para atualizar seu fluxo.
Atualize as suas ferramentas
Navegue até o seu fluxo. Você pode fazer isso selecionando a guia Fluxo de prompt em Criação, selecionando a guia Fluxos dinâmicos e, em seguida, selecionando o nome do fluxo.
Uma vez dentro do fluxo, selecione o botão "+ Mais ferramentas" perto da parte superior do painel. Uma lista suspensa deve abrir e selecionar Pesquisa de índice [Visualização] para adicionar uma instância da ferramenta Pesquisa de índice.
Nomeie o novo nó e selecione "Adicionar".
No novo nó, selecione a caixa de texto "mlindex_content". Esta deve ser a primeira caixa de texto da lista.
Na gaveta Gerar que aparece, siga as instruções abaixo para atualizar das três ferramentas herdadas:
- Se estiver usando a ferramenta de pesquisa de índice vetorial herdada, selecione "Índice registrado" no menu suspenso "index_type". Selecione seu ativo de índice vetorial na lista suspensa "mlindex_asset_id".
- Se estiver usando a ferramenta Faiss Index Lookup herdada, selecione "Faiss" no menu suspenso "index_type" e especifique o mesmo caminho que na ferramenta herdada.
- Se estiver usando a ferramenta Vetor DB Lookup herdada, selecione AI Search ou Pinecone, dependendo do tipo de banco de dados, no menu suspenso "index_type" e preencha as informações conforme necessário.
Depois de preencher as informações necessárias, selecione salvar.
Ao retornar ao nó, deve haver informações preenchidas na caixa de texto "mlindex_content". Selecione a caixa de texto "consultas" em seguida e selecione os termos de pesquisa que deseja consultar. Você desejará selecionar o mesmo valor da entrada para o nó "embed_the_question", normalmente "${inputs.question}" ou "${modify_query_with_history.output}" (o primeiro se você estiver em um fluxo padrão e o segundo se estiver em um fluxo de bate-papo).
Selecione um tipo de consulta clicando na lista suspensa ao lado de "query_type". "Vetor" produzirá resultados idênticos ao fluxo herdado, mas dependendo da configuração do seu índice, outras opções, incluindo "Híbrido" e "Semântico", podem estar disponíveis.
Edite componentes downstream para consumir a saída do nó recém-adicionado, em vez da saída do nó Vetor Index Lookup herdado.
Exclua o nó Pesquisa de índice vetorial e seu nó de incorporação pai.