Válasz kérése a GenerateAnswer API-val

Ha egy felhasználó kérdésére előrejelzett választ szeretne kapni, használja a GenerateAnswer API-t. Amikor közzétesz egy tudásbázis, a Közzététel lapon megtekintheti az API használatával kapcsolatos információkat. Az API-t úgy is konfigurálhatja, hogy metaadatcímkék alapján szűrje a válaszokat, és tesztelje a végpont tudásbázis a tesztlekérdezés sztring paraméterével.

Megjegyzés

A QnA Maker szolgáltatás 2025. március 31-én megszűnik. A kérdés- és válaszképesség újabb verziója már elérhető az Azure AI Nyelv részeként. A Language Service-ben a kérdések megválaszolására vonatkozó képességekért tekintse meg a kérdések megválaszolását. 2022. október 1-től nem hozhat létre új QnA Maker-erőforrásokat. A meglévő QnA Maker-tudásbázisok kérdésmegoldásra való migrálásával kapcsolatos információkért tekintse meg a migrálási útmutatót.

Válasz-előrejelzések lekérése a GenerateAnswer API-val

A GenerateAnswer API-t a robotban vagy az alkalmazásban használva lekérdezheti a tudásbázis egy felhasználói kérdéssel, hogy a legjobb egyezést kapja a kérdés- és válaszpárokból.

Megjegyzés

Ez a dokumentáció nem vonatkozik a legújabb kiadásra. A legújabb kérdés-válasz API-k használatáról a kérdésre adott válaszok rövid útmutatójában tájékozódhat.

Közzététel a GenerateAnswer-végpont lekéréséhez

Miután közzétette a tudásbázis a QnA Maker portálján vagy az API használatával, lekérheti a GenerateAnswer-végpont részleteit.

A végpont részleteinek lekérése:

  1. Jelentkezzen be itt: https://www.qnamaker.ai.

  2. A Saját tudásbázisok területen válassza a Kód megtekintése lehetőséget a tudásbázis. Saját tudásbázisok képernyőképe

  3. A GenerateAnswer végpont részleteinek lekérése.

    Képernyőkép a végpont részleteiről

A végpont adatait a tudásbázis Beállítások lapján is lekérheti.

GenerateAnswer kéréskonfiguráció

Meghívja a GenerateAnswert egy HTTP POST-kéréssel. A GenerateAnswer meghívását bemutató mintakódért tekintse meg a rövid útmutatókat.

A POST kérés a következőket használja:

A GenerateAnswer URL formátuma a következő:

https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer

Ne felejtse el beállítani a HTTP-fejléc tulajdonságát Authorization a sztring EndpointKey értékével egy záró szóközzel, majd a Beállítások lapon található végpontkulcsmal.

Egy JSON-példatörzs a következőképpen néz ki:

{
    "question": "qna maker and luis",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 30,
    "rankerType": "" // values: QuestionOnly
    "strictFilters": [
    {
        "name": "category",
        "value": "api"
    }],
    "userId": "sd53lsY="
}

További információ a rankerType típusról.

Az előző JSON csak olyan válaszokat kért, amelyek 30%-nál vagy a küszöbérték felett vannak.

GenerateAnswer-válasz tulajdonságai

A válasz egy JSON-objektum, amely tartalmazza a válasz megjelenítéséhez szükséges összes információt, és ha elérhető, a beszélgetés következő sorát.

{
    "answers": [
        {
            "score": 38.54820341616869,
            "Id": 20,
            "answer": "There is no direct integration of LUIS with QnA Maker. But, in your bot code, you can use LUIS and QnA Maker together. [View a sample bot](https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/Node/samples/QnAMaker/QnAWithLUIS)",
            "source": "Custom Editorial",
            "questions": [
                "How can I integrate LUIS with QnA Maker?"
            ],
            "metadata": [
                {
                    "name": "category",
                    "value": "api"
                }
            ]
        }
    ]
}

Az előző JSON 38,5%-os pontszámú válaszsal válaszolt.

Csak a kérdések egyeztetése szöveg alapján

Alapértelmezés szerint a QnA Maker kérdéseket és válaszokat keres. Ha csak a kérdések között szeretne keresni, a válasz létrehozásához használja a RankerType=QuestionOnly GenerateAnswer-kérelem POST törzsében található értéket.

A közzétett tudásbázisban kereshet a használatával isTest=false, vagy a teszt kb-ban a használatával isTest=true.

{
  "question": "Hi",
  "top": 30,
  "isTest": true,
  "RankerType":"QuestionOnly"
}

A QnA Maker használata robottal C nyelven#

A robot-keretrendszer hozzáférést biztosít a QnA Maker tulajdonságaihoz a getAnswer API-val:

using Microsoft.Bot.Builder.AI.QnA;
var metadata = new Microsoft.Bot.Builder.AI.QnA.Metadata();
var qnaOptions = new QnAMakerOptions();

metadata.Name = Constants.MetadataName.Intent;
metadata.Value = topIntent;
qnaOptions.StrictFilters = new Microsoft.Bot.Builder.AI.QnA.Metadata[] { metadata };
qnaOptions.Top = Constants.DefaultTop;
qnaOptions.ScoreThreshold = 0.3F;
var response = await _services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext, qnaOptions);

Az előző JSON csak olyan válaszokat kért, amelyek 30%-nál vagy a küszöbérték felett vannak.

A QnA Maker használata robottal a Node.js

A robot-keretrendszer hozzáférést biztosít a QnA Maker tulajdonságaihoz a getAnswer API-val:

const { QnAMaker } = require('botbuilder-ai');
this.qnaMaker = new QnAMaker(endpoint);

// Default QnAMakerOptions
var qnaMakerOptions = {
    ScoreThreshold: 0.30,
    Top: 3
};
var qnaResults = await this.qnaMaker.getAnswers(stepContext.context, qnaMakerOptions);

Az előző JSON csak olyan válaszokat kért, amelyek 30%-nál vagy a küszöbérték felett vannak.

Pontos válaszok a GenerateAnswer API-val

Pontos válasz funkciót csak a QnA Maker által felügyelt verzióval kínálunk.

Gyakori HTTP-hibák

Code Magyarázat
2xx Siker
400 A kérelem paraméterei helytelenek, ami azt jelenti, hogy a szükséges paraméterek hiányoznak, helytelen formátumúak vagy túl nagyok
400 A kérelem törzse helytelen, ami azt jelenti, hogy a JSON hiányzik, helytelen formátumú vagy túl nagy
401 Érvénytelen kulcs
403 Tiltott – nem rendelkezik a megfelelő engedélyekkel
404 A tudásbázis nem létezik
410 Ez az API elavult, és már nem érhető el

Következő lépések

A Publish (Közzététel) lap a Postman vagy a cURL használatával történő válaszhoz is tartalmaz információkat.