Formato de archivo .qna

SE APLICA A: SDK v4

Nota:

Azure AI QnA Maker se retirará el 31 de marzo de 2025. A partir del 1 de octubre de 2022, no podrá crear nuevos recursos o bases de conocimiento de QnA Maker. Ya hay disponible una versión más reciente de la funcionalidad de preguntas y respuestas como parte de Lenguaje de Azure AI.

La respuesta a preguntas personalizadas, una característica de Lenguaje de Azure AI, es la versión actualizada del servicio QnA Maker. Para obtener más información sobre la compatibilidad con preguntas y respuestas en el SDK de Bot Framework, consulte Reconocimiento del lenguaje natural.

Los archivos .qna contienen definiciones basadas en texto de tipo Markdown de conceptos de QnAmaker.ai. En este artículo se tratan los diversos conceptos que se expresan a través del formato de archivo .qna.

Agregar comentarios

Use > para crear un comentario. Este es un ejemplo:

> This is a comment and will be ignored

Pares de preguntas y respuestas

El archivo .qna y el analizador admite las definiciones de preguntas y respuestas.

A continuación se muestra una definición básica de preguntas y respuestas:

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

A continuación se muestran ejemplos de definiciones de preguntas y respuestas:

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

Tenga en cuenta que el identificador de tipo markdown de una answer es opcional.

Varias preguntas

Puede agregar varias preguntas a la misma respuesta simplemente agregando variaciones a las preguntas.

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

Filtros de QnA Maker

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.

Use la siguiente sintaxis para agregar filtros:

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

A continuación se muestra un ejemplo de cómo se podría usar un filtro:

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

QnA Maker también admite la ingesta de archivos PDF durante la creación de la KB. Puede agregar archivos para que QnA Maker los ingiera mediante el esquema de referencia de la dirección URL. 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.

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

Referencias externas

Las referencias externas se admiten en el archivo .qna y usan la sintaxis del vínculo de Markdown.

Hacer referencia a otro archivo .qna

Haga referencia a otro archivo .qna mediante [link name](<.qna file name>). Las referencias pueden ser una ruta de acceso absoluta o una ruta de acceso relativa del archivo .qna contenedor.

Hacer referencia a una carpeta que contiene archivos .qna

Hacer referencia a una carpeta con otros archivos .qna se admite a través de:

  • [link name](<.qna file path>/*): busca archivos .qna en la ruta de acceso absoluta o relativa especificada.
  • [link name](<.qna file path>/**): busca de forma recursiva archivos .qna en la ruta de acceso absoluta o relativa especificada, incluidas subcarpetas.

Hacer referencia a una dirección 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>).

Hacer referencia desde un archivo específico

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.

  • [link name](<.lu file path>#<INTENT-NAME>): busca todas las expresiones que se encuentran en <INTENT-NAME> en el archivo .lu y las agrega a la lista de preguntas en las que se especifica la referencia.
  • [link name](<.lu file path>#*utterances*): busca todas las expresiones en el archivo .lu y las agrega a la lista de preguntas en las que se especifica la referencia.
  • [link name](<.qna file path>#?): busca preguntas de todos los pares PyR definidos en el archivo .qna y las agrega a la lista de expresiones en las que se especifica esta referencia.
  • [link name](<.qna folder>/*#?): busca todas las preguntas de todos los archivos .qna en la carpeta especificada y las agrega a la lista de expresiones en las que se especifica esta referencia.

Este es un ejemplo de las referencias anteriores:

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

Descripción del modelo

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.

Nota:

Reconocimiento del lenguaje (LUIS) se retirará el 1 de octubre de 2025. A partir del 1 de abril de 2023, no podrá crear nuevos recursos de LUIS. Hay disponible una versión más reciente de las funcionalidades de reconocimiento del lenguaje como parte del Lenguaje de Azure AI.

Reconocimiento del lenguaje conversacional (CLU), una característica del lenguaje de Azure AI, es la versión actualizada de LUIS. Para obtener más información sobre la compatibilidad con reconocimiento del lenguaje en el SDK de Bot Framework, consulte Reconocimiento del lenguaje natural.

Aquí se muestra cómo agregar la información de configuración 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.

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

El contenido multiturno se representa en formato .qna mediante la notación del vínculo de Markdown. Los vínculos se especifican de la siguiente manera:

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

Opcionalmente, puede incluir context-only para las consultas que solo están disponibles de forma contextual para esta pregunta. 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.

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

Avisos de seguimiento

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.

Usar una pregunta directamente

El primer par de QnA que tenga el texto del vínculo como question se agregará como mensaje. Si necesita un control más explícito, use identificadores en su lugar.

Cuando use directamente una pregunta, utilice la convención Markdown y reemplace los espacios por guiones (por ejemplo, emplee #?when-is-the-portland-store-open en lugar de #?when is the portland store open). El analizador hará todo lo posible para encontrar el vínculo.

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

Sugerencia

El vínculo no se representará realmente como un vínculo seleccionable en la mayoría de los representadores de Markdown.

Asignar un identificador explícito a un par de QnA

Asigne identificadores para cada mensaje con un número. En el ejemplo siguiente puede ver que se ha asignado un valor numérico diferente al mensaje para cada almacén.

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