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
- Consulte el formato de archivo .lu para obtener información sobre el formato de archivo .lu.