Udostępnij za pośrednictwem


Format pliku qna

DOTYCZY: ZESTAW SDK w wersji 4

Uwaga

Usługa Azure AI QnA Maker zostanie wycofana 31 marca 2025 r. Od 1 października 2022 r. nie będzie można tworzyć nowych zasobów ani baz wiedzy w programie QnA Maker. Nowsza wersja funkcji pytań i odpowiedzi jest teraz dostępna w ramach języka sztucznej inteligencji platformy Azure.

Niestandardowe odpowiadanie na pytania, funkcja języka azure AI, to zaktualizowana wersja usługi QnA Maker. Aby uzyskać więcej informacji na temat obsługi pytań i odpowiedzi w zestawie SDK platformy Bot Framework, zobacz Opis języka naturalnego.

Pliki qna zawierają definicje oparte na tekście przypominające język Markdown dla pojęć QnAmaker.ai . W tym artykule omówiono różne pojęcia wyrażone w formacie pliku qna.

Dodawanie komentarzy

Użyj polecenia > , aby utworzyć komentarz. Oto przykład:

> This is a comment and will be ignored

Pary pytań i odpowiedzi

Plik qna i analizator obsługują definicje pytań i odpowiedzi.

Oto składnia podstawowego pytania i definicji odpowiedzi:

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

Oto przykłady definicji pytań i odpowiedzi:

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

Należy pamiętać, że markdown identyfikator typu elementu answer jest opcjonalny.

Wiele pytań

Możesz dodać wiele pytań do tej samej odpowiedzi, dodając po prostu odmiany do pytań.

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

Filtry QnAMaker

Filtry w usłudze QnA Maker to proste pary klucz-wartość, których można użyć do zawężenia wyników wyszukiwania, zwiększenia odpowiedzi i kontekstu sklepu.

Użyj następującej składni, aby dodać filtry:

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

Oto przykład użycia filtru:

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

Pozyskiwanie plików PDF usługi QnA Maker

Usługa QnA Maker obsługuje również pozyskiwanie plików PDF podczas tworzenia bazy wiedzy. Pliki dla usługi QnA Maker można dodawać do pozyskiwania przy użyciu schematu odwołania adresu URL. Jeśli typ zawartości identyfikatora URI nie jest tekstem ani kodem HTML, analizator doda go do kolekcji plików dla usługi QnA Maker w celu pozyskiwania.

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

Odwołania zewnętrzne

Odwołania zewnętrzne są obsługiwane w pliku qna i używają składni linku Języka Markdown.

Odwołanie do innego pliku qna

Odwołanie do innego pliku qna przy użyciu polecenia [link name](<.qna file name>). Odwołania mogą być ścieżką bezwzględną lub ścieżką względną z pliku zawierającego .qna.

Odwołanie do folderu zawierającego pliki qna

Odwołanie do folderu z innymi plikami qna jest obsługiwane za pośrednictwem:

  • [link name](<.qna file path>/*): wyszukuje pliki qna w określonej ścieżce bezwzględnej lub względnej.
  • [link name](<.qna file path>/**): rekursywnie wyszukuje pliki qna w określonej ścieżce bezwzględnej lub względnej, w tym podfoldery.

Odwołanie do adresu URL

Odwołuj się do adresu URL metody QnAMaker do pozyskiwania podczas tworzenia bazy wiedzy za pośrednictwem metody [link name](<URL>).

Odwołanie z określonego pliku

Można również dodawać odwołania do wypowiedzi zdefiniowanych w określonym pliku w sekcji intencji lub jako pary pytań i odpowiedzi.

  • [link name](<.lu file path>#<INTENT-NAME>): znajduje wszystkie wypowiedzi znalezione w obszarze <INTENT-NAME> w pliku lu i dodaje je do listy pytań, w których określono odwołanie.
  • [link name](<.lu file path>#*utterances*): znajduje wszystkie wypowiedzi w pliku lu i dodaje je do listy pytań, w których określono odwołanie.
  • [link name](<.qna file path>#?): znajduje pytania ze wszystkich par pytań i odpowiedzi zdefiniowanych w pliku qna i dodaje je do listy wypowiedzi, w których określono to odwołanie.
  • [link name](<.qna folder>/*#?): znajduje wszystkie pytania ze wszystkich plików qna w określonym folderze i dodaje je do listy wypowiedzi, w których określono to odwołanie.

Oto przykład powyższych odwołań:

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

Opis modelu

Informacje o konfiguracji aplikacji usługi LUIS lub bazy wiedzy usługi QnA Maker można uwzględnić w pliku qna, aby ułatwić poprawne kierowanie analizatora do obsługi zawartości LU.

Uwaga

Usługa Language Understanding (LUIS) zostanie wycofana 1 października 2025 r. Od 1 kwietnia 2023 r. nie będzie można tworzyć nowych zasobów usługi LUIS. Nowsza wersja interpretacji języka jest teraz dostępna w ramach języka sztucznej inteligencji platformy Azure.

Język konwersacyjny (CLU), funkcja języka AI platformy Azure, to zaktualizowana wersja usługi LUIS. Aby uzyskać więcej informacji na temat obsługi języka w zestawie SDK platformy Bot Framework, zobacz Opis języka naturalnego.

Poniżej przedstawiono sposób dodawania informacji o konfiguracji śpiewających > !#:

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

Należy pamiętać, że wszystkie informacje jawnie przekazane za pośrednictwem argumentów interfejsu wiersza polecenia zastąpią informacje w pliku 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>

Zawartość wielowrotna

Zawartość wielowrotna jest reprezentowana w formacie qna przy użyciu notacji linków Języka Markdown. Linki są określane przy użyciu następującego sposobu:

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

Opcjonalnie można uwzględnić context-only monity, które są dostępne tylko kontekstowo dla pytania. Przeczytaj sekcję dotyczącą dodawania istniejącej pary pytań i odpowiedzi jako monitu z monitem , aby dowiedzieć się więcej na temat korzystania z usługi context.

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

Monity dotyczące monitów

Deweloperzy mają dwie opcje tworzenia monitów monitujących: używanie pytania jako monitu bezpośredniego lub przypisywanie jawnego identyfikatora do pary pytań i odpowiedzi.

Bezpośrednie używanie pytania

Pierwsza para pytań i odpowiedzi, która zawiera tekst linku jako element question , zostanie dodana jako monit. Jeśli potrzebujesz bardziej jawnej kontrolki, użyj identyfikatorów .

Jeśli używasz pytania bezpośrednio, użyj konwencji języka Markdown i zastąp spacje łącznikami (na przykład użyj polecenia #?when-is-the-portland-store-open zamiast #?when is the portland store open). Analizator zrobi wszystko, co w jego mocy, aby znaleźć 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.
```

Napiwek

Link nie będzie faktycznie renderowany jako link do wyboru w większości renderatorów języka Markdown.

Przypisywanie jawnego identyfikatora do pary pytań i odpowiedzi

Przypisz identyfikatory dla każdego monitu z liczbą. W poniższym przykładzie można zobaczyć, że dla każdego magazynu przypisano inną wartość liczbową.

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

Dodatkowe zasoby