Recuperação e geração de saída do mecanismo RAG da Vertex AI

Nesta página, descrevemos os campos na saída do mecanismo RAG da Vertex AI. A saída contém as seguintes partes principais:

  • retrieveContexts:contém informações sobre os trechos de texto recuperados dos seus dados de origem.
  • generateContent:contém a resposta gerada e os metadados que mostram como ela é fundamentada nos trechos de texto recuperados.

retrieveContexts

A resposta retrieveContexts contém os seguintes campos.

Campos

Nome do campo Descrição
source_uri O URI do arquivo de origem original.
  • Se você importar o arquivo do Cloud Storage ou do Google Drive, esse campo vai conter o URI do arquivo original.
  • Se você fizer upload do arquivo, esse campo vai conter o nome de exibição dele.
source_display_name O nome de exibição do arquivo.
text O trecho de texto relevante para a consulta.
score Uma pontuação que representa a semelhança entre a consulta e o trecho de texto. A métrica usada depende da vectorDB escolhida. Para ragManagedDB, a pontuação é COSINE_DISTANCE.

Exemplo de saída

O exemplo a seguir mostra o formato da resposta retrieveContexts:

contexts {
    source_uri: "gs://sample_folder/hello_world.txt"
    source_display_name: "hello_world.txt"
    text: "Hello World!"
    score: 0.60545359030757784
  }

generateContent

A maioria dos campos definidos para a API generateContent pode ser encontrada no corpo da resposta.

Campos

O objeto grounding_metadata contém os seguintes campos:

  • text: a resposta gerada pelo Gemini.
  • grounding_chunks: uma lista de partes de texto retornadas pelo mecanismo de RAG da Vertex AI que são relevantes para a consulta. Cada objeto de bloco contém o seguinte campo:
    • retrieved_context: um objeto que contém o trecho de texto usado para fundamentar o conteúdo gerado. Ele contém os seguintes campos:
      • uri: o source_uri dos dados originais.
      • title: o source_display_name do arquivo original.
      • text: o trecho de texto usado para fundamentar a resposta do Gemini.
  • grounding_supports: uma lista que descreve a relação entre segmentos da resposta gerada e os trechos de embasamento. Cada entrada contém os seguintes campos:
    • segment: um objeto que descreve um segmento da resposta gerada com base nos dados de origem. Ele contém os seguintes campos:
      • start_index: o índice do caractere inicial do segmento de texto embasado. Se esse campo for omitido, o índice será 0.
      • end_index: o índice do caractere final do segmento de texto embasado.
      • text: o texto do segmento embasado.
    • grounding_chunk_indices: uma lista de índices que apontam para os trechos em grounding_chunks usados para fundamentar o segmento de texto. O índice começa em 0. Um segmento pode ser fundamentado por mais de um trecho.
    • confidence_scores: uma lista de pontuações de confiança. Cada pontuação indica o grau de embasamento do segmento de texto em um trecho correspondente em grounding_chunk_indices. A pontuação máxima é 1.0. Somente os trechos com uma pontuação de confiança de 0.6 ou mais são incluídos.

Exemplo de saída

O exemplo a seguir mostra o formato da resposta generateContent, com foco no grounding_metadata:

candidates {
  content {
    role: "model"
    parts {
      text: "The rectangle is red and the background is white. The rectangle appears to be on some type of document editing software. \n"
    }
  }
  grounding_metadata {
    grounding_chunks {
      retrieved_context {
        uri: "a.txt"
        title: "a.txt"
        text: "Okay ,  I  see  a  red  rectangle  on  a  white  background .  It looks like it\'s on some sort of document editing software. It has those small squares and circles around it, indicating that it\'s a selected object ."
      }
    }
    grounding_chunks {
      retrieved_context {
        uri: "b.txt"
        title: "b.txt"
        text: "The  video  is  identical  to  the  last  time  I  described  it .  It shows a blue rectangle on a white background."
      }
    }
    grounding_chunks {
      retrieved_context {
        uri: "c.txt"
        title: "c.txt"
        text: "Okay ,  I  remember  the  rectangle  was  blue  in  the  past  session . Now it is red.\n The  red  rectangle  is  still  there .  It \' s  still  in  the same position on the white background, with the same handles around it. Nothing new is visible since last time.\n You \' re  welcome .  The  red  rectangle  is  still  the  only  thing visible."
      }
    }
    grounding_supports {
      segment {
        end_index: 49
        text: "The rectangle is red and the background is white."
      }
      grounding_chunk_indices: 2
      grounding_chunk_indices: 0
      confidence_scores: 0.958192229
      confidence_scores: 0.992316723
    }
    grounding_supports {
      segment {
        start_index: 50
        end_index: 120
        text: "The rectangle appears to be on some type of document editing software."
      }
      grounding_chunk_indices: 0
      confidence_scores: 0.98374176
    }
  }
}

A seguir