Recherche par IA générative

Avant de commencer

Pour ingérer des exemples de documents dans Document AI Warehouse, consultez le guide de démarrage rapide.

La recherche basée sur l'IA générative récupère les k premiers documents les plus pertinents par rapport à la requête de recherche (par mot clé ou en langage naturel). Elle renvoie des réponses précises à partir d'un ensemble de documents importés par les clients, en triant les résultats de recherche par pertinence.

L'auteur de l'appel de la requête de recherche décide de la valeur de k en la spécifiant dans le champ qaSizeLimit. Les grands modèles de langage déterminent la pertinence entre la requête de recherche et les documents.

Quelles données sont recherchées ?

Le filtrage, la pagination, l'histogramme, les synonymes personnalisés, le niveau du document et le contrôle précis des accès ne sont pas pris en charge.

Appeler une requête de recherche

Pour appeler le service de recherche, vous devez utiliser une demande de recherche, qui est définie comme suit :

{
  "documentQuery": {
    object (DocumentQuery)
  },
  "qaSizeLimit": integer
}

Le champ parent doit être renseigné au format suivant :

/projects/PROJECT_ID/locations/LOCATION

Le champ qaSizeLimit est obligatoire pour la recherche par IA générative.

Réponse à une demande de recherche

La réponse de recherche est définie comme suit :

{
  "matchingDocuments": [
    {
      object (MatchingDocument)
    }
  ],
  "metadata": {
    object (ResponseMetadata)
  }
}

Requête de document

Le champ document_query est défini comme suit :

{
  "query": string,
  "isNlQuery": boolean
}

Le champ query est destiné aux mots de la requête de recherche de l'utilisateur, qui peuvent être des mots clés ou des questions en langage naturel. Elles proviennent généralement du champ de recherche de l'interface utilisateur. Le champ isNlQuery doit être défini sur "true" pour la recherche par IA générative.

Document correspondant

Voici un exemple de document correspondant :

{
  "document": {
    object (Document)
  },
  "searchTextSnippet": string,
  "qaResult": {
    object (QAResult)
  }
}

Le champ SearchTextSnippet contient un extrait qui répond à la requête en langage naturel de l'utilisateur. Aucune balise HTML en gras ne sera présente. Les mises en surbrillance dans l'extrait de réponse se trouvent dans QAResult.highlights. Remarque : Pour accéder à la documentation de référence complète sur Matching Document,

Résultat de recherche de l'IA générative

Il s'agit d'informations sur les résultats de recherche de l'IA générative.

{
  "highlights": {
    object(Highlight)
  }
  "confidence_score": float
}

Mettre en surbrillance

Il s'agit d'une étendue de texte dans l'extrait de texte de recherche qui représente une section mise en évidence, comme un contexte de réponse ou une phrase très pertinente.

{
  "start_index": integer
  "end_index": integer
}

Questions et réponses à partir d'un ensemble de documents

Pour générer une réponse à l'aide de l'IA générative, vous devez utiliser une requête de recherche avec documentNameFilter, qui est définie comme suit :

{
  "documentQuery": {
    "query": "QUERY",
    "isNlQuery": "true",
    "documentNameFilter" : [
      "projects/PROJECT_NUMBER/locations/LOCATION/documents/DOCUMENT_ID_1",
      "projects/PROJECT_NUMBER/locations/LOCATION/documents/DOCUMENT_ID_2",
    ]
  },
  "qaSizeLimit": integer
}

Évitez d'ajouter d'autres filtres à documentQuery, car ils ne sont pas encore fonctionnels.

Si une réponse peut être trouvée dans l'ensemble de documents donné, elle est stockée dans le champ questionAnswer.

{
  "document": {
    object (Document)
  },
  questionAnswer: "QUESTION_ANSWER",
}

Étapes suivantes