Ottenere una risposta da una knowledge base di QNA Maker

Nota

Azure Open AI On Your Data usa modelli di linguaggio di grandi dimensioni per produrre risultati simili a QnA Maker. Per eseguire la migrazione del progetto QnA Maker ad Azure Open AI On Your Data, consultare la guida.

Nota

Il servizio QnA Maker viene ritirato il 31 marzo 2025. Una versione più recente della funzionalità di domande e risposte è ora disponibile come parte del linguaggio di intelligenza artificiale di Azure. Per le funzionalità di risposta alle domande all'interno del servizio di linguaggio, vedere La risposta alle domande. A partire dal 1° ottobre 2022 non sarà possibile creare nuove risorse di QnA Maker. Per informazioni sulla migrazione delle knowledge base di QnA Maker esistenti alla risposta alle domande, vedere la guida alla migrazione.

Nota

Questa documentazione non si applica alla versione più recente. Per informazioni sull'uso delle API di risposta alle domande più recenti, vedere la guida alla creazione di risposte alle domande.

Questa guida introduttiva basata su cURL assiste nell'ottenimento di una risposta dalla knowledge base.

Prerequisiti

  • Devi avere
    • cURL più recente.
    • Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Una risorsa QnA Maker creata nel portale di Azure. Ricordare il nome della risorsa Microsoft Entra ID, Sottoscrizione, QnA selezionato al momento della creazione della risorsa.
  • Una knowledge base con domande e risposte pubblicata e di cui è stato eseguito il training creata nell'argomento di avvio rapido precedente configurata con metadati e chit chat.

Nota

Una volta pronti a generare una risposta per una domanda dalla knowledge base, è necessario eseguire il training e pubblicare la knowledge base. Una volta pubblicata la knowledge base, nella pagina Pubblica vengono visualizzate le impostazioni della richiesta HTTP per generare una risposta. La scheda cURL mostra le impostazioni necessarie per generare una risposta dallo strumento da riga di comando.

Usare i metadati per filtrare una risposta

Usare la knowledge base dell'argomento di avvio rapido precedente per eseguire una query per ottenere una risposta in base ai metadati.

  1. Nella pagina Impostazioni della knowledge base selezionare la scheda CURL per visualizzare un esempio di comando cURL usato per generare una risposta dalla knowledge base.

  2. Copiare il comando in un ambiente modificabile (come un file di testo) in modo da poterlo modificare. Modificare il valore della domanda come indicato di seguito in modo che i metadati di service:qna_maker vengano usati come filtro per le coppie di domande e risposte.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'top':30, 'question':'size','strictFilters': [{'name':'service','value':'qna_maker'}]}"
    

    La domanda è costituita da una singola parola, size, che può restituire una delle due coppie di domande e risposte. La matrice strictFilters indica di limitare le risposte a quelle con tag qna_maker.

  3. La risposta include solo la risposta che soddisfa i criteri di filtro. La risposta cURL seguente è stata formattata per migliorare la leggibilità:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Se è presente una coppia di domande e risposte che non soddisfa il termine di ricerca ma soddisfa il filtro, non viene restituita. Viene invece restituita la risposta generale No good match found in KB..

Usare una proprietà per la query di debug

Nota

Non è consigliabile usare la proprietà Debug per una dipendenza. Questa proprietà è stata aggiunta per assistere il team di prodotto nella risoluzione dei problemi.

Le informazioni di debug consentono di capire come è stata determinata la risposta restituita. Sebbene siano utili, non sono necessarie. Per generare una risposta con le informazioni di debug, aggiungere la proprietà debug:

Debug: {Enable:true}
  1. Modificare il comando cURL in modo da includere la proprietà di debug per visualizzare altre informazioni.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'Debug':{'Enable':true}}"
    
  2. La risposta include le informazioni pertinenti alla risposta. Nel seguente output JSON, alcuni dettagli di debug sono stati sostituiti con i puntini di sospensione per brevità.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

Usare la knowledge base di test

Se si vuole ottenere una risposta dalla knowledge base di test, usare la proprietà del corpo isTest.

La proprietà è un valore booleano.

isTest:true

Il comando cURL è simile al seguente:

curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'IsTest':true}"

La risposta JSON usa lo stesso schema della query della knowledge base pubblicata.

Nota

Se la knowledge base pubblicata e quella di test sono esattamente le stesse, potrebbero esserci ancora alcune lievi variazioni perché l'indice di test è condiviso tra tutte le knowledge base della risorsa.

Usare cURL per eseguire una query per una risposta Chit-chat

  1. Nel terminale abilitato per cURL usare una frase dell'utente del bot di fine conversazione, ad esempio Thank you come domanda. Non sono presenti altre proprietà da impostare.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'thank you'}"
    
  2. Eseguire il comando cURL e ricevere la risposta JSON, che include il punteggio e la risposta.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Poiché la domanda di Thank you corrisponde esattamente a una domanda Chit chat, QnA Maker è assolutamente attendibile con il punteggio di 100. QnA Maker ha restituito anche tutte le domande correlate e la proprietà di metadati contenente le informazioni sul tag di metadati Chit-chat.

Usare una soglia e una risposta predefinita

È possibile richiedere una soglia minima per la risposta. Se la soglia non viene soddisfatta, viene restituita la risposta predefinita.

  1. Aggiungere la proprietà threshold per richiedere una risposta a size con una soglia dell'80% o superiore. La knowledge base non dovrebbe trovare tale risposta perché il punteggio della domanda è 71%. Il risultato restituisce la risposta predefinita fornita al momento della creazione della knowledge base.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':80.00}"
    
  2. Eseguire il comando cURL e ricevere la risposta JSON.

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker ha restituito il punteggio 0, che indica nessuna attendibilità, nonché la risposta predefinita.

  3. Modificare il valore di soglia con 60% e richiedere nuovamente la query:

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':60.00}"
    

    Il codice JSON restituito ha trovato la risposta.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Usare origini dati non strutturate

È ora supportata la possibilità di aggiungere documenti non strutturati che non possono essere usati per estrarre QnAs. L'utente può scegliere di includere o escludere set di dati non strutturati nell'API GenerateAnswer durante il recupero di una risposta alla query. Non sono supportati set di dati non strutturati nel servizio ga, che è incluso solo nelle risposte alle domande personalizzate.

Questa guida introduttiva basata su Postman assiste nell'ottenimento di una risposta da una knowledge base.

Prerequisiti

  • Devi avere
    • Ultima versione di Postman.
    • Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Una risorsa QnA Maker creata nel portale di Azure. Ricordare il nome della risorsa Microsoft Entra ID, Sottoscrizione, QnA selezionato al momento della creazione della risorsa.
  • Una knowledge base con domande e risposte pubblicata e di cui è stato eseguito il training creata nell'argomento di avvio rapido precedente configurata con metadati e chit chat.

Nota

Una volta pronti a generare una risposta per una domanda dalla knowledge base, è necessario eseguire il training e pubblicare la knowledge base. Una volta pubblicata la knowledge base, nella pagina Pubblica vengono visualizzate le impostazioni della richiesta HTTP per generare una risposta. La scheda Postman mostra le impostazioni necessarie per generare una risposta.

Configurare Postman per le richieste

Questo argomento di avvio rapido usa le stesse impostazioni della richiesta POST Postman, quindi configura il codice JSON del corpo della richiesta POST inviato al servizio in base a ciò per cui si sta provando a eseguire una query.

Usare questa procedura per configurare Postman, quindi leggere ogni sezione successiva per configurare il codice JSON del corpo della richiesta POST.

  1. Nella pagina Impostazioni della knowledge base selezionare la scheda Postman per visualizzare la configurazione usata per generare una risposta dalla knowledge base. Copiare le informazioni seguenti da usare in Postman.

    Nome Impostazione Scopo e valore
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer Si tratta del metodo HTTP e della route per l'URL.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker Si tratta dell'host dell'URL. Concatenare i valori Host e Post per ottenere l'URL completo di generateAnswer.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Valore dell'intestazione per autorizzare la richiesta ad Azure.
    Content-type application/json Valore dell'intestazione per il contenuto.
    {"question":"<Your question>"} Corpo della richiesta POST come oggetto JSON. Questo valore verrà modificato in ogni sezione a seconda dello scopo della query.

    Importante

    Al termine, ricordarsi di rimuovere la chiave dal codice e non renderlo mai pubblico. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

  2. Aprire Postman e creare una nuova richiesta POST di base con le impostazioni della knowledge base pubblicata. Nelle sezioni seguenti modificare il codice JSON del corpo della richiesta POST per modificare la query nella knowledge base.

Usare i metadati per filtrare una risposta

In un argomento di avvio rapido precedente sono stati aggiunti i metadati a due coppie di domande e risposte per distinguere tra due domande diverse. Aggiungere i metadati alla query per limitare il filtro alla sola coppia di domande e risposte pertinente.

  1. In Postman modificare solo la query JSON aggiungendo la proprietà strictFilters con la coppia nome/valore service:qna_maker. Il codice JSON del corpo dovrebbe essere:

    {
        'question':'size',
        'strictFilters': [
            {
                'name':'service','value':'qna_maker'
            }
        ]
    }
    

    La domanda è costituita solo da una singola parola, size, che può restituire una delle due coppie di domande e risposte. La matrice strictFilters indica di limitare le risposte a quelle con tag qna_maker.

  2. La risposta include solo la risposta che soddisfa i criteri di filtro.

    La risposta seguente è stata formattata per migliorare la leggibilità:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Se è presente una coppia di domande e risposte che non soddisfa il termine di ricerca ma soddisfa il filtro, non viene restituita. Viene invece restituita la risposta generale No good match found in KB..

Usare una proprietà per la query di debug

Nota

Non è consigliabile usare la proprietà Debug per una dipendenza. Questa proprietà è stata aggiunta per assistere il team di prodotto nella risoluzione dei problemi.

Le informazioni di debug consentono di capire come è stata determinata la risposta restituita. Sebbene siano utili, non sono necessarie. Per generare una risposta con le informazioni di debug, aggiungere la proprietà debug:

  1. In Postman modificare solo il codice JSON del corpo aggiungendo la proprietà debug. Il codice JSON dovrebbe essere:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. La risposta include le informazioni pertinenti alla risposta. Nel seguente output JSON, alcuni dettagli di debug sono stati sostituiti con i puntini di sospensione.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

Usare la knowledge base di test

Se si vuole ottenere una risposta dalla knowledge base di test, usare la proprietà del corpo isTest.

In Postman modificare solo il codice JSON del corpo aggiungendo la proprietà isTest. Il codice JSON dovrebbe essere:

{
    'question':'size',
    'isTest': true
}

La risposta JSON usa lo stesso schema della query della knowledge base pubblicata.

Nota

Se la knowledge base pubblicata e quella di test sono esattamente le stesse, potrebbero esserci ancora alcune lievi variazioni perché l'indice di test è condiviso tra tutte le knowledge base della risorsa.

Eseguire una query per ottenere una risposta chit-chat

  1. In Postman modificare solo il codice JSON del corpo in una frase di fine conversazione dell'utente. Il codice JSON dovrebbe essere:

    {
        'question':'thank you'
    }
    
  2. La risposta include il punteggio e la risposta.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    Poiché la domanda di Thank you corrisponde esattamente a una domanda Chit chat, QnA Maker è assolutamente attendibile con il punteggio di 100. QnA Maker ha restituito anche tutte le domande correlate e la proprietà di metadati contenente le informazioni sul tag di metadati Chit-chat.

Usare una soglia e una risposta predefinita

È possibile richiedere una soglia minima per la risposta. Se la soglia non viene soddisfatta, viene restituita la risposta predefinita.

  1. In Postman modificare solo il codice JSON del corpo in una frase di fine conversazione dell'utente. Il codice JSON dovrebbe essere:

    {
        'question':'size',
        'scoreThreshold':80.00
    }
    

    La knowledge base non dovrebbe trovare la risposta perché il punteggio della domanda è 71% ma dovrebbe restituire la risposta predefinita fornita al momento della creazione della knowledge base.

    La risposta JSON restituita, inclusi il punteggio e la risposta è:

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    QnA Maker ha restituito il punteggio 0, che indica nessuna attendibilità, nonché la risposta predefinita.

  2. Modificare il valore di soglia con 60% e richiedere nuovamente la query:

    {
        'question':'size',
        'scoreThreshold':60.00
    }
    

    Il codice JSON restituito ha trovato la risposta.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Usare origini dati non strutturate.

È ora supportata la possibilità di aggiungere documenti non strutturati che non possono essere usati per estrarre QnAs. L'utente può scegliere di includere o escludere set di dati non strutturati nell'API GenerateAnswer durante il recupero di una risposta alla query. Non sono supportati set di dati non strutturati nel servizio ga. È supportato solo nelle risposte alle domande personalizzate.

Passaggi successivi

Altre informazioni sui metadati: