Hızlı Başlangıç: Topraklama algılama (önizleme)
Büyük dil modellerinin (LLM) metin yanıtlarının kullanıcılar tarafından sağlanan kaynak malzemelerde yer alıp almadığını denetlemek için Azure AI İçeriği Kasa Yerleşiklik algılamasını kullanmak için bu kılavuzu izleyin.
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir content Kasa ty kaynağı oluşturun. Kaynağınız için benzersiz bir ad girin, aboneliğinizi seçin ve bir kaynak grubu, desteklenen bölge (Doğu ABD2, Batı ABD, İsveç Merkezi) ve desteklenen fiyatlandırma katmanını seçin. Daha sonra, Oluştur'u seçin.
- Kaynağın dağıtılması birkaç dakika sürer. Dağıtıldıktan sonra, yeni kaynağa gidin. Sol bölmedeki Kaynak Yönetimi'nin altında API Anahtarları ve Uç Noktalar'ı seçin. Abonelik anahtarı değerlerinden ve uç noktalardan birini daha sonra kullanmak üzere geçici bir konuma kopyalayın.
- (İsteğe bağlı) Akıl yürütme özelliğini kullanmak istiyorsanız, gpt modeli dağıtılan bir Azure OpenAI Hizmeti kaynağı oluşturun.
- cURL veya Python yüklü.
Akıl yürütmeden topraklanmışlığı kontrol edin
Gerekçe oluşturma özelliği olmadan basit durumda, Topraklama algılama API'si gönderilen içeriğin plansızlığını veya false
olarak true
sınıflandırır.
Bu bölümde, cURL ile örnek bir istekte yol gösterir. Aşağıdaki komutu bir metin düzenleyicisine yapıştırın ve aşağıdaki değişiklikleri yapın.
değerini kaynağınızla ilişkilendirilmiş uç nokta URL'si ile değiştirin
<endpoint>
.değerini kaynağınızın anahtarlarından biriyle değiştirin
<your_subscription_key>
.İsteğe bağlı olarak, gövdedeki
"query"
veya"text"
alanlarını analiz etmek istediğiniz kendi metninizle değiştirin.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 }'
Bir komut istemi açın ve cURL komutunu çalıştırın.
Soru yanıtlama (Soru-Cevap) görevi yerine özetleme görevini test etmek için aşağıdaki örnek JSON gövdesini kullanın:
{
"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
}
URL'ye aşağıdaki alanlar eklenmelidir:
Veri Akışı Adı | Zorunlu | Açıklama | Tür |
---|---|---|---|
API Sürümü | Zorunlu | Bu, kullanılacak API sürümüdür. Geçerli sürüm: api-version=2024-02-15-preview. Örnek: <endpoint>/contentsafety/text:detectGroundedness?api-version=2024-02-15-preview |
String |
İstek gövdesindeki parametreler şu tabloda tanımlanmıştır:
Veri Akışı Adı | Açıklama | Tür |
---|---|---|
Etki alanı | (İsteğe bağlı) MEDICAL veya .GENERIC Varsayılan değer: GENERIC . |
Sabit listesi |
Görev | (İsteğe bağlı) Görev türü: QnA , Summarization . Varsayılan değer: Summarization . |
Sabit listesi |
qna | (İsteğe bağlı) Görev türü olduğunda QnA Soru-Cevap verilerini tutar. |
String |
- query |
(İsteğe bağlı) Soru-Cevap görevindeki soruyu temsil eder. Karakter sınırı: 7.500. | String |
text | (Gerekli) denetlenecek LLM çıkış metni. Karakter sınırı: 7.500. | String |
groundingSources | (Gerekli) Yapay zeka tarafından oluşturulan metni doğrulamak için bir dizi topraklama kaynağı kullanır. Tek bir istekte en fazla 55.000 karakter topraklama kaynağı analiz edilebilir. | Dize dizisi |
Akıl | (İsteğe bağlı) Akıl yürütme özelliğinin kullanılıp kullanılmayacağını belirtir. Varsayılan değer şudur: false . ise true , bir açıklama sağlamak için kendi Azure OpenAI GPT-4 Turbo kaynaklarınızı getirmeniz gerekir. Dikkatli olun: mantık kullanmak işlem süresini artırır. |
Boolean |
API yanıtını yorumlama
İsteğinizi gönderdikten sonra, gerçekleştirilen Temellendirme analizini yansıtan bir JSON yanıtı alırsınız. Tipik bir çıktı şöyle görünür:
{
"ungroundedDetected": true,
"ungroundedPercentage": 1,
"ungroundedDetails": [
{
"text": "12/hour."
}
]
}
Çıktıdaki JSON nesneleri burada tanımlanır:
Veri Akışı Adı | Açıklama | Tür |
---|---|---|
ön plansız Algılandı | Metnin arka plansızlık gösterip göstermeyeceğini gösterir. | Boolean |
ungroundedPercentage | 0 ile 1 arasında bir sayı olarak ifade edilen ve 0'ın yerlenmemiş içerik olmadığını, 1'in ise tamamen topraklanmamış içeriği gösterdiği, topraklanmamış olarak tanımlanan metnin oranını belirtir. | Satışa Arz |
ungroundedDetails | Belirli örnekler ve yüzdelerle birlikte, planlanmamış içerikle ilgili içgörüler sağlar. | Dizi |
-text |
Arka plansız olan belirli metin. | String |
Akıl yürütme ile topraklanmışlığı denetleme
Topraklama algılama API'si, API yanıtına mantık ekleme seçeneği sunar. Mantık etkinleştirildiğinde yanıt, algılanan herhangi bir ön plansızlığın belirli örneklerini ve açıklamalarını ayrıntılandıran bir "reasoning"
alan içerir. Dikkatli olun: akıl yürütmeyi kullanmak işlem süresini artırır ve ek ücrete tabidir.
Kendi GPT dağıtımınızı getirme
İpucu
Şu anda yalnızca Azure OpenAI GPT-4 Turbo kaynaklarını destekliyoruz ve diğer GPT türlerini desteklemiyoruz. GPT-4 Turbo kaynaklarınız herhangi bir bölgede dağıtılabilir; ancak, olası gecikme süresini en aza indirmek için içerik güvenliği kaynaklarıyla aynı bölgede bulunmalarını öneririz.
Azure OpenAI GPT4-Turbo kaynağınızı kullanarak akıl yürütme özelliğini etkinleştirmek için Yönetilen Kimlik'i kullanarak İçerik Kasa ty kaynağınızın Azure OpenAI kaynağına erişmesine izin verin:
Azure AI İçeriği Kasa ty için Yönetilen Kimliği etkinleştirin.
Azure portalında Azure Yapay Zeka İçeriği Kasa ty örneğine gidin. Ayarlar kategorisinin altındaki Kimlik bölümünü bulun. Sistem tarafından atanan yönetilen kimliği etkinleştirin. Bu eylem, Azure AI İçerik Kasa ty örneğinize Azure'da diğer kaynaklara erişmek için tanınabilecek ve kullanılabilecek bir kimlik verir.
Yönetilen Kimliğe Rol Atayın.
Azure OpenAI örneğinize gidin, Rol ataması ekle'yi seçerek Azure AI İçeriği Kasa ty kimliğine Azure OpenAI rolü atama işlemini başlatın.
Kullanıcı veya Katkıda Bulunan rolünü seçin.
API isteğinde bulunma
Topraklama algılama API'sine yönelik isteğinizde gövde parametresini olarak true
ayarlayın "reasoning"
ve diğer gerekli parametreleri sağlayın:
{
"reasoning": true,
"llmResource": {
"resourceType": "AzureOpenAI",
"azureOpenAIEndpoint": "<your_OpenAI_endpoint>",
"azureOpenAIDeploymentName": "<your_deployment_name>"
}
}
Bu bölümde, cURL ile örnek bir istekte yol gösterir. Aşağıdaki komutu bir metin düzenleyicisine yapıştırın ve aşağıdaki değişiklikleri yapın.
değerini kaynağınızla ilişkilendirilmiş uç nokta URL'si ile değiştirin
<endpoint>
.değerini kaynağınızın anahtarlarından biriyle değiştirin
<your_subscription_key>
.İsteğe bağlı olarak, gövdedeki
"query"
veya"text"
alanlarını analiz etmek istediğiniz kendi metninizle değiştirin.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>" }'
Bir komut istemi açın ve cURL komutunu çalıştırın.
İstek gövdesindeki parametreler şu tabloda tanımlanmıştır:
Veri Akışı Adı | Açıklama | Tür |
---|---|---|
Etki alanı | (İsteğe bağlı) MEDICAL veya .GENERIC Varsayılan değer: GENERIC . |
Sabit listesi |
Görev | (İsteğe bağlı) Görev türü: QnA , Summarization . Varsayılan değer: Summarization . |
Sabit listesi |
qna | (İsteğe bağlı) Görev türü olduğunda QnA Soru-Cevap verilerini tutar. |
String |
- query |
(İsteğe bağlı) Soru-Cevap görevindeki soruyu temsil eder. Karakter sınırı: 7.500. | String |
text | (Gerekli) denetlenecek LLM çıkış metni. Karakter sınırı: 7.500. | String |
groundingSources | (Gerekli) Yapay zeka tarafından oluşturulan metni doğrulamak için bir dizi topraklama kaynağı kullanır. Tek bir istekte en fazla 55.000 karakter topraklama kaynağı analiz edilebilir. | Dize dizisi |
Akıl | (İsteğe bağlı) olarak true ayarlayın. Hizmet, bir açıklama sağlamak için Azure OpenAI kaynaklarını kullanır. Dikkatli olun: akıl yürütmeyi kullanmak işlem süresini artırır ve ek ücrete tabidir. |
Boolean |
llmResource | (Gerekli) Mantığı etkinleştirmek için kendi Azure OpenAI GPT4-Turbo kaynağınızı kullanmak istiyorsanız, bu alanı ekleyin ve kullanılan kaynakların alt alanlarını ekleyin. | String |
- resourceType |
Kullanılan kaynak türünü belirtir. Şu anda yalnızca izin verir AzureOpenAI . Yalnızca Azure OpenAI GPT-4 Turbo kaynaklarını destekliyoruz ve diğer GPT türlerini desteklemiyoruz. GPT-4 Turbo kaynaklarınız herhangi bir bölgede dağıtılabilir; ancak, olası gecikme süresini en aza indirmek için içerik güvenliği kaynaklarıyla aynı bölgede bulunmalarını öneririz. |
Sabit listesi |
- azureOpenAIEndpoint |
Azure OpenAI hizmeti için uç nokta URL'niz. | String |
- azureOpenAIDeploymentName |
Kullanılacak belirli GPT dağıtımının adı. | String |
API yanıtını yorumlama
İsteğinizi gönderdikten sonra, gerçekleştirilen Temellendirme analizini yansıtan bir JSON yanıtı alırsınız. Tipik bir çıktı şöyle görünür:
{
"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. "
}
]
}
Çıktıdaki JSON nesneleri burada tanımlanır:
Veri Akışı Adı | Açıklama | Tür |
---|---|---|
ön plansız Algılandı | Metnin arka plansızlık gösterip göstermeyeceğini gösterir. | Boolean |
ungroundedPercentage | 0 ile 1 arasında bir sayı olarak ifade edilen ve 0'ın yerlenmemiş içerik olmadığını, 1'in ise tamamen topraklanmamış içeriği gösterdiği, topraklanmamış olarak tanımlanan metnin oranını belirtir. | Satışa Arz |
ungroundedDetails | Belirli örnekler ve yüzdelerle birlikte, planlanmamış içerikle ilgili içgörüler sağlar. | Dizi |
-text |
Arka plansız olan belirli metin. | String |
-offset |
Çeşitli kodlamalarda yer almamış metnin konumunu açıklayan bir nesne. | String |
- offset > utf8 |
UTF-8 kodlamasında, topraklanmamış metnin uzaklık konumu. | Tamsayı |
- offset > utf16 |
UTF-16 kodlamasında, planlanmamış metnin uzaklık konumu. | Tamsayı |
- offset > codePoint |
Unicode kod noktaları açısından, topraklanmamış metnin uzaklık konumu. | Tamsayı |
-length |
Çeşitli kodlamalarda yer almamış metnin uzunluğunu açıklayan bir nesne. (utf8, utf16, codePoint), uzaklık değerine benzer. | Object |
- length > utf8 |
UTF-8 kodlamasında arka planlanmamış metnin uzunluğu. | Tamsayı |
- length > utf16 |
UTF-16 kodlamasında topraklanmamış metnin uzunluğu. | Tamsayı |
- length > codePoint |
Unicode kod noktaları açısından planlanmamış metnin uzunluğu. | Tamsayı |
-reason |
Algılanan ön plansızlık için açıklamalar sunar. | String |
Kaynakları temizleme
Azure AI hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Sonraki adımlar
Topraklama algılamayı prompt Shields gibi diğer LLM güvenlik özellikleriyle birleştirin.