Freigeben über


QNA-Dateiformat

GILT FÜR: SDK v4

Hinweis

Azure KI QnA Maker wird am 31. März 2025 eingestellt. Ab dem 01. Oktober 2022 können Sie keine neuen QnA Maker-Ressourcen oder Wissensdatenbanken mehr erstellen. Eine neuere Version der Funktionalität „Fragen und Antworten“ ist jetzt als Teil von Azure KI Language verfügbar.

Benutzerdefiniertes Fragen und Antworten, eine Azure KI Language-Funktion, ist die aktualisierte Version des QnA Maker-Diensts. Weitere Informationen zur Unterstützung von Fragen und Antworten im Bot Framework SDK finden Sie unter Natürliches Sprachverständnis.

QNA-Dateien enthalten textbasierte Definitionen (ähnlich Markdown) für QnAmaker.ai-Konzepte. In diesem Artikel werden die verschiedenen Konzepte behandelt, die mit dem QNA-Dateiformat ausgedrückt werden.

Hinzufügen von Kommentaren

Verwenden Sie >, um einen Kommentar zu erstellen. Ein Beispiel:

> This is a comment and will be ignored

Frage-Antwort-Paare

Die .qna-Datei und Parser unterstützen Frage-Antwort-Definitionen.

Im Folgenden finden Sie ein Beispiel für eine einfache Frage-Antwort-Definition.

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

Im Folgenden finden Sie Beispiele für Frage-Antwort-Definitionen:

> # 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
```

Beachten Sie, dass der Typbezeichner markdown für eine answer optional ist.

Mehrere Fragen

Sie können derselben Antwort mehrere Fragen hinzufügen, indem Sie den Fragen einfach Variationen hinzufügen.

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

QnA Maker-Filter

Filter in QnA Maker sind einfache Schlüssel-Wert-Paare, die zum Eingrenzen von Suchergebnissen, zum Verbessern der Antworten und zum Speichern des Kontexts verwendet werden können.

Verwenden Sie zum Hinzufügen von Filtern folgende Syntax:

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

Im Folgenden finden Sie ein Beispiel für eine mögliche Verwendung von Filtern.

### ? 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
```

PDF-Dateierfassung in QnA Maker

QnA Maker unterstützt auch das Erfassen von PDF-Dateien während der Erstellung einer Wissensdatenbank. Sie können Dateien für QnA Maker hinzufügen, um sie anhand des URL-Verweisschemas zu erfassen. Wenn der Inhaltstyp des URI kein Text oder HTML-Code ist, fügt der Parser ihn der Dateisammlung hinzu, die QnA Maker erfasst.

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

Externe Referenzen

Externe Verweise werden in QNA-Dateien unterstützt. Dabei wird die Syntax für Markdown-Links verwendet.

Verweis auf eine andere QNA-Datei

Sie verweisen auf eine andere QNA-Datei mit [link name](<.qna file name>). Verweise können absolute Pfade oder relative Pfade aus der enthaltenden QNA-Datei sein.

Verweis auf einen Ordner mit QNA-Dateien

Verweise auf einen Ordner mit anderen QNA-Dateien werden wie folgt unterstützt:

  • [link name](<.qna file path>/*): sucht nach .lu-Dateien unter dem angegebenen absoluten oder relativen Pfad.
  • [link name](<.qna file path>/**): sucht rekursiv nach .qna-Dateien unter dem angegebenen absoluten oder relativen Pfad einschließlich Unterordnern.

Verweis auf eine URL

Sie verweisen auf eine URL, die von QnA Maker während der Erstellung der Wissensdatenbank erfasst werden soll, mit [link name](<URL>).

Verweis aus einer bestimmten Datei

Sie können auch Verweise zu Äußerungen hinzufügen, die in einer bestimmten Datei unter einem INTENT-Abschnitt oder als QnA-Paare definiert sind.

  • [link name](<.lu file path>#<INTENT-NAME>): sucht alle unter <INTENT-NAME> in der .lu-Datei gefundenen Äußerungen und fügt sie der Liste der Fragen hinzu, in der der Verweis angegeben ist.
  • [link name](<.lu file path>#*utterances*): sucht alle Äußerungen in der .lu-Datei und fügt Sie der Liste der Fragen hinzu, in der der Verweis angegeben ist.
  • [link name](<.qna file path>#?): sucht Fragen in allen Frage-Antwort-Paaren, die in der .qna-Datei definiert sind, und fügt sie der Liste der Äußerungen hinzu, in der dieser Verweis angegeben ist.
  • [link name](<.qna folder>/*#?): sucht alle Fragen in allen .qna-Dateien im angegebenen Ordner und fügt sie der Liste der Äußerungen hinzu, in der dieser Verweis angegeben ist.

Hier finden Sie ein Beispiel für oben genannte Verweise:

> 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/**)

Modellbeschreibung

Sie können Konfigurationsinformationen für Ihre LUIS-Anwendung oder QnA Maker-Wissensdatenbank in die QNA-Datei einschließen, damit der Parser den LU-Inhalt ordnungsgemäß verarbeiten kann.

Hinweis

Language Understanding (LUIS) wird am 1. Oktober 2025 eingestellt. Ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Eine neuere Version von Language Understanding ist jetzt als Teil von Azure KI Language verfügbar.

Conversational Language Understanding (CLU), ein Feature von Azure KI Language, ist die aktualisierte Version von LUIS. Weitere Informationen zu Language Understanding im Bot Framework-SDK finden Sie unter Natürliches Sprachverständnis.

So fügen Sie mit > !# Konfigurationsdaten hinzu:

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

Beachten Sie, dass alle Informationen, die explizit über CLI-Argumente übermittelt werden, die Informationen in der QNA-Datei überschreiben.

> 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>

Inhalte für mehrere Durchläufe

Inhalte für mehrere Durchläufe werden im QNA-Format mithilfe der Notation für Markdown-Links angegeben. Links werden folgendermaßen angegeben:

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

Optional können Sie context-only für alle Eingabeaufforderungen einschließen, die für diese Frage ausschließlich kontextbasiert verfügbar sind. Lesen Sie den Abschnitt zum Hinzufügen eines neuen Frage-Antwort-Paars als Folgeaufforderung, um mehr über die Verwendung von context zu erfahren.

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

Folgeaufforderungen

Entwickler haben zwei Möglichkeiten zum Erstellen von Folgeaufforderungen: Verwenden einer Frage direkt als Folgeaufforderung oder Zuweisen einer expliziten ID zu einem Frage-Antwort-Paar.

Verwenden einer direkten Frage

Das erste Frage-Antwort-Paar, das den Linktext als question enthält, wird als Eingabeaufforderung hinzugefügt. Wenn Sie eine präzisere Steuerung benötigen, verwenden Sie stattdessen IDs.

Wenn Sie eine direkte Frage verwenden, nutzen Sie die Markdown-Konvention, und ersetzen Sie Leerzeichen durch Bindestriche (verwenden Sie z. B. #?when-is-the-portland-store-open anstelle von #?when is the portland store open). Der Parser versucht, den Link zu finden.

# ?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.
```

Tipp

Der Link wird in den meisten Markdown-Renderern nicht als auswählbarer Link gerendert.

Zuweisen einer expliziten ID zu einem Frage-Antwort-Paar

Weisen Sie jeder Aufforderung IDs mit einer Zahl zu. Im folgenden Beispiel sehen Sie, dass der Eingabeaufforderung für jeden Speicher ein anderer numerischer Wert zugewiesen wurde.

# ?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.
```

Weitere Ressourcen