Formato de archivo .qna.qna file format

se aplica a: SDK V4APPLIES TO: SDK v4

Los archivos .qna contienen definiciones basadas en texto de tipo Markdown de conceptos de QnAmaker.ai..qna files contain Markdown-like text based definitions for QnAmaker.ai concepts. En este artículo se tratan los diversos conceptos que se expresan a través del formato de archivo .qna.This article covers the various concepts expressed via the .qna file format.

Agregar comentariosAdding comments

Use > para crear un comentario.Use > to create a comment. Este es un ejemplo:Here's an example:

> This is a comment and will be ignored

Pares de preguntas y respuestasQuestion and Answer pairs

El archivo .qna y el analizador admiten definiciones de preguntas y respuestas.The .qna file and parser support question and answer definitions.

Esta es la sintaxis de una definición básica de pregunta y respuesta:Here's the syntax of a basic question and answer definition:

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

Estos son ejemplos de definiciones de preguntas y respuestas:Here's are examples of question and answer definitions:

> # QnA Definitions
### ? who is the ceo?
```
You can change the default message if you use the QnAMakerDialog.
See [this link](https://docs.botframework.com/en-us/azure-bot-service/templates/qnamaker/#navtitle) for details.
```


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

Tenga en cuenta que el identificador de tipo markdown de una answer es opcional.Note that the markdown type identifier for an answer is optional.

Varias preguntasMultiple questions

Puede agregar varias preguntas a la misma respuesta simplemente agregando variaciones a las preguntas.You can add multiple questions to the same answer by simply adding variations to questions.

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

Filtros de QnA MakerQnAMaker Filters

Los filtros de QnA Maker son pares clave-valor que se pueden usar para restringir los resultados de la búsqueda, aumentar las respuestas y almacenar el contexto.Filters in QnA Maker are simple key-value pairs that can be used to narrow search results, boost answers and store context.

Use la sintaxis siguiente para agregar filtros:Use the following syntax to add filters:

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

Este es un ejemplo de cómo se podría usar un filtro:Here's an example of how a filter could be used:

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

Ingesta de archivos PDF de QnA MakerQnA Maker PDF file ingestion

QnA Maker también admite la ingesta de archivos PDF durante la creación de la KB.QnA Maker also supports ingesting PDF files during KB creation. Puede agregar archivos para que QnA Maker los ingiera mediante el esquema de referencia de la dirección URL.You can add files for QnA Maker to ingest using the URL reference scheme. Si el tipo de contenido del URI no es texto ni HTML, el analizador lo agregará a la recopilación de archivos para que QnA Maker lo ingiera.If the URI's content type is not text or HTML, then the parser will add it to files collection for QnA Maker to ingest.

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

Referencias externasExternal references

Las referencias externas se admiten en el archivo .qna y usan la sintaxis del vínculo de Markdown.External references are supported in the .qna file and use Markdown link syntax.

Hacer referencia a otro archivo .qnaReference another .qna file

Haga referencia a otro archivo .qna mediante [link name](<.qna file name>).Reference to another .qna file using [link name](<.qna file name>). Las referencias pueden ser una ruta de acceso absoluta o una ruta de acceso relativa del archivo .qna contenedor.References can be an absolute path or a relative path from the containing .qna file.

Hacer referencia a una carpeta que contiene archivos .qnaReference to a folder containing .qna files

Hacer referencia a una carpeta con otros archivos .qna se admite a través de:Reference to a folder with other .qna files is supported through:

  • [link name](<.qna file path>/*): busca archivos .qna en la ruta de acceso absoluta o relativa especificada.[link name](<.qna file path>/*): looks for .qna files under the specified absolute or relative path.
  • [link name](<.qna file path>/**): busca de forma recursiva archivos .qna en la ruta de acceso absoluta o relativa especificada, incluidas las subcarpetas.[link name](<.qna file path>/**): recursively looks for .qna files under the specified absolute or relative path including subfolders.

Hacer referencia a una dirección URLReference a URL

Haga referencia a una dirección URL para que QnA Maker la ingiera durante la creación de la KB a través de [link name](<URL>).Reference a URL for QnAMaker to ingest during KB creation via [link name](<URL>).

Hacer referencia desde un archivo específicoReference from a specific file

También puede agregar referencias a expresiones definidas en un archivo específico en una sección de intención o como pares de QnA.You can also add references to utterances defined in a specific file under an intent section or as QnA pairs.

  • [link name](<.lu file path>#<INTENT-NAME>): busca todas las expresiones que se encuentran en en el archivo .lu y las agrega a la lista de preguntas donde se especifica la referencia.[link name](<.lu file path>#<INTENT-NAME>): finds all utterances found under in the .lu file and adds them to the list of questions where the reference is specified.
  • [link name](<.lu file path>#*utterances*): busca todas las expresiones en el archivo .lu y las agrega a la lista de preguntas donde se especifica la referencia.[link name](<.lu file path>#*utterances*): finds all utterances in the .lu file and adds them to the list of questions where the reference is specified.
  • [link name](<.qna file path>#?): busca preguntas de todos los pares de QnA definidos en el archivo .qna y las agrega a la lista de expresiones donde se especifica esta referencia.[link name](<.qna file path>#?): finds questions from all QnA pairs defined in the .qna file and adds them to the list of utterances where this reference is specified.
  • [link name](<.qna folder>/*#?): busca todas las preguntas de todos los archivos .qna de la carpeta especificada y las agrega a la lista de expresiones donde se especifica esta referencia.[link name](<.qna folder>/*#?): finds all questions from all .qna files in the specified folder and adds them to the list of utterances where this reference is specified.

Este es un ejemplo de las referencias anteriores:Here's an example of the above references:

> QnA URL reference
[QnaURL](/en-in/azure/cognitive-services/qnamaker/faqs)

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

Descripción del modeloModel description

Puede incluir información de configuración de la aplicación de LUIS o la KB de QnA Maker en el archivo .qna para ayudar a que el analizador controle correctamente el contenido de LU.You can include configuration information for your LUIS application or QnA Maker KB in the .qna file to help direct the parser to handle the LU content correctly.

Aquí se muestra cómo agregar información de configuración para> !#:Here's how to add configuration information sing > !#:

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

Tenga en cuenta que cualquier información que se pase explícitamente a través de argumentos de la CLI invalidará la información del archivo .qna.Note that any information explicitly passed in via CLI arguments will override information in the .qna file.

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

Contenido multiturnoMultiturn content

El contenido multiturno se representa en formato .qna mediante la notación del vínculo de Markdown.Multiturn content is represented in .qna format using Markdown link notation. Los vínculos se especifican de la siguiente manera:Links are specified using the following way:

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

Opcionalmente, puede incluir context-only para cualquier mensaje que solo esté disponible contextualmente para una pregunta.You can optionally include context-only for any prompts that are only contextually available for a question. Lea la sección sobre cómo incorporar un par de pregunta y respuesta existente como aviso de seguimiento para obtener más información sobre el uso de context.Read the section about adding an existing question-and-answer pair as a follow-up prompt to learn more about use of context.

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

Avisos de seguimientoFollow-up prompts

Los desarrolladores tienen dos opciones para crear avisos de seguimiento: usar una pregunta como aviso de seguimiento directamente o asignar un identificador explícito a un par de QnA.Developers have two options for creating follow-up prompts: using a question as a follow-up prompt directly, or assigning an explicit ID to a QnA pair.

Usar una pregunta directamenteUse a question directly

El primer par de QnA que tenga el texto del vínculo como question se agregará como mensaje.The first QnA pair that has the link text as a question will be added as the prompt. Si necesita un control más explícito, use identificadores en su lugar.If you need more explicit control, use IDs instead.

Cuando use directamente una pregunta, use la convención de Markdown y reemplace los espacios por guiones (por ejemplo, use #?when-is-the-portland-store-open en lugar de #?when is the portland store open ).When you're directly using a question, use Markdown convention and replace spaces with hyphens (for example, use #?when-is-the-portland-store-open instead of #?when is the portland store open). El analizador hará todo lo posible para encontrar el vínculo.The parser will do its best to find the link.

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

Tenga en cuenta que el vínculo no se representará realmente como un vínculo en el que se puede hacer clic en la mayoría de los representadores de Markdown.Note that the link will not actually render as a clickable link in most Markdown renderers.

Asignar un identificador explícito a un par de QnAAssign an explicit ID to a QnA pair

Asigne identificadores para cada mensaje con un número.Assign IDs for each prompt with a number. En el ejemplo siguiente puede ver que se ha asignado un valor numérico diferente al mensaje para cada almacén.You can see in the example below the prompt for each store has been assigned a different numeric value.

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

Recursos adicionalesAdditional Resources