Partager via


Format de fichier .qna

S’APPLIQUE À : SDK v4

Remarque

Azure AI QnA Maker sera mis hors service le 31 mars 2025. À partir du 1er octobre 2022, vous ne pourrez plus créer de nouvelles ressources ou bases de connaissances QnA Maker. Une version plus récente de la fonctionnalité de questions et réponses est désormais disponible dans le cadre d’Azure AI Language.

La réponse aux questions personnalisées, une fonctionnalité d'Azure AI Language, est la version mise à jour du service QnA Maker. Pour plus d'informations sur la prise en charge des questions et réponses dans le kit de développement logiciel (SDK) Bot Framework, consultez Compréhension du langage naturel.

Les fichiers .qna contiennent des définitions de type texte Markdown pour les concepts QnAmaker.ai. Cet article décrit les différents concepts exprimés par le biais du format de fichier .qna.

Ajout de commentaires

Utilisez > pour créer un commentaire. Voici un exemple :

> This is a comment and will be ignored

Paires questions-réponses

Le fichier .qna et l’analyseur prennent en charge les définitions de questions-réponses.

Voici la syntaxe de définition de questions-réponses de base :

# ? Question
[list of question variations]
```
Answer
```

Voici des exemples de définitions de questions-réponses :

> # QnA Definitions
### ? who is the ceo?
```
You can change the default message if you use the QnAMakerDialog.
For details, see [Azure AI Bot Service documentation](/articles/adaptive-dialog/adaptive-dialog-prebuilt-actions.md).
```


### ? How do I programmatically update my KB?
```
You can use our REST apis to manage your KB.
\#1. See here for details: https://westus.dev.cognitive.microsoft.com/docs/services/58994a073d9e04097c7ba6fe/operations/58994a073d9e041ad42d9baa
```

Notez que l’identificateur de type markdown pour une answer est facultatif.

Plusieurs questions

Vous pouvez ajouter plusieurs questions à la même réponse en ajoutant simplement des variantes aux questions.

### ? Aren't you feeling happy today?
- Feeling cheerful?
```markdown
I'm quite happy, thank you.
```

Filtres QnA Maker

Les filtres dans QnA Maker représentent des paires clé-valeur simples qui peuvent être utilisées pour limiter les résultats de la recherche, améliorer les réponses et stocker le contexte.

Utilisez la syntaxe suivante pour ajouter des filtres :

***Filters:***
- name = value
- name = value

Voici un exemple d’utilisation d’un filtre :

### ? Where can I get coffee?
- I need coffee

**Filters:**
- location = seattle

```markdown
You can get coffee in our Seattle store at 1 pike place, Seattle, WA
```

### ? Where can I get coffee?
- I need coffee

**Filters:**
- location = portland

```markdown
You can get coffee in our Portland store at 52 marine drive, Portland, OR
```

Ingestion de fichiers PDF QnA Maker

QnA Maker prend également en charge l’ingestion de fichiers PDF pendant la création de la Base de connaissances. Vous pouvez ajouter des fichiers que QnA Maker va ingérer à l’aide du schéma de référence d’URL. Si le type de contenu de l’URI n’est ni du texte ni du code HTML, l’analyseur l’ajoute à la collection de fichiers afin que QnA Maker l’ingère.

[SurfaceManual.pdf](https://download.microsoft.com/download/2/9/B/29B20383-302C-4517-A006-B0186F04BE28/surface-pro-4-user-guide-EN.pdf)

Références externes

Les références externes sont prises en charge dans le fichier .qna et utilisent la syntaxe de lien Markdown.

Référencer un autre fichier .qna

Référence à un autre fichier .qna avec [link name](<.qna file name>). Les références peuvent être un chemin absolu ou un chemin relatif par rapport au fichier .qna contenant.

Référence à un dossier contenant des fichiers .qna

La référence à un dossier contenant d’autres fichiers .qna est prise en charge par le biais de :

  • [link name](<.qna file path>/*) : recherche les fichiers .qna sous le chemin absolu ou relatif spécifié.
  • [link name](<.qna file path>/**) : recherche de manière récursive les fichiers .qna sous le chemin absolu ou relatif spécifié, y compris les sous-dossiers.

Référencer une URL

Référencez une URL que QnAMaker va ingérer pendant la création de la Base de connaissances via [link name](<URL>).

Référence à partir d’un fichier spécifique

Vous pouvez également ajouter des références à des énoncés définis dans un fichier spécifique sous une section d’intention ou en tant que paires QnA.

  • [link name](<.lu file path>#<INTENT-NAME>) : recherche tous les énoncés identifiés sous <INTENT-NAME> dans le fichier .lu et les ajoute à la liste des questions où la référence est spécifiée.
  • [link name](<.lu file path>#*utterances*) : recherche tous les énoncés dans le fichier .lu et les ajoute à la liste des questions où la référence est spécifiée.
  • [link name](<.qna file path>#?) : recherche les questions de toutes les paires QnA définies dans le fichier .qna et les ajoute à la liste des énoncés où cette référence est spécifiée.
  • [link name](<.qna folder>/*#?) : recherche toutes les questions à partir de tous les fichiers .qna du dossier spécifié et les ajoute à la liste des énoncés où la référence est spécifiée.

Voici un exemple de ces références :

> QnA URL reference
[QnaURL](/azure/ai-services/qnamaker/)

> Include all content in ./kb1.qna
[KB1](./kb1.qna)

> Look for all .qna files under a path
[ChitChat](./chitchat/*)

> Recursively look for .qna files under a path including subfolders.
[ChitChat](../chitchat/resources/**)

Description du modèle

Vous pouvez inclure des informations de configuration pour votre application LUIS ou la Base de connaissances QnA Maker dans le fichier .qna pour aider l’analyseur à gérer correctement le contenu LU.

Remarque

Compréhension du langage (LUIS) sera mis hors service le 1er octobre 2025. À compter du 1er avril 2023, vous ne pourrez pas créer de nouvelles ressources LUIS. Une version plus récente de Compréhension du langage est désormais disponible dans le cadre d'Azure AI Language.

Compréhension du langage conversationnel (CLU), une fonctionnalité d'Azure AI Language, est la version mise à jour de LUIS. Pour plus d'informations sur la prise en charge de compréhension du langage dans le kit de développement logiciel (SDK) Bot Framework, consultez Compréhension du langage naturel.

Voici comment ajouter les informations de configuration à l’aide de > !# :

> !# @<property> = <value>
> !# @<scope>-<property> = <value>
> !# @<scope>-<property> = <semicolon-delimited-key-value-pairs>

Notez que toutes les informations transmises explicitement par le biais d’arguments CLI remplacent les informations contenues dans le fichier .qna.

> Parser instruction - this is optional; unless specified, the parser will default to the latest version.
> !# @version = 1.0

> QnA Maker KB description
> !# @kb.name = my qna maker kb name

> Source for a specific QnA pair
> !# @qna.pair.source = <source value>

Contenu multitour

Le contenu multitour est représenté au format .qna à l’aide de la notation de lien Markdown. Les liens sont spécifiés à l’aide de la manière suivante :

- [display text](#<ID or question>)

Vous pouvez éventuellement inclure des context-only pour les invites contextuellement disponibles uniquement pour une question. Lisez la section concernant l’ajout d’une paire question-réponse comme invite de suivi pour en savoir plus sur l’utilisation de context.

- [tell me a joke](#?joke) `context-only`

Invites de suivi

Les développeurs disposent de deux options pour créer des invites de suivi : utiliser directement une question comme invite de suivi, ou attribuer un ID explicite à une paire QnA.

Utiliser directement une question

La première paire QnA contenant le texte du lien en tant que question sera ajoutée en tant qu’invite. Si vous avez besoin d’un contrôle plus explicite, utilisez des ID à la place.

Lorsque vous utilisez directement une question, utilisez la convention Markdown et remplacez les espaces par des traits d’union (par exemple, utilisez #?when-is-the-portland-store-open au lieu de #?when is the portland store open). L’analyseur fera de son mieux pour trouver le lien.

# ?store hours
```
Most our stores are open M-F 9AM-10PM.
```
**Prompts:**
- [Seattle store](#?seattle)
- [Portland store](#?when-is-the-portland-store-open)

# ?seattle
```
The Seattle store is open M-F 9AM-10PM.
```

# ?when is the portland store open
- portland store hours
```
The Portland store is open 24/7.
```

Conseil

Le lien ne s’affiche pas réellement en tant que lien sélectionnable dans la plupart des renderers Markdown.

Attribuer un ID explicite à une paire QnA

Attribuez des ID pour chaque invite avec un nombre. Vous pouvez voir dans l’exemple ci-dessous que chaque magasin a reçu une invite avec une valeur numérique différente.

# ?store hours
```
Most our stores are open M-F 9AM-10PM.
```
**Prompts:**
- [Seattle store](#1)
- [Portland store](#2)

<a id = "1"></a>

# ?seattle
```
The Seattle store is open M-F 9AM-10PM.
```

<a id = "2"></a>

# ?when is the portland store open
- portland store hours
```
The Portland store is open 24/7.
```

Ressources complémentaires