.qna 파일 형식.qna file format

적용 대상: SDK v4APPLIES TO: SDK v4

.qna 파일에는 QnAmaker.ai 개념에 대한 Markdown 같은 텍스트 기반 정의가 포함되어 있습니다..qna files contain Markdown-like text based definitions for QnAmaker.ai concepts. 이 문서에서는 .qna 파일 형식을 통해 표현되는 다양한 개념을 설명합니다.This article covers the various concepts expressed via the .qna file format.

주석 추가Adding comments

> 를 사용하여 주석을 만듭니다.Use > to create a comment. 예를 들면 다음과 같습니다.Here's an example:

> This is a comment and will be ignored

질문 및 대답 쌍Question and Answer pairs

Qna 파일 및 파서는 질문과 대답 정의를 지원 합니다.The .qna file and parser support question and answer definitions.

다음은 기본 질문 및 답변 정의의 구문입니다.Here's the syntax of a basic question and answer definition:

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

질문 및 답변 정의의 예는 다음과 같습니다.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
```

answer에 대한 markdown 형식 식별자는 선택 사항입니다.Note that the markdown type identifier for an answer is optional.

여러 질문Multiple questions

질문에 변형을 추가하기만 하면 동일한 답변에 여러 질문을 추가할 수 있습니다.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.
```

QnAMaker 필터QnAMaker Filters

QnA Maker의 필터는 검색 결과의 범위를 좁히고, 답변을 향상하고, 컨텍스트를 저장하는 데 사용할 수 있는 간단한 키-값 쌍입니다.Filters in QnA Maker are simple key-value pairs that can be used to narrow search results, boost answers and store context.

다음 구문을 사용 하 여 필터를 추가 합니다.Use the following syntax to add filters:

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

필터를 사용 하는 방법의 예는 다음과 같습니다.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
```

QnA Maker PDF 파일 수집QnA Maker PDF file ingestion

KB를 만드는 동안에도 QnA Maker PDF 파일 수집을 지원합니다.QnA Maker also supports ingesting PDF files during KB creation. URL 참조 체계를 사용하여 QnA Maker가 수집할 파일을 추가할 수 있습니다.You can add files for QnA Maker to ingest using the URL reference scheme. URI의 콘텐츠 형식이 텍스트 또는 HTML이 아니면 파서가 이를 QnA Maker가 수집할 파일 컬렉션에 추가합니다.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)

외부 참조External references

외부 참조는 .qna 파일에서 지원되며 Markdown 링크 구문을 사용합니다.External references are supported in the .qna file and use Markdown link syntax.

다른 .qna 파일 참조Reference another .qna file

[link name](<.qna file name>)을 사용하여 다른 .qna 파일을 참조합니다.Reference to another .qna file using [link name](<.qna file name>). 참조는 포함하는 .qna 파일의 절대 경로 또는 상대 경로일 수 있습니다.References can be an absolute path or a relative path from the containing .qna file.

.qna 파일이 포함된 폴더 참조Reference to a folder containing .qna files

.qna 파일이 있는 폴더에 대한 참조는 다음을 통해 지원됩니다.Reference to a folder with other .qna files is supported through:

  • [link name](<.qna file path>/*): 지정 된 절대 경로 또는 상대 경로 아래에 있는 qna 파일을 찾습니다.[link name](<.qna file path>/*): looks for .qna files under the specified absolute or relative path.
  • [link name](<.qna file path>/**): 하위 폴더를 포함 하 여 지정 된 절대 경로 또는 상대 경로 아래에 있는 qna 파일을 재귀적으로 찾습니다.[link name](<.qna file path>/**): recursively looks for .qna files under the specified absolute or relative path including subfolders.

URL 참조Reference a URL

[link name](<URL>)을 통해 KB를 만드는 동안 QnAMaker가 수집할 URL을 참조합니다.Reference a URL for QnAMaker to ingest during KB creation via [link name](<URL>).

특정 파일에서 참조Reference from a specific file

의도 섹션 아래에서 또는 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>):. m a t 파일에서 <의도-이름>에 있는 모든 길이 발언를 찾아서 참조가 지정 된 질문 목록에 추가 합니다.[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*): 파일에서 모든 길이 발언를 찾아 참조가 지정 된 질문 목록에 추가 합니다.[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>#?): QnA 파일에 정의 된 모든 QnA 쌍에서 질문을 찾아이 참조가 지정 된 길이 발언 목록에 추가 합니다.[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>/*#?): 지정 된 폴더에 있는 모든 qna 파일에서 모든 질문을 찾아이 참조가 지정 된 길이 발언의 목록에 추가 합니다.[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.

위 참조의 예는 다음과 같습니다.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/**)

모델 설명Model description

LUIS 애플리케이션 또는 .qna 파일의 QnA Maker KB에 대한 구성 정보를 포함하여 파서가 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.

> 하는 구성 정보를 추가 하는 방법은 다음과 같습니다.Here's how to add configuration information sing > !#:

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

CLI 인수를 통해 명시적으로 전달되는 정보는 .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>

멀티턴 콘텐츠Multiturn content

멀티턴 콘텐츠는 Markdown 링크 표기법을 사용하여 .qna 형식으로 표현됩니다.Multiturn content is represented in .qna format using Markdown link notation. 링크는 다음과 같은 방법을 사용 하 여 지정 됩니다.Links are specified using the following way:

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

context-only질문에만 사용할 수 있는 컨텍스트에 대 한 프롬프트를 선택적으로 포함할 수 있습니다.You can optionally include context-only for any prompts that are only contextually available for a question. 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`

후속 프롬프트 추가Follow-up prompts

개발자는 후속 프롬프트를 만드는 두 가지 옵션, 즉 질문을 후속 프롬프트로 직접 사용하거나 QnA 쌍에 명시적 ID를 할당하는 방법을 사용할 수 있습니다.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.

질문을 직접 사용Use a question directly

링크 텍스트가 question인 첫 번째 QnA 쌍이 프롬프트로 추가됩니다.The first QnA pair that has the link text as a question will be added as the prompt. 더 명확한 제어가 필요한 경우에는 ID를 대신 사용하세요.If you need more explicit control, use IDs instead.

질문을 직접 사용 하는 경우 Markdown 규칙을 사용 하 고 공백을 하이픈으로 바꿉니다 (예: #?when-is-the-portland-store-open 대신를 사용 #?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). 파서가 최선을 다해 링크를 찾을 것입니다.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.
```

대부분의 Markdown 렌더러에서는 링크가 클릭 가능한 링크로 실제 렌더링하지 않습니다.Note that the link will not actually render as a clickable link in most Markdown renderers.

QnA 쌍에 명시적 ID 할당Assign an explicit ID to a QnA pair

번호를 사용하여 각 프롬프트에 ID를 할당합니다.Assign IDs for each prompt with a number. 아래 예제에서 각 매장에 대한 프롬프트에 다른 숫자 값이 할당된 것을 확인할 수 있습니다.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.
```

추가 리소스Additional Resources