Share via


Rövid útmutató: Földi észlelés (előzetes verzió)

Kövesse ezt az útmutatót az Azure AI Content Széf ty Groundedness detektálásához annak ellenőrzéséhez, hogy a nagy nyelvi modellek (LLM-ek) szöveges válaszai a felhasználók által biztosított forrásanyagokban vannak-e alapulva.

Előfeltételek

  • Azure-előfizetés – Ingyenes létrehozás
  • Miután megkapta az Azure-előfizetését, hozzon létre egy Content Széf ty erőforrást az Azure Portalon a kulcs és a végpont lekéréséhez. Adja meg az erőforrás egyedi nevét, válassza ki az előfizetését, és válasszon ki egy erőforráscsoportot, egy támogatott régiót (USA 2. keleti régiója, USA nyugati régiója, Svédország középső régiója) és a támogatott tarifacsomagot. Válassza a Létrehozás parancsot.
    • Az erőforrás üzembe helyezése néhány percet vesz igénybe. Ezt követően nyissa meg az új erőforrást. A bal oldali panel Erőforrás-kezelés területén válassza az API-kulcsok és végpontok lehetőséget. Másolja az előfizetés egyik kulcsértékét és végpontját egy ideiglenes helyre későbbi használatra.
  • (Nem kötelező) Ha az érvelési funkciót szeretné használni, hozzon létre egy Azure OpenAI-szolgáltatáserőforrást egy üzembe helyezett GPT-modellel.
  • a cURL vagy a Python telepítve van.

A megalapozottság ellenőrzése indoklás nélkül

Az érvelési funkció nélküli egyszerű esetben a Groundedness Detection API a beküldött tartalom true alaptalanságát sorolja be vagy false.

Ez a szakasz végigvezet egy mintakérésen a cURL használatával. Illessze be az alábbi parancsot egy szövegszerkesztőbe, és végezze el a következő módosításokat.

  1. Cserélje le <endpoint> az erőforráshoz társított végponti URL-címre.

  2. Cserélje le <your_subscription_key> az erőforrás egyik kulcsára.

  3. Ha szeretné, cserélje le a "query" törzsben lévő mezőket vagy "text" mezőket az elemezni kívánt saját szövegre.

    curl --location --request POST '<endpoint>/contentsafety/text:detectGroundedness?api-version=2024-02-15-preview' \
    --header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
      "domain": "Generic",
      "task": "QnA",
      "qna": {
           "query": "How much does she currently get paid per hour at the bank?"
      },
      "text": "12/hour",
      "groundingSources": [
        "I'm 21 years old and I need to make a decision about the next two years of my life. Within a week. I currently work for a bank that requires strict sales goals to meet. IF they aren't met three times (three months) you're canned. They pay me 10/hour and it's not unheard of to get a raise in 6ish months. The issue is, **I'm not a salesperson**. That's not my personality. I'm amazing at customer service, I have the most positive customer service \"reports\" done about me in the short time I've worked here. A coworker asked \"do you ask for people to fill these out? you have a ton\". That being said, I have a job opportunity at Chase Bank as a part time teller. What makes this decision so hard is that at my current job, I get 40 hours and Chase could only offer me 20 hours/week. Drive time to my current job is also 21 miles **one way** while Chase is literally 1.8 miles from my house, allowing me to go home for lunch. I do have an apartment and an awesome roommate that I know wont be late on his portion of rent, so paying bills with 20hours a week isn't the issue. It's the spending money and being broke all the time.\n\nI previously worked at Wal-Mart and took home just about 400 dollars every other week. So I know i can survive on this income. I just don't know whether I should go for Chase as I could definitely see myself having a career there. I'm a math major likely going to become an actuary, so Chase could provide excellent opportunities for me **eventually**."
      ],
      "reasoning": False
    }'
    
  4. Nyisson meg egy parancssort, és futtassa a cURL parancsot.

Ha egy összegző feladatot szeretne tesztelni a kérdések megválaszolása (QnA) feladat helyett, használja a következő JSON-mintatörzset:

{
    "domain": "Medical",
    "task": "Summarization",
    "text": "Ms Johnson has been in the hospital after experiencing a stroke.",
    "groundingSources": ["Our patient, Ms. Johnson, presented with persistent fatigue, unexplained weight loss, and frequent night sweats. After a series of tests, she was diagnosed with Hodgkin’s lymphoma, a type of cancer that affects the lymphatic system. The diagnosis was confirmed through a lymph node biopsy revealing the presence of Reed-Sternberg cells, a characteristic of this disease. She was further staged using PET-CT scans. Her treatment plan includes chemotherapy and possibly radiation therapy, depending on her response to treatment. The medical team remains optimistic about her prognosis given the high cure rate of Hodgkin’s lymphoma."],
    "reasoning": false
}

Az URL-címnek tartalmaznia kell a következő mezőket:

Név Kötelező Leírás Típus
API-verzió Kötelező Ez a használni kívánt API-verzió. A jelenlegi verzió: api-version=2024-02-15-preview. Példa: <endpoint>/contentsafety/text:detectGroundedness?api-version=2024-02-15-preview Sztring

A kérelem törzsének paramétereit ebben a táblában definiáljuk:

Név Leírás Típus
Tartomány (Nem kötelező) MEDICAL vagy GENERIC. Alapértelmezett érték: GENERIC. Enumeráció
Feladat (Nem kötelező) Feladat típusa: QnA, Summarization. Alapértelmezett érték: Summarization. Enumeráció
qna (Nem kötelező) QnA-adatokat tárol, ha a tevékenység típusa .QnA Sztring
- query (Nem kötelező) Ez egy QnA-feladatban szereplő kérdést jelöli. Karakterkorlát: 7500. Sztring
text (Kötelező) Az ellenőrizni kívánt LLM-kimeneti szöveg. Karakterkorlát: 7500. Sztring
groundingSources (Kötelező) Az AI által létrehozott szöveg ellenőrzéséhez földelési források tömbje használható. Egyetlen kérelemben legfeljebb 55 000 karakternyi földelőforrás elemezhető. Sztringtömb
Érvelés (Nem kötelező) Megadja, hogy használja-e az érvelési funkciót. Az alapértelmezett érték false. Ha truea magyarázat megadásához saját Azure OpenAI GPT-4 Turbo-erőforrásokat kell létrehoznia. Legyen óvatos: az érvelés növeli a feldolgozási időt. Logikai

Az API-válasz értelmezése

A kérés elküldése után JSON-választ kap, amely tükrözi az elvégzett földi elemzést. Így néz ki egy tipikus kimenet:

{
    "ungroundedDetected": true,
    "ungroundedPercentage": 1,
    "ungroundedDetails": [
        {
            "text": "12/hour."
        }
    ]
}

A kimenet JSON-objektumai itt vannak definiálva:

Név Leírás Típus
ungroundedDetected Azt jelzi, hogy a szöveg nem látható-e. Logikai
ungroundedPercentage A 0 és 1 közötti számként megadott, nem földeltként azonosított szöveg arányát adja meg, ahol a 0 azt jelzi, hogy nem jelennek meg a felesleges tartalmak, az 1 pedig teljes egészében a háttér nélküli tartalmat jelöli. Lebegőpontos értékek
ungroundedDetails Konkrét példákkal és százalékokkal betekintést nyújt a nem megjelenített tartalmakba. Tömb
-text A konkrét szöveg, amely nincs megjelenítve. Sztring

A megalapozottság ellenőrzése érveléssel

A Földiesség-észlelési API lehetővé teszi, hogy érvelést is belefoglaljon az API-válaszba. Ha engedélyezve van az érvelés, a válasz tartalmaz egy "reasoning" mezőt, amely részletezi a konkrét példányokat és magyarázatokat az észlelt háttér nélküliséghez. Legyen óvatos: az érvelés növeli a feldolgozási időt, és további díjakat von maga után.

Saját GPT-üzembe helyezés

Tipp.

Jelenleg csak az Azure OpenAI GPT-4 Turbo-erőforrásokat támogatjuk, más GPT-típusokat nem. A GPT-4 Turbo-erőforrások bármely régióban üzembe helyezhetők; Javasoljuk azonban, hogy a potenciális késés minimalizálása érdekében a tartalombiztonsági erőforrásokat tartalmazó régióban legyenek.

Annak érdekében, hogy az Azure OpenAI GPT4-Turbo erőforrással engedélyezze az érvelési funkciót, a Felügyelt identitás használatával engedélyezze a Tartalom Széf ty erőforrás számára az Azure OpenAI-erőforrás elérését:

  1. Az Azure AI-tartalom Széf ty felügyelt identitásának engedélyezése.

    Nyissa meg az Azure AI Content Széf ty-példányát az Azure Portalon. Keresse meg az Identitás szakaszt a Gépház kategória alatt. Engedélyezze a rendszer által hozzárendelt felügyelt identitást. Ez a művelet olyan identitást biztosít az Azure AI Content Széf ty-példányának, amely felismerhető és használható az Azure-ban más erőforrások eléréséhez.

    Képernyőkép egy Content Széf ty identitáserőforrásról az Azure Portalon.

  2. Szerepkör hozzárendelése felügyelt identitáshoz.

    Lépjen az Azure OpenAI-példányra, válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget az Azure OpenAI-szerepkör Azure AI Content Széf ty-identitáshoz való hozzárendelésének folyamatához.

    Képernyőkép a szerepkör-hozzárendelés hozzáadásáról az Azure Portalon.

    Válassza ki a Felhasználó vagy közreműködő szerepkört.

    Képernyőkép az Azure Portalról, amelyen a közreműködői és a felhasználói szerepkörök láthatók egy listában.

AZ API-kérés létrehozása

A földiesség-észlelési API-ra irányuló kérésben állítsa a "reasoning" törzsparamétert a következőre true, és adja meg a többi szükséges paramétert:

 {
  "reasoning": true,
  "llmResource": {
    "resourceType": "AzureOpenAI",
    "azureOpenAIEndpoint": "<your_OpenAI_endpoint>",
    "azureOpenAIDeploymentName": "<your_deployment_name>"
  }
}

Ez a szakasz végigvezet egy mintakérésen a cURL használatával. Illessze be az alábbi parancsot egy szövegszerkesztőbe, és végezze el a következő módosításokat.

  1. Cserélje le <endpoint> az erőforráshoz társított végponti URL-címre.

  2. Cserélje le <your_subscription_key> az erőforrás egyik kulcsára.

  3. Ha szeretné, cserélje le a "query" törzsben lévő mezőket vagy "text" mezőket az elemezni kívánt saját szövegre.

    curl --location --request POST '<endpoint>/contentsafety/text:detectGroundedness?api-version=2024-02-15-preview' \
    --header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
      "domain": "Generic",
      "task": "QnA",
      "qna": {
           "query": "How much does she currently get paid per hour at the bank?"
      },
      "text": "12/hour",
      "groundingSources": [
        "I'm 21 years old and I need to make a decision about the next two years of my life. Within a week. I currently work for a bank that requires strict sales goals to meet. IF they aren't met three times (three months) you're canned. They pay me 10/hour and it's not unheard of to get a raise in 6ish months. The issue is, **I'm not a salesperson**. That's not my personality. I'm amazing at customer service, I have the most positive customer service \"reports\" done about me in the short time I've worked here. A coworker asked \"do you ask for people to fill these out? you have a ton\". That being said, I have a job opportunity at Chase Bank as a part time teller. What makes this decision so hard is that at my current job, I get 40 hours and Chase could only offer me 20 hours/week. Drive time to my current job is also 21 miles **one way** while Chase is literally 1.8 miles from my house, allowing me to go home for lunch. I do have an apartment and an awesome roommate that I know wont be late on his portion of rent, so paying bills with 20hours a week isn't the issue. It's the spending money and being broke all the time.\n\nI previously worked at Wal-Mart and took home just about 400 dollars every other week. So I know i can survive on this income. I just don't know whether I should go for Chase as I could definitely see myself having a career there. I'm a math major likely going to become an actuary, so Chase could provide excellent opportunities for me **eventually**."
      ],
      "reasoning": true,
      "llmResource": {
            "resourceType": "AzureOpenAI",
            "azureOpenAIEndpoint": "<your_OpenAI_endpoint>",
            "azureOpenAIDeploymentName": "<your_deployment_name>"
    }'
    
  4. Nyisson meg egy parancssort, és futtassa a cURL parancsot.

A kérelem törzsének paramétereit ebben a táblában definiáljuk:

Név Leírás Típus
Tartomány (Nem kötelező) MEDICAL vagy GENERIC. Alapértelmezett érték: GENERIC. Enumeráció
Feladat (Nem kötelező) Feladat típusa: QnA, Summarization. Alapértelmezett érték: Summarization. Enumeráció
qna (Nem kötelező) QnA-adatokat tárol, ha a tevékenység típusa .QnA Sztring
- query (Nem kötelező) Ez egy QnA-feladatban szereplő kérdést jelöli. Karakterkorlát: 7500. Sztring
text (Kötelező) Az ellenőrizni kívánt LLM-kimeneti szöveg. Karakterkorlát: 7500. Sztring
groundingSources (Kötelező) Az AI által létrehozott szöveg ellenőrzéséhez földelési források tömbje használható. Egyetlen kérelemben legfeljebb 55 000 karakternyi földelőforrás elemezhető. Sztringtömb
Érvelés (Nem kötelező) trueA szolgáltatás az Azure OpenAI-erőforrásokat használja a magyarázat megadásához. Legyen óvatos: az érvelés növeli a feldolgozási időt, és további díjakat von maga után. Logikai
llmResource (Kötelező) Ha saját Azure OpenAI GPT4-Turbo erőforrást szeretne használni az érvelés engedélyezéséhez, adja hozzá ezt a mezőt, és adja meg a használt erőforrások almezőit. Sztring
- resourceType A használt erőforrás típusát adja meg. Jelenleg csak a .AzureOpenAI Csak az Azure OpenAI GPT-4 Turbo-erőforrásokat támogatjuk, más GPT-típusokat nem. A GPT-4 Turbo-erőforrások bármely régióban üzembe helyezhetők; Javasoljuk azonban, hogy a potenciális késés minimalizálása érdekében a tartalombiztonsági erőforrásokat tartalmazó régióban legyenek. Enumeráció
- azureOpenAIEndpoint Az Azure OpenAI szolgáltatás végponti URL-címe. Sztring
- azureOpenAIDeploymentName A használni kívánt gpt-telepítés neve. Sztring

Az API-válasz értelmezése

A kérés elküldése után JSON-választ kap, amely tükrözi az elvégzett földi elemzést. Így néz ki egy tipikus kimenet:

{
    "ungroundedDetected": true,
    "ungroundedPercentage": 1,
    "ungroundedDetails": [
        {
            "text": "12/hour.",
            "offset": {
                "utF8": 0,
                "utF16": 0,
                "codePoint": 0
            },
            "length": {
                "utF8": 8,
                "utF16": 8,
                "codePoint": 8
            },
            "reason": "None. The premise mentions a pay of \"10/hour\" but does not mention \"12/hour.\" It's neutral. "
        }
    ]
}

A kimenet JSON-objektumai itt vannak definiálva:

Név Leírás Típus
ungroundedDetected Azt jelzi, hogy a szöveg nem látható-e. Logikai
ungroundedPercentage A 0 és 1 közötti számként megadott, nem földeltként azonosított szöveg arányát adja meg, ahol a 0 azt jelzi, hogy nem jelennek meg a felesleges tartalmak, az 1 pedig teljes egészében a háttér nélküli tartalmat jelöli. Lebegőpontos értékek
ungroundedDetails Konkrét példákkal és százalékokkal betekintést nyújt a nem megjelenített tartalmakba. Tömb
-text A konkrét szöveg, amely nincs megjelenítve. Sztring
-offset Egy objektum, amely a különböző kódolásban lévő, nem földelt szöveg pozícióját írja le. Sztring
- offset > utf8 Az UTF-8 kódolásban a nem földelt szöveg eltolási pozíciója. Egész
- offset > utf16 Az UTF-16 kódolásban a nem földelt szöveg eltolási pozíciója. Egész
- offset > codePoint A nem megjelenített szöveg eltolása Unicode-kódpontok szempontjából. Egész
-length Egy objektum, amely különböző kódolással írja le a háttér nélküli szöveg hosszát. (utf8, utf16, codePoint) az eltoláshoz hasonlóan. Objektum
- length > utf8 Az UTF-8 kódolásban lévő nem formázott szöveg hossza. Egész
- length > utf16 Az UTF-16 kódolásban lévő nem formázott szöveg hossza. Egész
- length > codePoint A nem megjelenített szöveg hossza Unicode-kódpontok szempontjából. Egész
-reason Magyarázatokat kínál az észlelt rendezetlenségre. Sztring

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure AI-szolgáltatási előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Következő lépések

Kombinálja a földiesség-észlelést más LLM biztonsági funkciókkal, például a Prompt Shields szolgáltatással.