Формат QNA-файла
ОБЛАСТЬ ПРИМЕНЕНИЯ: ПАКЕТ SDK версии 4
Примечание.
Azure AI QnA Maker будет прекращен 31 марта 2025 г. С 1 октября 2022 г. вы не сможете создавать новые ресурсы или базы знаний QnA Maker. Новая версия вопроса и возможности ответа теперь доступна как часть языка искусственного интеллекта Azure.
Пользовательский ответ на вопросы, компонент языка искусственного интеллекта Azure, — это обновленная версия службы QnA Maker. Дополнительные сведения о поддержке вопросов и ответов в пакете SDK Bot Framework см. в разделе "Распознавание естественного языка".
QNA-файлы содержат напоминающие Markdown текстовые определения понятий QnAmaker.ai. В этой статье описаны несколько понятий, которые выражаются в формате QNA-файла.
Добавление комментариев
> позволяет создать комментарий. Приведем пример:
> This is a comment and will be ignored
Пары вопросов и ответов
Qna-файл и синтаксический анализатор поддерживают определения вопросов и ответов.
Ниже приведен синтаксис определения основного вопроса и ответа:
# ? Question
[list of question variations]
```
Answer
```
Ниже приведены примеры определений вопросов и ответов:
> # 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
```
Обратите внимание на то, что идентификатор типа markdown
для answer
является необязательным.
Несколько вопросов
Можно добавить несколько вопросов для одного ответа, просто добавив варианты вопроса.
### ? Aren't you feeling happy today?
- Feeling cheerful?
```markdown
I'm quite happy, thank you.
```
Фильтры QnA Maker
Фильтры в QnA Maker — это простые пары "ключ-значение", которые можно использовать для сокращения результатов поиска, повышения приоритета ответов и хранения контекста.
Чтобы добавить фильтры, используйте следующий синтаксис:
***Filters:***
- name = value
- name = value
Ниже приведен пример использования фильтра:
### ? 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-файлов в QnA Maker
QnA Maker также поддерживает прием PDF-файлов во время создания базы знаний. Вы можете добавить файлы для приема в QnA Maker, используя схему URL-ссылок. Если тип контента URI не является текстом или HTML, средство синтаксического анализа добавит его в коллекцию файлов для приема QnA Maker.
[SurfaceManual.pdf](https://download.microsoft.com/download/2/9/B/29B20383-302C-4517-A006-B0186F04BE28/surface-pro-4-user-guide-EN.pdf)
Внешние ссылки
В QNA-файле можно указывать внешние ссылки, используя синтаксис ссылок Markdown.
Ссылка на другой QNA-файл
Можно указать ссылку на другой QNA-файл с помощью [link name](<.qna file name>)
. Ссылка может быть абсолютным путем или относительным путем от содержащего сведения QNA-файла.
Ссылка на папку, содержащую QNA-файлы
Ссылка на папку с другими QNA-файлами поддерживается следующим образом.
[link name](<.qna file path>/*)
: ищет QNA-файлы под указанным абсолютным или относительным путем.[link name](<.qna file path>/**)
: рекурсивно ищет QNA-файлы под указанным абсолютным или относительным путем, включая вложенные папки.
Ссылка на URL-адрес
Можно указать ссылку на URL-адрес для приема файлов в QnAMaker во время создания базы знаний с помощью [link name](<URL>)
.
Ссылка из указанного файла
Можно также добавить ссылки на речевые фрагменты, определенные в заданном файле в разделе intent или в виде пар вопросов и ответов.
[link name](<.lu file path>#<INTENT-NAME>)
: находит все речевые фрагменты, найденные в файле <INTENT-NAME> в LU-файле, и добавляет их в список вопросов, в которых указана ссылка.[link name](<.lu file path>#*utterances*)
: находит все речевые фрагменты в LU-файле и добавляет их в список вопросов, где указана ссылка.[link name](<.qna file path>#?)
: находит вопросы из всех пар QnA, определенных в Qna-файле, и добавляет их в список речевых фрагментов, в которых указана эта ссылка.[link name](<.qna folder>/*#?)
: находит все вопросы из всех QNA-файлов в указанной папке и добавляет их в список речевых фрагментов, в которых указана эта ссылка.
Ниже приведен пример приведенных выше ссылок:
> 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/**)
Описание модели
В QNA-файл можно добавить сведения о конфигурации для приложения LUIS или базы знаний QnA Maker, чтобы указать средству синтаксического анализа, как правильно обработать содержимое LU-файла.
Примечание.
Распознавание речи (LUIS) будет прекращен 1 октября 2025 года. Начиная с 1 апреля 2023 года вы не сможете создавать новые ресурсы LUIS. Новая версия распознавания речи теперь доступна как часть языка ИИ Azure.
Распознавание речи (CLU) — это обновленная версия LUIS. Дополнительные сведения о поддержке распознавания речи в пакете SDK Bot Framework см. в разделе "Распознавание естественного языка".
Вот как добавить сведения о конфигурации sing > !#:
> !# @<property> = <value>
> !# @<scope>-<property> = <value>
> !# @<scope>-<property> = <semicolon-delimited-key-value-pairs>
Обратите внимание на то, что любые сведения, явно переданные через аргументы интерфейса командной строки, переопределяют сведения в 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>
Многошаговое содержимое
Для представления многошагового содержимого в формате QNA-файла используется нотация ссылки Markdown. Ссылки указываются следующим образом:
- [display text](#<ID or question>)
При необходимости можно включить context-only
любые запросы, которые доступны только контекстно для вопроса. Ознакомьтесь с разделом о добавлении существующей пары "вопрос-ответ" в качестве запроса для дальнейших действий, чтобы узнать больше об использовании context
.
- [tell me a joke](#?joke) `context-only`
Запросы для дальнейших действий
У разработчиков есть два варианта создания запросов для дальнейших действий: использовать вопрос непосредственно в качестве запроса для дальнейших действий или назначить явный идентификатор паре "вопрос-ответ".
Непосредственное использование вопроса
Первая пара "вопрос-ответ" с текстом ссылки вида question
будет добавлена в качестве запроса. Если требуется более явное управление, используйте вместо этого идентификаторы.
При непосредственном использовании вопроса используйте соглашение Markdown и замените пробелы дефисом (например, вместо #?when-is-the-portland-store-open
#?when is the portland store open
него). Средство синтаксического анализа приложит все усилия, чтобы найти ссылку.
# ?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.
```
Совет
Ссылка на самом деле не будет отображаться в качестве выбранной ссылки в большинстве отрисовщиков Markdown.
Назначение явного идентификатора паре "вопрос-ответ"
Назначьте каждому запросу идентификатор с номером. В приведенном ниже примере запросу для каждого магазина назначено уникальное числовое значение.
# ?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.
```
Дополнительные ресурсы
- Узнайте больше о формате LU-файла.