As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Incluir metadados em uma fonte de dados para melhorar a consulta à base de conhecimento
Ao ingerir arquivos CSV (valores separados por vírgula), você tem a possibilidade de fazer a base de conhecimento tratar determinadas colunas como campos de conteúdo, e não campos de metadados. Em vez de potencialmente ter centenas ou milhares de pares de content/metadata arquivos, agora você pode ter um único arquivo CSV e um arquivo metadata.json correspondente, dando dicas à base de conhecimento sobre como tratar cada coluna dentro do seu CSV.
Há limites para metadados do documento fields/attributes por bloco. Consulte Quotas for knowledge bases
Antes de ingerir um arquivo CSV, verifique se:
-
Seu CSV está no formato RFC4180 e está codificado. UTF-8
-
A primeira linha do CSV inclui informações de cabeçalho.
-
Os campos de metadados fornecidos no metadata.json estão presentes como colunas no CSV.
-
Você fornece um Name.csv.metadata.json arquivo com o seguinte formato:
{ "metadataAttributes": { "${attribute1}": "${value1}", "${attribute2}": "${value2}", ... }, "documentStructureConfiguration": { "type": "RECORD_BASED_STRUCTURE_METADATA", "recordBasedStructureMetadata": { "contentFields": [ { "fieldName": "string" } ], "metadataFieldsSpecification": { "fieldsToInclude": [ { "fieldName": "string" } ], "fieldsToExclude": [ { "fieldName": "string" } ] } } } }
O arquivo CSV é analisado uma linha por vez e a estratégia de fragmentação e a incorporação de vetores são aplicadas ao campo de conteúdo. Atualmente, as bases de conhecimento do Amazon Bedrock oferecem um campo de conteúdo. O campo de conteúdo é dividido em fragmentos e os campos de metadados (colunas) associados a cada fragmento são tratados como valores de string.
Por exemplo, digamos que haja um CSV com uma coluna 'Descrição' e uma coluna 'Creation_Date'. O campo de descrição é o campo de conteúdo, e a data de criação é um campo de metadados associado. O texto da descrição é dividido em fragmentos e convertido em incorporações de vetores para cada linha no CSV. O valor da data de criação é tratado como uma representação em string da data e está associado a cada fragmento da descrição.
Se nenhum inclusion/exclusion campo for fornecido, todas as colunas serão tratadas como colunas de metadados, exceto a coluna de conteúdo. Se apenas os campos de inclusão forem fornecidos, somente as colunas fornecidas serão tratadas como metadados. Se apenas campos de exclusão forem fornecidos, todas as colunas, exceto as de exclusão, serão tratadas como metadados. Se você fornecer o mesmo fieldName em fieldsToInclude e fieldsToExclude, o Amazon Bedrock lançará uma exceção de validação. Se houver um conflito entre inclusão e exclusão, isso acarretará uma falha.
As linhas em branco encontradas dentro de um CSV são ignoradas.
Exemplo: Multi-row CSV com metadados
O exemplo a seguir mostra um arquivo CSV completo e seu arquivo JSON de metadados correspondente.
Exemplo de arquivo CSV () properties.csv
description,city,price,bedrooms "Spacious 3-bedroom home with updated kitchen and large backyard.",Seattle,450000,3 "Modern downtown condo with floor-to-ceiling windows and city views.",Portland,325000,2 "Charming craftsman bungalow with original hardwood floors.",Austin,275000,2
Arquivo de metadados correspondente () properties.csv.metadata.json
{ "metadataAttributes": { "source": "property_listings_2024" }, "documentStructureConfiguration": { "type": "RECORD_BASED_STRUCTURE_METADATA", "recordBasedStructureMetadata": { "contentFields": [ { "fieldName": "description" } ], "metadataFieldsSpecification": { "fieldsToInclude": [ { "fieldName": "city" }, { "fieldName": "price" } ] } } } }
Neste exemplo:
-
contentFields— Especifica uma coluna (description) como o conteúdo a ser fragmentado e incorporado. Somente um campo de conteúdo é suportado. -
fieldsToInclude— Especifica quais colunas (cityeprice) devem ser tratadas como metadados filtráveis. Abedroomscoluna é excluída porque não está listada. -
metadataAttributes— Especifica metadados em nível de documento aplicados a cada parte desse CSV. Neste exemplo,sourceé um atributo estático aplicado a todas as linhas.
Cada linha produz um pedaço. Para a primeira linha, o texto fragmentado é a descrição e os metadados são city: "Seattle"price: "450000", e. source: "property_listings_2024" Todos os valores de metadados das colunas CSV são armazenados como cadeias de caracteres.
Tipos de dados de metadados compatíveis
Os seguintes tipos de dados são compatíveis com atributos de metadados:
-
STRING— Um valor de texto. -
NUMBER— Um valor numérico. Ao usar a configuração de CSV-based metadados descrita nesta página, os valores numéricos são armazenados como cadeias de caracteres. -
BOOLEAN— Um valor verdadeiro ou falso. -
STRING_LIST— Uma lista de valores de string.
Para ver o esquema completo de atributos de metadados usado nas consultas de filtragem, consulte MetadataAttributeSchemaa Referência da API.
Opções de configuração de metadados relacionados
Além da configuração de CSV-based metadados descrita nesta página, você também pode configurar metadados usando um .metadata.json arquivo auxiliar para qualquer tipo de documento em uma fonte de dados do Amazon S3. Esse método suporta o conjunto completo de tipos de dados e a includeForEmbedding opção. Para obter mais informações, consulte Campos de metadados do documento.
Para saber como filtrar os resultados da consulta usando metadados, consulte a seção Modelos de prompt da base de conhecimento emConfigurar e personalizar consultas e geração de respostas.