Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.
Important
Les fonctionnalités, capacités ou propriétés marquées (préversion) ne sont pas couvertes par un accord de niveau de service, ne sont pas recommandées pour les workloads de production et peuvent être modifiées ou faire l’objet de restrictions avant leur mise à disposition générale. Les Recherche Azure AI termes de la préversion s'appliquent à toutes les fonctionnalités d'aperçu, qu'il s'agisse d'une fonctionnalité autonome ou d'une partie d'une fonctionnalité généralement disponible.
Par défaut, une base de connaissances d’Recherche Azure AI effectue une extraction de données, qui renvoie des fragments bruts de grounding à partir de vos sources de connaissances. L’extraction de données est utile pour récupérer des informations spécifiques, mais n’a pas le contexte et le raisonnement nécessaires pour les requêtes complexes.
Vous pouvez aussi activer la synthèse des réponses (aperçu), qui utilise le LLM spécifié dans votre base de connaissances pour répondre aux requêtes en langage naturel. Chaque réponse inclut des citations aux sources récupérées et suit toutes les instructions que vous fournissez, telles que l’utilisation de listes à puces.
Vous pouvez définir cette propriété dans une base de connaissances ou une demande de récupération. Le paramètre de base de connaissances établit la valeur par défaut pour toutes les requêtes, tandis que le paramètre de requête de récupération remplace la valeur par défaut par requête.
Assistance à l'utilisation
Conditions préalables
Service Recherche Azure AI avec une base knowledge qui spécifie un LLM.
Autorisation de mettre à jour les bases de connaissances. Configurez l’authentification sans clé avec le rôle Contributeur de service de recherche affecté à votre compte d’utilisateur (recommandé) ou utilisez une clé API d’administration.
Pour les appels sortants vers le LLM, le service de recherche doit disposer d’une identité managée avec les autorisations Utilisateur Cognitive Services sur la ressource Microsoft Foundry.
Le dernier paquet
Azure.Search.Documents(préversion) :dotnet add package Azure.Search.Documents --prereleasePour l’authentification sans clé, le
Azure.Identitypackage :dotnet add package Azure.Identity
Le dernier paquet
azure-search-documents(préversion) :pip install --pre azure-search-documentsPour l’authentification sans clé, le
azure-identitypackage :pip install azure-identity
La version 2026-08-01-preview de l’API REST du service de recherche.
Pour l’authentification sans clé, incluez un jeton de Microsoft Entra ID dans l’en-tête
Authorizationde chaque requête HTTP.
Limitations et considérations
L’effort de raisonnement de récupération
minimaldésactive le traitement par LLM ; il est donc incompatible avec la synthèse de réponses, aussi bien dans les définitions de bases de connaissances que dans les requêtes de récupération. Pour plus d’informations, consultez Définir l’effort de raisonnement de récupération.La synthèse des réponses entraîne des frais à l’utilisation d’Azure OpenAI, calculés en fonction du nombre de jetons en entrée et en sortie. Les frais apparaissent sous le LLM attribué à la base de connaissances. Pour plus d’informations, consultez disponibilité, limites et facturation de la région.
Activer la synthèse des réponses dans une base de connaissances
Cette section montre comment activer la synthèse des réponses dans une base de connaissances existante. Bien que vous puissiez utiliser cette configuration pour les nouvelles bases de connaissances, la création de la base de connaissances dépasse la portée de cet article.
Définissez OutputMode sur "answerSynthesis" dans la définition KnowledgeBase. Si vous le souhaitez, définissez AnswerInstructions pour personnaliser la sortie de la réponse. L’exemple suivant indique à la base de connaissances la valeur Use concise bulleted lists.
var aoaiParams = new AzureOpenAIVectorizerParameters
{
ResourceUri = new Uri("<aoai-endpoint>"),
DeploymentName = "<aoai-gpt-deployment>",
ModelName = "<aoai-gpt-model>",
};
var knowledgeBase = new KnowledgeBase(
name: "<knowledge-base-name>",
knowledgeSources: new[] { new KnowledgeSourceReference("<knowledge-source-name>") })
{
Models = { new KnowledgeBaseAzureOpenAIModel(aoaiParams) },
OutputMode = "answerSynthesis",
AnswerInstructions = "Use concise bulleted lists",
};
await indexClient.CreateOrUpdateKnowledgeBaseAsync(knowledgeBase);
Reference :SearchIndexClient, KnowledgeBase
Définissez output_mode sur "answerSynthesis" dans la définition KnowledgeBase. Si vous le souhaitez, définissez answer_instructions pour personnaliser la sortie de la réponse. L’exemple suivant indique à la base de connaissances la valeur Use concise bulleted lists.
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents.indexes.models import (
AzureOpenAIVectorizerParameters,
KnowledgeBase,
KnowledgeBaseAzureOpenAIModel,
KnowledgeSourceReference,
)
aoai_params = AzureOpenAIVectorizerParameters(
resource_url="<aoai-endpoint>",
deployment_name="<aoai-gpt-deployment>",
model_name="<aoai-gpt-model>",
)
knowledge_base = KnowledgeBase(
name="<knowledge-base-name>",
models=[KnowledgeBaseAzureOpenAIModel(azure_open_ai_parameters=aoai_params)],
knowledge_sources=[KnowledgeSourceReference(name="<knowledge-source-name>")],
output_mode="answerSynthesis",
answer_instructions="Use concise bulleted lists",
)
index_client = SearchIndexClient(endpoint=search_endpoint, credential=credential)
index_client.create_or_update_knowledge_base(knowledge_base)
Reference :SearchIndexClient, KnowledgeBase
Réglez outputMode sur "answerSynthesis" dans la définition de la base de connaissances. Si vous le souhaitez, définissez answerInstructions pour personnaliser la sortie de la réponse. L’exemple suivant indique à la base de connaissances la valeur Use concise bulleted lists.
### Enable answer synthesis in a knowledge base
PUT {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
{
"name": "{{knowledge-base-name}}",
"knowledgeSources": [ ... // OMITTED FOR BREVITY ],
"models": [ ... // OMITTED FOR BREVITY ],
"outputMode": "answerSynthesis",
"answerInstructions": "Use concise bulleted lists"
}
Activer la synthèse des réponses dans une demande de récupération
Pour le contrôle par requête sur le format de réponse, vous pouvez activer la synthèse des réponses au moment de la requête. Cette approche remplace le mode de sortie par défaut spécifié dans la base de connaissances.
Défini OutputMode sur "answerSynthesis" sur un KnowledgeBaseRetrievalRequest.
var client = new KnowledgeBaseRetrievalClient(
endpoint: new Uri(searchEndpoint),
knowledgeBaseName: knowledgeBaseName,
credential: credential);
var request = new KnowledgeBaseRetrievalRequest();
request.Messages.Add(
new KnowledgeBaseMessage(
content: new[]
{
new KnowledgeBaseMessageTextContent("What is healthcare?")
}) { Role = "user" });
request.OutputMode = "answerSynthesis";
var result = await client.RetrieveAsync(request);
Reference :KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest
Défini output_mode sur "answerSynthesis" sur un KnowledgeBaseRetrievalRequest.
from azure.search.documents.knowledgebases import KnowledgeBaseRetrievalClient
from azure.search.documents.knowledgebases.models import (
KnowledgeBaseMessage,
KnowledgeBaseMessageTextContent,
KnowledgeBaseRetrievalRequest,
)
agent_client = KnowledgeBaseRetrievalClient(
endpoint=search_endpoint,
credential=credential,
knowledge_base_name=knowledge_base_name,
)
request = KnowledgeBaseRetrievalRequest(
messages=[
KnowledgeBaseMessage(
role="user",
content=[KnowledgeBaseMessageTextContent(text="What is healthcare?")],
)
],
output_mode="answerSynthesis",
)
result = agent_client.retrieve(retrieval_request=request)
Reference :KnowledgeBaseRetrievalClient, KnowledgeBaseRetrievalRequest
Définissez outputMode sur "answerSynthesis" dans une requête de récupération.
### Enable answer synthesis in a retrieve request
POST {{search-endpoint}}/knowledgebases/{{knowledge-base-name}}/retrieve?api-version=2026-08-01-preview
Content-Type: application/json
Authorization: Bearer {{search-access-token}}
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is healthcare?"
}
]
}
],
"outputMode": "answerSynthesis"
}
Référence :Récupération des connaissances - Récupérer
Obtenir une réponse synthétisée
Lorsque la synthèse des réponses est activée, la base de connaissances retourne une réponse en langage naturel en fonction des instructions que vous avez éventuellement spécifiées dans la base de connaissances. Les citations à vos sources de connaissances sont mises en forme comme [ref_id:<number>].
Par exemple, si vos instructions sont Use concise bulleted lists et que votre requête est What is healthcare?, la réponse doit être similaire à l’exemple suivant.
{
"response": [
{
"content": [
{
"type": "text",
"text": "- Healthcare encompasses various services provided to patients and the general population ..."
}
]
}
]
}
La sortie complète text est la suivante :
"- Healthcare encompasses various services provided to patients and the general population, including primary health services, hospital care, dental care, mental health services, and alternative health services [ref_id:1].\n- It involves the delivery of safe, effective, patient-centered care through different modalities, such as in-person encounters, shared medical appointments, and group education sessions [ref_id:0].\n- Behavioral health is a significant aspect of healthcare, focusing on the connection between behavior and overall health, including mental health and substance use [ref_id:2].\n- The healthcare system aims to ensure quality of care, access to providers, and accountability for positive outcomes while managing costs effectively [ref_id:2].\n- The global health system is evolving to address complex health needs, emphasizing the importance of cross-sectoral collaboration and addressing social determinants of health [ref_id:4]."
Selon la configuration de votre base de connaissances, la réponse peut inclure d’autres informations, telles que les journaux d’activité et les tableaux de référence. Pour plus d’informations, consultez Créer une base de connaissances.
Contenu connexe
- Créer une base de connaissances
- Interroger une base de connaissances
- Démarrage rapide : Récupération agentique (utilise la synthèse des réponses)
- Exemple Python : source de connaissances d’objet blob Recherche Azure AI (utilise la synthèse de réponses)