Пули меняются, когда я экспортирую данные создателя QnA через powershell - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь экспортировать данные из QnA maker, используя QnA maker cli и powershell script, чтобы сохранить их на локальном устройстве. Когда я пытаюсь экспортировать данные в паре QnA, они преобразуются в файл json

Я использую это в моем сценарии ConvertTo-Json -depth 50

$QnAMakerFAQId = Read-Host 'Please enter the KB id of FAQ QnA maker of cognitive service'
$jsonRepresentation | qnamaker export kb --kbId $QnAMakerFAQId --environment "prod" | ConvertTo-Json -depth 50| Out-File "QnAMakerFAQ.json"

Ожидаемый результат:

{
      "id": 101,
      "answer": "•Sample Text1\n\n•Sample Text2",
      "source": "Editorial",
      "questions": [
        "training"
      ],
      "metadata": [],
      "alternateQuestions": "",
      "alternateQuestionClusters": []
},

Фактический результат:

{
      "id": 101,
      "answer": "ΓÇóSample Text1\n\nΓÇóSample Text2",
      "source": "Editorial",
      "questions": [
        "training"
      ],
      "metadata": [],
      "alternateQuestions": "",
      "alternateQuestionClusters": []
},

1 Ответ

0 голосов
/ 16 мая 2019

Это, похоже, проблема с окном консоли Windows PowerShell v5 (для меня). В PowerShell Core (v6), похоже, нет этой проблемы.

Запустив команду qnamaker на консоли (просто qnamaker export kb --kbId $QnAMakerFAQId --environment "prod"), все будет в порядке:

{
      "id": 96,
      "answer": "•Sample Text1 •Sample Text2",
      "source": "Editorial",
      "questions": [
        "What about testing?"

Но как только вы поместите его в переменную или попытаетесь передать по конвейеру, он преобразует его.

Как ни странно, просто вставка текста с маркерами даже не отображает их:

$testing = "Sample Text1 Sample Text2"

Но в PowerShell Core v6 (или даже в bash) проблем нет:

$testing = "•Sample Text1 •Sample Text2"

Это не проблема qnamaker, а проблема PowerShell / консоли.

Кодировка для Out-File не имеет значения, если он испортился до этого шага. (Я проверил это, и это не сработало).

...