Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a rövid útmutató végigvezeti a Microsoft Foundry egyéni kérdések megválaszolási (CQA) projektjének létrehozásához, teszteléséhez és üzembe helyezéséhez szükséges alapvető lépéseken. Akár áttér a Language Studióról, akár az alapoktól kezdve, ez a rövid útmutató az Ön számára készült. Egyértelmű és végrehajtható utasításokat biztosít a CQA-projektek gyors és sikeres üzembe helyezéséhez.
Feljegyzés
- Ha már rendelkezik Azure-nyelvvel az Foundry Toolsban vagy többszolgáltatásos erőforrással – akár önállóan, akár a Language Studióban használva – továbbra is használhatja ezeket a meglévő nyelvi erőforrásokat az Foundry portálon. További információért lásd: Hogyan használjuk a Foundry eszközöket a Foundry portálon.
- Javasoljuk, hogy a Foundryben használjon egy Foundry-erőforrást; Ezeket az utasításokat azonban nyelvi erőforrás használatával is követheti.
Előfeltételek
Az első lépések előtt a következő erőforrásokra és engedélyekre van szüksége:
- Aktív Azure-előfizetés. Ha nincs ilyenje, hozzon létre egyet ingyen.
- Szükséges engedélyek. Győződjön meg arról, hogy a fiókot és a projektet létrehozó személy az előfizetés szintjén az Azure AI fióktulajdonosi szerepkörrel van hozzárendelve. Alternatívaként az előfizetés hatókörében a közreműködő vagy a Cognitive Services közreműködő szerepkör is megfelel ennek a követelménynek. További információ :Szerepköralapú hozzáférés-vezérlés (RBAC).
- Öntödei erőforrás vagy nyelvi erőforrás.
- Azure AI Search-erőforrás (a CQA eléréséhez szükséges). További információ az Azure AI Search-erőforrás csatlakoztatásáról :Kapcsolatok konfigurálása a Foundryben
- Az Foundryben létrehozott Foundry-projekt. További információ :Foundry-projekt létrehozása.
Első lépések
Menjen az Öntödéhez.
Ha még nincs bejelentkezve, a portál erre kéri az Azure-beli hitelesítő adataival.
Bejelentkezés után létrehozhatja vagy elérheti meglévő projektjeit a Foundryben.
Ha még nem választotta ki a projektet ehhez a feladathoz, válassza ki.
A CQA finomhangolási feladatának létrehozása
Az Foundryben egy finomhangolási feladat szolgál a munkaterületként a CQA-megoldásokhoz. Korábban egy finomhangolási feladatotCQA-projektnek neveztek. Előfordulhat, hogy mindkét kifejezés felcserélhetően szerepel a régebbi CQA-dokumentációban.
Miután kiválasztotta a Foundry-projektet, melyet ebben a gyors kezdésben használni kíván, válassza a bal oldali navigációs menüből a finomhangolást.
A főablakban válassza az AI-szolgáltatás finomhangolási lapját, majd a + Finomhangolás gombot.
A Szolgáltatás létrehozása finomhangolási ablakban válassza az Egyéni kérdés megválaszolása lapot, majd válassza a Tovább gombot.
Válassza ki a csatlakoztatott Azure AI Search-erőforrást a CQA létrehozása finomhangolási feladat ablakából. További információ :Azure-erőforráskapcsolatok konfigurálása.
Ezután töltse ki a Név és nyelv mezőket. Ebben a projektben meghagyhatja az Alapértelmezett választ, ha a válasz nem ad vissza mezőt, ahogyan van (nem található válasz).
Válassza a Létrehozás gombot.
CQA tudásbázisforrás hozzáadása
A CQA-tudásbázis a beszélgetési AI-hez optimalizált kérdés-válasz párok strukturált készlete. A tudásbázis természetes nyelvi feldolgozással értelmezi a felhasználói lekérdezéseket, és kontextustudatos, pontos válaszokat ad vissza egy adott adathalmazból.
Az Első lépések menüben válassza a Források kezelése lehetőséget.
A főablakban válassza a + Forrás hozzáadása legördülő menüt.
A legördülő menüben kiválaszthatja a Csevegés hozzáadása, AZ URL-címek hozzáadása vagy a Fájlok hozzáadása lehetőséget.
Ehhez a projekthez válassza a Chitchat hozzáadása lehetőséget.
Az Új forrás hozzáadása ablakban válassza a Barátságos lehetőséget.
Végül válassza a Hozzáadás lehetőséget. A forrás létrehozása eltarthat néhány percig.
A létrehozás után a forrás megjelenik a Források kezelése ablakban.
Tudásbázis tesztelése
Válassza a Tudásbázis tesztelése lehetőséget az Első lépések menüben.
Írja be a következőt a Kérdés beírása mezőbe, majd válassza a Futtatás lehetőséget.
Hello! How are you doing today?Az ellenőrzési felületen áttekintheti a válasz megbízhatósági szintjét, és kiválaszthatja a legmegfelelőbb választ.
A tudásbázis üzembe helyezése
A CQA-tudásbázis üzembe helyezése azt jelenti, hogy a válogatott kérdés- és választartalmat élő, kereshető végpontként teszi közzé. Ez a folyamat áthelyezi a projektet egy tesztelési fázisból egy éles környezetbe, amely lehetővé teszi, hogy az ügyfélalkalmazások különböző projektekhez és megoldásokhoz, például csevegőrobotokhoz használják.
Ha az ellenőrzés befejeződött, válassza a Tudásbázis üzembe helyezése szakaszt az Első lépések menüben.
Először az Üzembe helyezés gombot válassza a Tudásbázis központi telepítése ablakból, majd az Üzembe helyezés a projekt előugró ablakából. Az üzembe helyezés néhány percet vesz igénybe.
Az üzembe helyezés befejezése után az üzembe helyezett projekt megjelenik a Tudásbázis üzembe helyezése ablakban.
Ennyi az egész! Az Egyéni kérdések megválaszolása (CQA) tudásbázisa természetes nyelvi felületet biztosít az adatokhoz, lehetővé téve a felhasználók számára az információk beszélgetési módon történő kezelését. A megoldás üzembe helyezésével speciális csevegőrobotokat és interaktív ügynököket hozhat létre, amelyek megértik a felhasználói kérdéseket, pontos válaszokat adnak meg, és igazodnak a változó információs követelményekhez.
Előfeltételek
- A cURL aktuális verziója. A rövid útmutatókban több parancssori kapcsolót is használnak, amelyeket a cURL dokumentációja is feljegyez.
- Azure-előfizetés – Ingyenes létrehozás
- Az egyéni kérdések megválaszolásához olyan nyelvi erőforrásra van szükség, amely rendelkezik az API-kulcs és a végpont létrehozásához engedélyezett egyéni kérdés megválaszolási funkcióval.
- A nyelvi erőforrás üzembe helyezése után válassza az Ugrás az erőforráshoz lehetőséget. Az API-hoz való csatlakozáshoz szüksége van a létrehozott erőforrás kulcsára és végpontjára. A rövid útmutató későbbi részében illessze be a kulcsot és a végpontot a kódba.
- Hozzon létre egy nyelvi erőforrást az Azure CLI-vel , és adja meg a következő tulajdonságokat:
--api-properties qnaAzureSearchEndpointId=/subscriptions/<azure-subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Search/searchServices/<azure-search-service-name> qnaAzureSearchEndpointKey=<azure-search-service-auth-key> - Egy meglévő, lekérdezendő projekt. Ha nem állít be projektet, kövesse a Language Studio rövid útmutatójában található utasításokat. Vagy adjon hozzá egy projektet, amely ezt a Surface felhasználói útmutató URL-címét használja adatforrásként.
Beállítás
Környezeti változók létrehozása
Az alkalmazásnak hitelesítenie kell az API-kérések küldéséhez. Éles környezetben használjon biztonságos módszert a hitelesítő adatok tárolására és elérésére. Ebben a példában a hitelesítő adatokat az alkalmazást futtató helyi gépen lévő környezeti változókba fogja írni.
A nyelvi erőforráskulcs környezeti változójának beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
LANGUAGE_KEYkörnyezeti változó beállításához cserélje leyour-keyaz erőforrás egyik kulcsára. - A
LANGUAGE_ENDPOINTkörnyezeti változó beállításához cserélje le ayour-endpointértéket az erőforrás végpontjára.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Feljegyzés
Ha csak az aktuális futó konzolon kell hozzáférnie a környezeti változókhoz, a környezeti változót set ahelyett setxállíthatja be.
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a futó programokat, amelyeknek be kell olvasniuk a környezeti változókat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
Projekt lekérdezése
Válasz létrehozása projektből
Ha a REST API-kkal és a cURL-vel szeretne egyéni kérdéseket megválaszoló projektet lekérdezni, a következő információkra van szüksége:
| Változó neve | Érték |
|---|---|
Endpoint |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Másik lehetőségként megtalálhatja az értéket a Language Studio> üzembe helyezését. Példavégpont: https://southcentralus.cognitiveservices.azure.com/ |
API-Key |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Használhatja az 1. vagy a 2. kulcsot is. Mindig két érvényes kulcs van mindig a biztonságos kulcsváltáshoz nulla állásidő mellett. Másik lehetőségként megtalálhatja az értéket a Language Studio> üzembe helyezését. A kulcsérték a mintakérés része. |
Project |
Az egyéni kérdésre válaszoló projekt neve. |
Deployment |
Két lehetséges érték létezik: testés production.
productionA projekt üzembe helyezésétől függ, hogy a Language Studio-ból> választad-e a>. |
A cURL parancs egy BASH-rendszerhéjból lesz végrehajtva. Szerkessze ezt a parancsot saját erőforrásnevével, erőforráskulcsával és JSON-értékeivel és JSON-méretével.
curl -X POST -H "Ocp-Apim-Subscription-Key: $LANGUAGE_KEY" -H "Content-Type: application/json" -d '{
"question": "How much battery life do I have left?"
}' '$LANGUAGE_ENDPOINT.cognitiveservices.azure.com/language/:query-knowledgebases?projectName={YOUR_PROJECT_NAME}&api-version=2021-10-01&deploymentName={DEPLOYMENT_NAME}'
A kód futtatásakor, ha az adatforrást az előfeltételek alapján használja, a következő választ kapja:
{
"answers": [
{
"questions": [
"Check battery level"
],
"answer": "If you want to see how much battery you have left, go to **Start **> **Settings **> **Devices **> **Bluetooth & other devices **, then find your pen. The current battery level will appear under the battery icon.",
"confidenceScore": 0.9185,
"id": 101,
"source": "https://support.microsoft.com/en-us/surface/how-to-use-your-surface-pen-8a403519-cd1f-15b2-c9df-faa5aa924e98",
"metadata": {},
"dialog": {
"isContextOnly": false,
"prompts": []
}
}
]
}
A confidenceScore függvény 0 és 1 közötti értéket ad vissza. A megbízhatósági pontszámot százalékként tekintheti, ha megszorozza 100-zal. A 0,9185 megbízhatósági pontszám például azt jelzi, hogy az egyéni kérdés-válaszrendszer 91,85% biztos abban, hogy a válasz helyes a projektinformációk alapján.
Ha ki szeretné zárni azokat a válaszokat, ahol a megbízhatósági pontszám egy bizonyos küszöbérték alá esik, hozzáadhatja a paramétert confidenceScoreThreshold .
curl -X POST -H "Ocp-Apim-Subscription-Key: $LANGUAGE_KEY" -H "Content-Type: application/json" -d '{
"question": "How much battery life do I have left?",
"confidenceScoreThreshold": "0.95",
}' '$LANGUAGE_ENDPOINT.cognitiveservices.azure.com//language/:query-knowledgebases?projectName=Sample-project&api-version=2021-10-01&deploymentName={DEPLOYMENT_NAME}'
Mivel a kód előző végrehajtásából tudjuk, hogy a megbízhatósági pontszámunk a következő: .9185 a küszöbérték .95 beállítása az alapértelmezett válasz visszaadását eredményezi.
{
"answers": [
{
"questions": [],
"answer": "No good match found in KB",
"confidenceScore": 0.0,
"id": -1,
"metadata": {}
}
]
}
Szöveg lekérdezése projekt nélkül
Az előre összeállított REST API-val lehetősége van a testreszabott kérdésmegválaszolás használatára projekt nélkül is, amelyet a következőn keresztül hív meg query-text. Ebben az esetben a kérdés megválaszolásához egy kérdést és a hozzá tartozó szöveges rekordokat is meg kell adnia, amelyeket a kérés elküldésekor meg szeretne keresni.
Ebben a példában csak a változókat API KEYENDPOINTkell módosítani.
curl -X POST -H "Ocp-Apim-Subscription-Key: $LANGUAGE_KEY" -H "Content-Type: application/json" -d '{
"question":"How long does it takes to charge a surface?",
"records":[
{"id":"doc1","text":"Power and charging.It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. It can take longer if you\u0027re using your Surface for power-intensive activities like gaming or video streaming while you\u0027re charging it"},
{"id":"doc2","text":"You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface."}],
"language":"en",
"stringIndexType":"Utf16CodeUnit"
}' '$LANGUAGE_ENDPOINT.cognitiveservices.azure.com/language/:query-text?&api-version=2021-10-01'
Ez a példa a következő eredményt adja vissza:
{
"answers": [
{
"answer": "Power and charging.It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. It can take longer if you're using your Surface for power-intensive activities like gaming or video streaming while you're charging it",
"confidenceScore": 0.9118788838386536,
"id": "doc1",
"answerSpan": {
"text": "two to four hours",
"confidenceScore": 0.9850527,
"offset": 27,
"length": 18
},
"offset": 0,
"length": 243
},
{
"answer": "It can take longer if you're using your Surface for power-intensive activities like gaming or video streaming while you're charging it",
"confidenceScore": 0.052793052047491074,
"id": "doc1",
"answerSpan": {
"text": "longer",
"confidenceScore": 0.6694634,
"offset": 11,
"length": 7
},
"offset": 109,
"length": 134
},
{
"answer": "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.",
"confidenceScore": 0.017600709572434425,
"id": "doc2",
"answerSpan": {
"text": "USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. The USB port on the power supply is only for charging",
"confidenceScore": 0.1544854,
"offset": 15,
"length": 165
},
"offset": 0,
"length": 280
}
]
}
Használja ezt a gyorsútmutatót a .NET-hez készült egyéni kérdés-megválaszoló ügyfélkönyvtárhoz, hogy:
- Válasz kérése egy projekttől.
- Válasz kérése a kérdésével együtt elküldött szövegtörzsből.
- Kérje le a kérdésre adott válasz megbízhatósági pontszámát.
Referenciadokumentáció | Csomag (NuGet) | Minták | Kódtár forráskódja
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A Visual Studio IDE vagy a .NET Core aktuális verziója.
- Az egyéni kérdések megválaszolásához olyan nyelvi erőforrásra van szükség, amely rendelkezik az API-kulcs és a végpont létrehozásához engedélyezett egyéni kérdés megválaszolási funkcióval.
- A nyelvi erőforrás üzembe helyezése után válassza az Ugrás az erőforráshoz lehetőséget. Az API-hoz való csatlakozáshoz szüksége van a létrehozott erőforrás kulcsára és végpontjára. A rövid útmutató későbbi részében illessze be a kulcsot és a végpontot a kódba.
- Hozzon létre egy nyelvi erőforrást az Azure CLI-vel , és adja meg a következő tulajdonságokat:
--api-properties qnaAzureSearchEndpointId=/subscriptions/<azure-subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Search/searchServices/<azure-search-service-name> qnaAzureSearchEndpointKey=<azure-search-service-auth-key> - Egy meglévő, lekérdezendő projekt. Ha nem rendelkezik projektel, kövesse a Language Studio rövid útmutatójában található utasításokat. Vagy adjon hozzá egy projektet, amely ezt a Surface felhasználói útmutató URL-címét használja adatforrásként.
Beállítás
Környezeti változók létrehozása
Az alkalmazásnak hitelesítenie kell az API-kérések küldéséhez. Éles környezetben használjon biztonságos módszert a hitelesítő adatok tárolására és elérésére. Ebben a példában a hitelesítő adatokat az alkalmazást futtató helyi gépen lévő környezeti változókba fogja írni.
A nyelvi erőforráskulcs környezeti változójának beállításához nyisson meg egy konzolablakot, és kövesse az operációs rendszer és a fejlesztési környezet utasításait.
- A
LANGUAGE_KEYkörnyezeti változó beállításához cserélje leyour-keyaz erőforrás egyik kulcsára. - A
LANGUAGE_ENDPOINTkörnyezeti változó beállításához cserélje le ayour-endpointértéket az erőforrás végpontjára.
Fontos
Az Azure-erőforrásokhoz tartozó felügyelt identitásokkal rendelkező Microsoft Entra ID-hitelesítést javasoljuk, hogy ne tárolja a hitelesítő adatokat a felhőben futó alkalmazásokkal.
Óvatosan használja az API-kulcsokat. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan. API-kulcsok használata esetén biztonságosan tárolhatja őket az Azure Key Vaultban, rendszeresen elforgathatja a kulcsokat, és szerepköralapú hozzáférés-vezérléssel és hálózati hozzáférés-korlátozásokkal korlátozhatja az Azure Key Vaulthoz való hozzáférést. További információ az API-kulcsok biztonságos használatáról az alkalmazásokban: API-kulcsok az Azure Key Vaulttal.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Feljegyzés
Ha csak az aktuális futó konzolon kell hozzáférnie a környezeti változókhoz, a környezeti változót set ahelyett setxállíthatja be.
A környezeti változók hozzáadása után előfordulhat, hogy újra kell indítania a futó programokat, amelyeknek be kell olvasniuk a környezeti változókat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
parancssori felület
Egy konzolablakban (például parancsmag, PowerShell vagy Bash) a dotnet new paranccsal hozzon létre egy új konzolalkalmazást a névvel question-answering-quickstart. Ez a parancs létrehoz egy egyszerű "„Helló világ!” alkalmazás" C#-projektet egyetlen forrásfájllal: program.cs.
dotnet new console -n question-answering-quickstart
Módosítsa a könyvtárat az újonnan létrehozott alkalmazásmappára. Az alkalmazást a következőkkel hozhatja létre:
dotnet build
A buildkimenet nem tartalmazhat figyelmeztetést vagy hibát.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Az alkalmazáskönyvtárban telepítse a .NET-hez készült egyéni kérdésmegoldó ügyfélkönyvtárat a következő paranccsal:
dotnet add package Azure.AI.Language.QuestionAnswering
Projekt lekérdezése
Válasz létrehozása projektből
Az alábbi példa lehetővé teszi egy projekt GetAnswers lekérdezését, hogy választ kapjon a kérdésére.
Frissítenie kell a kódot, és meg kell adnia a saját értékeit a következő változókhoz:
| Változó neve | Érték |
|---|---|
endpoint |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Másik lehetőségként megtalálhatja az értéket a Language Studio> üzembe helyezését. Példavégpont: https://southcentralus.cognitiveservices.azure.com/ |
credential |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Használhatja az 1. vagy a 2. kulcsot is. Mindig két érvényes kulcs van mindig a biztonságos kulcsváltáshoz nulla állásidő mellett. Másik lehetőségként megtalálhatja az értéket a Language Studio> üzembe helyezését. A kulcsérték a mintakérés része. |
projectName |
Az egyéni kérdésre válaszoló projekt neve. |
deploymentName |
Két lehetséges érték létezik: testés production.
productionattól függ, hogy üzembe helyezte-e a projektet a Language Studio>üzembe helyezési projektre vonatkozó >kérdésében. |
Fontos
Ne felejtse el eltávolítani a kulcsot a kódból, amikor elkészült, és soha ne tegye közzé nyilvánosan. A hitelesítési adatok tárolására és elérésére használjon biztonságos módszert, például az Azure Key Vaultot. További információ: Foundry Tools security.
Nyissa meg a program.cs fájlt a projektkönyvtárban, és cserélje le a következő kódra:
using Azure;
using Azure.AI.Language.QuestionAnswering;
using System;
namespace question_answering
{
class Program
{
static void Main(string[] args)
{
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
Uri endpoint = new Uri("LANGUAGE_ENDPOINT");
AzureKeyCredential credential = new AzureKeyCredential("LANGUAGE_KEY");
string projectName = "{YOUR-PROJECT-NAME}";
string deploymentName = "production";
string question = "How long should my Surface battery last?";
QuestionAnsweringClient client = new QuestionAnsweringClient(endpoint, credential);
QuestionAnsweringProject project = new QuestionAnsweringProject(projectName, deploymentName);
Response<AnswersResult> response = client.GetAnswers(question, project);
foreach (KnowledgeBaseAnswer answer in response.Value.Answers)
{
Console.WriteLine($"Q:{question}");
Console.WriteLine($"A:{answer.Answer}");
}
}
}
}
Miközben a példánk változóit nehezen kódoltuk. Az éles környezetben használjon biztonságos módot a hitelesítő adatok tárolására és elérésére. Az Azure Key Vault például biztonságos kulcstárolót biztosít.
A megfelelő változóértékek frissítése Program.cs és helyettesítése után. Futtassa az alkalmazást az dotnet run alkalmazáskönyvtárból származó paranccsal.
dotnet run
A válasz a következőképpen néz ki:
Q: How much battery life do I have left?
A: If you want to see how much battery you have left, go to **Start **> **Settings **> **Devices **> **Bluetooth & other devices **, then find your pen. The current battery level will appear under the battery icon.
A megbízhatósági pontszámokkal kapcsolatos információkért adja hozzá a következő nyomtatási utasítást a meglévő nyomtatási utasítások alá:
Console.WriteLine($"Q:{question}");
Console.WriteLine($"A:{answer.Answer}");
Console.WriteLine($"({answer.Confidence})"); // add this line
Ha ismét végrehajtja a műveletet dotnet run , egy megbízhatósági pontszámmal rendelkező eredményt kap:
Q:How much battery life do I have left?
A:If you want to see how much battery you have left, go to **Start **> **Settings **> **Devices **> **Bluetooth & other devices **, then find your pen. The current battery level will appear under the battery icon.
(0.9185)
A megbízhatósági pontszámot százalékként tekintheti, ha megszorozza 100-zal. A 0,9185 megbízhatósági pontszám például azt jelzi, hogy az egyéni kérdés-válaszrendszer 91,85% biztos abban, hogy a válasz helyes a projektinformációk alapján.
Ha ki szeretné zárni azokat a válaszokat, ahol a megbízhatósági pontszám egy bizonyos küszöbérték alá esik, használja a AnswerOptions a ConfidenceScoreThreshold tulajdonság hozzáadásához.
QuestionAnsweringClient client = new QuestionAnsweringClient(endpoint, credential);
QuestionAnsweringProject project = new QuestionAnsweringProject(projectName, deploymentName);
AnswersOptions options = new AnswersOptions(); //Add this line
options.ConfidenceThreshold = 0.95; //Add this line
Response<AnswersResult> response = client.GetAnswers(question, project, options); //Add the additional options parameter
Mivel a kód előző végrehajtásából tudjuk, hogy a megbízhatósági pontszámunk a következő: .9185 a küszöbérték .95 beállítása az alapértelmezett válasz visszaadását eredményezi.
Q:How much battery life do I have left?
A:No good match found in KB
(0)
Szöveg lekérdezése projekt nélkül
Az egyéni kérdések megválaszolását projekt nélkül is használhatja a következővel GetAnswersFromText: . Ebben az esetben Ön ad meg egyéni kérdésválaszolást egy kérdéssel és a hozzá tartozó szövegrekordokkal, amelyeket a kérés elküldésekor meg szeretne keresni.
Ebben a példában csak a változókat endpointcredentialkell módosítani.
using Azure;
using Azure.AI.Language.QuestionAnswering;
using System;
using System.Collections.Generic;
namespace questionansweringcsharp
{
class Program
{
static void Main(string[] args)
{
Uri endpoint = new Uri("https://{YOUR-ENDPOINT}.cognitiveservices.azure.com/");
AzureKeyCredential credential = new AzureKeyCredential("YOUR-LANGUAGE-RESOURCE-KEY");
QuestionAnsweringClient client = new QuestionAnsweringClient(endpoint, credential);
IEnumerable<TextDocument> records = new[]
{
new TextDocument("doc1", "Power and charging.It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " +
"It can take longer if you're using your Surface for power-intensive activities like gaming or video streaming while you're charging it"),
new TextDocument("doc2", "You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. " +
"The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface."),
};
AnswersFromTextOptions options = new AnswersFromTextOptions("How long does it takes to charge a surface?", records);
Response<AnswersFromTextResult> response = client.GetAnswersFromText(options);
foreach (TextAnswer answer in response.Value.Answers)
{
if (answer.Confidence > .9)
{
string BestAnswer = response.Value.Answers[0].Answer;
Console.WriteLine($"Q:{options.Question}");
Console.WriteLine($"A:{BestAnswer}");
Console.WriteLine($"Confidence Score: ({response.Value.Answers[0].Confidence:P2})"); //:P2 converts the result to a percentage with 2 decimals of accuracy.
break;
}
else
{
Console.WriteLine($"Q:{options.Question}");
Console.WriteLine("No answers met the requested confidence score.");
break;
}
}
}
}
}
A kód futtatásához cserélje le a Program.cs szkriptblokk tartalmára, és módosítsa a endpoint változókat az credential előfeltételek részeként létrehozott nyelvi erőforrásnak megfelelően.
Ebben az esetben végigvezetjük az összes választ, és csak a 0,9-nél nagyobb megbízhatósági pontszámmal rendelkező választ adunk vissza. Ha többet szeretne megtudni a rendelkezésre álló lehetőségekről.GetAnswersFromText
Ez a gyors útmutató a Python egyéni kérdésmegoldó ügyfélkönyvtárához a következőkre használható:
- Válasz kérése egy projekttől.
- Válasz kérése a kérdésével együtt elküldött szövegtörzsből.
- Kérje le a kérdésre adott válasz megbízhatósági pontszámát.
Csomag (PyPI) | Minták | Kódtár forráskódja
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Python 3.x
- Az egyéni kérdések megválaszolásához olyan nyelvi erőforrásra van szükség, amely rendelkezik az API-kulcs és a végpont létrehozásához engedélyezett egyéni kérdés megválaszolási funkcióval.
- A nyelvi erőforrás üzembe helyezése után válassza az Ugrás az erőforráshoz lehetőséget. Az API-hoz való csatlakozáshoz szüksége van a létrehozott erőforrás kulcsára és végpontjára. A rövid útmutató későbbi részében illessze be a kulcsot és a végpontot a kódba.
- Hozzon létre egy nyelvi erőforrást az Azure CLI-vel , és adja meg a következő tulajdonságokat:
--api-properties qnaAzureSearchEndpointId=/subscriptions/<azure-subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Search/searchServices/<azure-search-service-name> qnaAzureSearchEndpointKey=<azure-search-service-auth-key> - Egy meglévő, lekérdezendő projekt. Ha nem rendelkezik projektel, kövesse a Language Studio rövid útmutatójában található utasításokat. Vagy adjon hozzá egy projektet, amely ezt a Surface felhasználói útmutató URL-címét használja adatforrásként.
Beállítás
Telepítse a klienskönyvtárat
A Python telepítése után az ügyfélkódtárat a következővel telepítheti:
pip install azure-ai-language-questionanswering
Projekt lekérdezése
Válasz létrehozása projektből
A példa lehetővé teszi egy projekt lekérdezését get_answers használatával, hogy választ kapjon a kérdésére. Ezt a kódot egy dedikált .py fájlba vagy a Jupyter Notebook/Lab egyik cellába másolhatja.
Frissítenie kell a kódot, és meg kell adnia a saját értékeit a következő változókhoz.
| Változó neve | Érték |
|---|---|
endpoint |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Másik lehetőségként megtalálhatja az értéket a Language Studio> üzembe helyezését. Példavégpont: https://southcentralus.cognitiveservices.azure.com/ |
credential |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. Használhatja az 1. vagy a 2. kulcsot is. Mindig két érvényes kulcs van mindig a biztonságos kulcsváltáshoz nulla állásidő mellett. Másik lehetőségként megtalálhatja az értéket a Language Studio> üzembe helyezését. A kulcsérték a mintakérés része. |
knowledge_base_project |
A kérdésre válaszoló projekt neve. |
deployment |
Két lehetséges érték létezik: testés production.
production. |
Fontos
Ne felejtse el eltávolítani a kulcsot a kódból, amikor elkészült, és soha ne tegye közzé nyilvánosan. A hitelesítési adatok tárolására és elérésére használjon biztonságos módszert, például az Azure Key Vaultot. További információkért tekintse meg az Foundry Tools biztonsági cikkét.
from azure.core.credentials import AzureKeyCredential
from azure.ai.language.questionanswering import QuestionAnsweringClient
endpoint = "https://{YOUR-ENDPOINT}.cognitiveservices.azure.com/"
credential = AzureKeyCredential("{YOUR-LANGUAGE-RESOURCE-KEY}")
knowledge_base_project = "{YOUR-PROJECT-NAME}"
deployment = "production"
def main():
client = QuestionAnsweringClient(endpoint, credential)
with client:
question="How much battery life do I have left?"
output = client.get_answers(
question = question,
project_name=knowledge_base_project,
deployment_name=deployment
)
print("Q: {}".format(question))
print("A: {}".format(output.answers[0].answer))
if __name__ == '__main__':
main()
Miközben a példánk változóit nehezen kódoltuk. Az éles környezetben használjon biztonságos módot a hitelesítő adatok tárolására és elérésére. Az Azure Key Vault például biztonságos kulcstárolót biztosít.
A kód futtatásakor, ha az adatforrást az előfeltételek alapján használja, a következő választ kapja:
Q: How much battery life do I have left?
A: If you want to see how much battery you have left, go to **Start **> **Settings **> **Devices **> **Bluetooth & other devices **, then find your pen. The current battery level will appear under the battery icon.
A magabiztos pontszámokkal kapcsolatos információkért adja hozzá a következő nyomtatási utasításokat:
print("Q: {}".format(question))
print("A: {}".format(output.answers[0].answer))
print("Confidence Score: {}".format(output.answers[0].confidence)) # add this line
Egy megbízhatósági pontszámmal rendelkező eredményt kap:
Q: How much battery life do I have left?
A: If you want to see how much battery you have left, go to **Start **> **Settings **> **Devices **> **Bluetooth & other devices **, then find your pen. The current battery level will appear under the battery icon.
Confidence Score: 0.9185
A megbízhatósági pontszámot százalékként tekintheti, ha megszorozza 100-zal. A 0,9185 megbízhatósági pontszám például azt jelzi, hogy az egyéni kérdés-válaszrendszer 91,85% biztos abban, hogy a válasz helyes a projektinformációk alapján.
Ha ki szeretné zárni azokat a válaszokat, amelyeknél a megbízhatósági pontszám egy bizonyos küszöbérték alá esik, módosíthatja az AnswerOptions paramétert a confidence_threshold paraméter hozzáadásához.
output = client.get_answers(
confidence_threshold = 0.95, #add this line
question = question,
project_name=knowledge_base_project,
deployment_name=deployment
)
Mivel a kód előző végrehajtásából tudjuk, hogy a megbízhatósági pontszámunk a következő: .9185 a küszöbérték .95 beállítása az alapértelmezett válasz visszaadását eredményezi.
Q: How much battery life do I have left?
A: No good match found in KB
Confidence Score: 0.0
Szöveg lekérdezése projekt nélkül
Az egyéni kérdések megválaszolását projekt nélkül is használhatja get_answers_from_text. Ebben az esetben Ön ad meg egyéni kérdésválaszolást egy kérdéssel és a hozzá tartozó szövegrekordokkal, amelyeket a kérés elküldésekor meg szeretne keresni.
Ebben a példában csak a változókat endpointcredentialkell módosítani.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.language.questionanswering import QuestionAnsweringClient
from azure.ai.language.questionanswering import models as qna
endpoint = "https://{YOUR-ENDPOINT}.cognitiveservices.azure.com/"
credential = AzureKeyCredential("YOUR-LANGUAGE-RESOURCE-KEY")
def main():
client = QuestionAnsweringClient(endpoint, credential)
with client:
question="How long does it takes to charge a surface?"
input = qna.AnswersFromTextOptions(
question=question,
text_documents=[
"Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. " +
"It can take longer if you're using your Surface for power-intensive activities like gaming or video streaming while you're charging it.",
"You can use the USB port on your Surface Pro 4 power supply to charge other devices, like a phone, while your Surface charges. " +
"The USB port on the power supply is only for charging, not for data transfer. If you want to use a USB device, plug it into the USB port on your Surface.",
]
)
output = client.get_answers_from_text(input)
best_answer = [a for a in output.answers if a.confidence > 0.9][0]
print(u"Q: {}".format(input.question))
print(u"A: {}".format(best_answer.answer))
print("Confidence Score: {}".format(output.answers[0].confidence))
if __name__ == '__main__':
main()
Ezt a kódot átmásolhatja egy dedikált .py fájlba vagy egy új cellába a Jupyter Notebook/Lab alkalmazásban. Ez a példa a következő eredményt adja vissza:
Q: How long does it takes to charge surface?
A: Power and charging. It takes two to four hours to charge the Surface Pro 4 battery fully from an empty state. It can take longer if you're using your Surface for power-intensive activities like gaming or video streaming while you're charging it.
Confidence Score: 0.9254655838012695
Ebben az esetben végigvezetjük az összes választ, és csak a 0,9-nél nagyobb megbízhatósági pontszámmal rendelkező választ adunk vissza. Az get_answers_from_text elérhető lehetőségekről az AnswersFromTextOptions paraméterek áttekintésével tájékozódhat.
Erőforrások tisztítása
Az Azure AI-erőforrások törléséhez és eltávolításához törölheti az egyes erőforrásokat vagy a teljes erőforráscsoportot. Ha törli az erőforráscsoportot, a rendszer az összes benne lévő erőforrást is törli.