Hızlı Başlangıç: metin, belge ve konuşma özetlemeyi kullanma
Önemli
Önizleme bölgemiz olan Sweden Central, GPT modellerini temel alan en son ve sürekli gelişen LLM ince ayar tekniklerimizi gösterir. Bunları İsveç Orta bölgesindeki bir Dil kaynağıyla deneyebilirsiniz.
Konuşma özetlemesi yalnızca şu şekilde kullanılabilir:
- REST API
- Python
- C#
.NET için istemci kitaplığıyla bir metin özetleme uygulaması oluşturmak için bu hızlı başlangıcı kullanın. Aşağıdaki örnekte, belgeleri veya metin tabanlı müşteri hizmetleri konuşmalarını özetleyebilecek bir C# uygulaması oluşturacaksınız.
İpucu
Kod yazmaya gerek kalmadan metin özetlemeyi denemek için Language Studio'yu kullanabilirsiniz.
Önkoşullar
- Azure aboneliği - Ücretsiz olarak oluşturun
- Visual Studio IDE
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Dil kaynağı oluşturun. Dağıtıldıktan sonra Kaynağa git'i seçin.
- Uygulamanızı API'ye bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde koda yapıştırırsınız.
- Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (
Free F0
) kullanabilirsiniz.
- Çözümle özelliğini kullanmak için standart (S) fiyatlandırma katmanına sahip bir Dil kaynağı gerekir.
Ayarlama
Ortam değişkenlerini oluşturma
API istekleri göndermek için uygulamanızın kimliği doğrulanmalıdır. Üretim için kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Bu örnekte, kimlik bilgilerinizi uygulamayı çalıştıran yerel makinedeki ortam değişkenlerine yazacaksınız.
Dil kaynak anahtarınızın ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminiz ve geliştirme ortamınıza yönelik yönergeleri izleyin.
- Ortam değişkenini
LANGUAGE_KEY
ayarlamak için değerini kaynağınızın anahtarlarından biriyle değiştirinyour-key
. - Ortam değişkenini
LANGUAGE_ENDPOINT
ayarlamak için değerini kaynağınızın uç noktasıyla değiştirinyour-endpoint
.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Not
Yalnızca geçerli çalışan konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setx
ile set
ayarlayabilirsiniz.
Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
Yeni .NET Core uygulaması oluşturma
Visual Studio IDE’yi kullanarak yeni bir .NET Core konsol uygulaması oluşturun. Bu, tek bir C# kaynak dosyasıyla bir "Merhaba Dünya" projesi oluşturur: program.cs.
Çözüm Gezgini’nde çözüme sağ tıklayarak ve NuGet paketlerini yönet seçeneğini belirleyerek istemci kitaplığını yükleyin. Açılan paket yöneticisinde Gözat'ı seçin ve öğesini arayınAzure.AI.TextAnalytics
. Ön sürümü dahil et'in işaretli olduğundan emin olun. Sürüm olarak 5.3.0
seçin ve Yükle seçeneğini belirleyin. Paket Yöneticisi Konsolu’nu da kullanabilirsiniz.
Kod örneği
Aşağıdaki kodu program.cs dosyanıza kopyalayın. Sonra kodu çalıştırın.
Önemli
Azure portalına gidin. Önkoşullar bölümünde oluşturduğunuz Dil kaynağı başarıyla dağıtıldıysa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Kaynağınızın Anahtarlar ve Uç Nokta sayfasına gidip Kaynak Yönetimi'nin altında anahtarınızı ve uç noktanızı bulabilirsiniz.
Önemli
İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
using Azure;
using System;
using Azure.AI.TextAnalytics;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace Example
{
class Program
{
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
static string languageKey = Environment.GetEnvironmentVariable("LANGUAGE_KEY");
static string languageEndpoint = Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT");
private static readonly AzureKeyCredential credentials = new AzureKeyCredential(languageKey);
private static readonly Uri endpoint = new Uri(languageEndpoint);
// Example method for summarizing text
static async Task TextSummarizationExample(TextAnalyticsClient client)
{
string document = @"The extractive summarization feature uses natural language processing techniques to locate key sentences in an unstructured text document.
These sentences collectively convey the main idea of the document. This feature is provided as an API for developers.
They can use it to build intelligent solutions based on the relevant information extracted to support various use cases.
Extractive summarization supports several languages. It is based on pretrained multilingual transformer models, part of our quest for holistic representations.
It draws its strength from transfer learning across monolingual and harness the shared nature of languages to produce models of improved quality and efficiency." ;
// Prepare analyze operation input. You can add multiple documents to this list and perform the same
// operation to all of them.
var batchInput = new List<string>
{
document
};
TextAnalyticsActions actions = new TextAnalyticsActions()
{
ExtractiveSummarizeActions = new List<ExtractiveSummarizeAction>() { new ExtractiveSummarizeAction() }
};
// Start analysis process.
AnalyzeActionsOperation operation = await client.StartAnalyzeActionsAsync(batchInput, actions);
await operation.WaitForCompletionAsync();
// View operation status.
Console.WriteLine($"AnalyzeActions operation has completed");
Console.WriteLine();
Console.WriteLine($"Created On : {operation.CreatedOn}");
Console.WriteLine($"Expires On : {operation.ExpiresOn}");
Console.WriteLine($"Id : {operation.Id}");
Console.WriteLine($"Status : {operation.Status}");
Console.WriteLine();
// View operation results.
await foreach (AnalyzeActionsResult documentsInPage in operation.Value)
{
IReadOnlyCollection<ExtractiveSummarizeActionResult> summaryResults = documentsInPage.ExtractiveSummarizeResults;
foreach (ExtractiveSummarizeActionResult summaryActionResults in summaryResults)
{
if (summaryActionResults.HasError)
{
Console.WriteLine($" Error!");
Console.WriteLine($" Action error code: {summaryActionResults.Error.ErrorCode}.");
Console.WriteLine($" Message: {summaryActionResults.Error.Message}");
continue;
}
foreach (ExtractiveSummarizeResult documentResults in summaryActionResults.DocumentsResults)
{
if (documentResults.HasError)
{
Console.WriteLine($" Error!");
Console.WriteLine($" Document error code: {documentResults.Error.ErrorCode}.");
Console.WriteLine($" Message: {documentResults.Error.Message}");
continue;
}
Console.WriteLine($" Extracted the following {documentResults.Sentences.Count} sentence(s):");
Console.WriteLine();
foreach (ExtractiveSummarySentence sentence in documentResults.Sentences)
{
Console.WriteLine($" Sentence: {sentence.Text}");
Console.WriteLine();
}
}
}
}
}
static async Task Main(string[] args)
{
var client = new TextAnalyticsClient(endpoint, credentials);
await TextSummarizationExample(client);
}
}
}
Çıktı
AnalyzeActions operation has completed
Created On : 9/16/2021 8:04:27 PM +00:00
Expires On : 9/17/2021 8:04:27 PM +00:00
Id : 2e63fa58-fbaa-4be9-a700-080cff098f91
Status : succeeded
Extracted the following 3 sentence(s):
Sentence: The extractive summarization feature in uses natural language processing techniques to locate key sentences in an unstructured text document.
Sentence: This feature is provided as an API for developers.
Sentence: They can use it to build intelligent solutions based on the relevant information extracted to support various use cases.
Başvuru belgeleri | Diğer örnekler | Paket (Maven) | Kitaplık kaynak kodu
Java için istemci kitaplığıyla bir metin özetleme uygulaması oluşturmak için bu hızlı başlangıcı kullanın. Aşağıdaki örnekte, belgeleri özetleyebilecek bir Java uygulaması oluşturacaksınız.
İpucu
Kod yazmaya gerek kalmadan metin özetlemeyi denemek için Language Studio'yu kullanabilirsiniz.
Önkoşullar
- Azure aboneliği - Ücretsiz olarak oluşturun
- Java Geliştirme Seti (JDK) sürüm 8 veya üstü
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Dil kaynağı oluşturun. Dağıtıldıktan sonra Kaynağa git'i seçin.
- Uygulamanızı API'ye bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde aşağıdaki koda yapıştırırsınız.
- Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (
Free F0
) kullanabilirsiniz.
- Çözümle özelliğini kullanmak için standart (S) fiyatlandırma katmanına sahip bir Dil kaynağı gerekir.
Ayarlama
İstemci kitaplığını ekleme
Tercih ettiğiniz IDE veya geliştirme ortamında bir Maven projesi oluşturun. Ardından aşağıdaki bağımlılığı projenizin pom.xml dosyasına ekleyin. Diğer derleme araçlarına yönelik uygulama söz dizimini çevrimiçi olarak bulabilirsiniz.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-textanalytics</artifactId>
<version>5.3.0</version>
</dependency>
</dependencies>
Ortam değişkenlerini oluşturma
API istekleri göndermek için uygulamanızın kimliği doğrulanmalıdır. Üretim için kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Bu örnekte, kimlik bilgilerinizi uygulamayı çalıştıran yerel makinedeki ortam değişkenlerine yazacaksınız.
Dil kaynak anahtarınızın ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminiz ve geliştirme ortamınıza yönelik yönergeleri izleyin.
- Ortam değişkenini
LANGUAGE_KEY
ayarlamak için değerini kaynağınızın anahtarlarından biriyle değiştirinyour-key
. - Ortam değişkenini
LANGUAGE_ENDPOINT
ayarlamak için değerini kaynağınızın uç noktasıyla değiştirinyour-endpoint
.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Not
Yalnızca geçerli çalışan konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setx
ile set
ayarlayabilirsiniz.
Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
Kod örneği
Example.java
adlı bir Java dosyası oluşturun. Dosyayı açın ve aşağıdaki kodu kopyalayın. Sonra kodu çalıştırın.
Önemli
Azure portalına gidin. Önkoşullar bölümünde oluşturduğunuz Dil kaynağı başarıyla dağıtıldıysa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Kaynağınızın Anahtarlar ve Uç Nokta sayfasına gidip Kaynak Yönetimi'nin altında anahtarınızı ve uç noktanızı bulabilirsiniz.
Önemli
İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;
import java.util.ArrayList;
import java.util.List;
import com.azure.core.util.polling.SyncPoller;
import com.azure.ai.textanalytics.util.*;
public class Example {
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
private static String languageKey = System.getenv("LANGUAGE_KEY");
private static String languageEndpoint = System.getenv("LANGUAGE_ENDPOINT");
public static void main(String[] args) {
TextAnalyticsClient client = authenticateClient(languageKey, languageEndpoint);
summarizationExample(client);
}
// Method to authenticate the client object with your key and endpoint
static TextAnalyticsClient authenticateClient(String key, String endpoint) {
return new TextAnalyticsClientBuilder()
.credential(new AzureKeyCredential(key))
.endpoint(endpoint)
.buildClient();
}
// Example method for summarizing text
static void summarizationExample(TextAnalyticsClient client) {
List<String> documents = new ArrayList<>();
documents.add(
"The extractive summarization feature uses natural language processing techniques "
+ "to locate key sentences in an unstructured text document. "
+ "These sentences collectively convey the main idea of the document. This feature is provided as an API for developers. "
+ "They can use it to build intelligent solutions based on the relevant information extracted to support various use cases. "
+ "Extractive summarization supports several languages. "
+ "It is based on pretrained multilingual transformer models, part of our quest for holistic representations. "
+ "It draws its strength from transfer learning across monolingual and harness the shared nature of languages "
+ "to produce models of improved quality and efficiency.");
SyncPoller<AnalyzeActionsOperationDetail, AnalyzeActionsResultPagedIterable> syncPoller =
client.beginAnalyzeActions(documents,
new TextAnalyticsActions().setDisplayName("{tasks_display_name}")
.setExtractSummaryActions(
new ExtractSummaryAction()),
"en",
new AnalyzeActionsOptions());
syncPoller.waitForCompletion();
syncPoller.getFinalResult().forEach(actionsResult -> {
System.out.println("Extractive Summarization action results:");
for (ExtractSummaryActionResult actionResult : actionsResult.getExtractSummaryResults()) {
if (!actionResult.isError()) {
for (ExtractSummaryResult documentResult : actionResult.getDocumentsResults()) {
if (!documentResult.isError()) {
System.out.println("\tExtracted summary sentences:");
for (SummarySentence summarySentence : documentResult.getSentences()) {
System.out.printf(
"\t\t Sentence text: %s, length: %d, offset: %d, rank score: %f.%n",
summarySentence.getText(), summarySentence.getLength(),
summarySentence.getOffset(), summarySentence.getRankScore());
}
} else {
System.out.printf("\tCannot extract summary sentences. Error: %s%n",
documentResult.getError().getMessage());
}
}
} else {
System.out.printf("\tCannot execute Extractive Summarization action. Error: %s%n",
actionResult.getError().getMessage());
}
}
});
}
}
Çıktı
Extractive Summarization action results:
Extracted summary sentences:
Sentence text: The extractive summarization feature uses natural language processing techniques to locate key sentences in an unstructured text document., length: 138, offset: 0, rank score: 1.000000.
Sentence text: This feature is provided as an API for developers., length: 50, offset: 206, rank score: 0.510000.
Sentence text: Extractive summarization supports several languages., length: 52, offset: 378, rank score: 0.410000.
Başvuru belgeleri | Ek örnekler | Paket (npm) | Kitaplık kaynak kodu
Node.js için istemci kitaplığıyla bir metin özetleme uygulaması oluşturmak için bu hızlı başlangıcı kullanın. Aşağıdaki örnekte, belgeleri özetleyebilecek bir JavaScript uygulaması oluşturacaksınız.
İpucu
Kod yazmaya gerek kalmadan metin özetlemeyi denemek için Language Studio'yu kullanabilirsiniz.
Önkoşullar
- Azure aboneliği - Ücretsiz olarak oluşturun
- Node.js v16 LTS
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Dil kaynağı oluşturun. Dağıtıldıktan sonra Kaynağa git'i seçin.
- Uygulamanızı API'ye bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde aşağıdaki koda yapıştıracaksınız.
- Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (
Free F0
) kullanabilirsiniz.
- Çözümle özelliğini kullanmak için standart (S) fiyatlandırma katmanına sahip bir Dil kaynağı gerekir.
Ayarlama
Ortam değişkenlerini oluşturma
API istekleri göndermek için uygulamanızın kimliği doğrulanmalıdır. Üretim için kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Bu örnekte, kimlik bilgilerinizi uygulamayı çalıştıran yerel makinedeki ortam değişkenlerine yazacaksınız.
Dil kaynak anahtarınızın ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminiz ve geliştirme ortamınıza yönelik yönergeleri izleyin.
- Ortam değişkenini
LANGUAGE_KEY
ayarlamak için değerini kaynağınızın anahtarlarından biriyle değiştirinyour-key
. - Ortam değişkenini
LANGUAGE_ENDPOINT
ayarlamak için değerini kaynağınızın uç noktasıyla değiştirinyour-endpoint
.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Not
Yalnızca geçerli çalışan konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setx
ile set
ayarlayabilirsiniz.
Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
Yeni bir Node.js uygulaması oluşturma
Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.
mkdir myapp
cd myapp
Bir package.json
dosyası ile bir düğüm uygulaması oluşturmak için npm init
komutunu çalıştırın.
npm init
İstemci kitaplığını yükleme
npm paketlerini yükleyin:
npm install --save @azure/ai-language-text@1.1.0
Kod örneği
Dosyayı açın ve aşağıdaki kodu kopyalayın. Sonra kodu çalıştırın.
Önemli
Azure portalına gidin. Önkoşullar bölümünde oluşturduğunuz Dil kaynağı başarıyla dağıtıldıysa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Kaynağınızın Anahtarlar ve Uç Nokta sayfasına gidip Kaynak Yönetimi'nin altında anahtarınızı ve uç noktanızı bulabilirsiniz.
Önemli
İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
/**
* This sample program extracts a summary of two sentences at max from an article.
* For more information, see the feature documentation: {@link https://video2.skills-academy.com/azure/ai-services/language-service/summarization/overview}
*
* @summary extracts a summary from an article
*/
const { AzureKeyCredential, TextAnalysisClient } = require("@azure/ai-language-text");
// Load the .env file if it exists
require("dotenv").config();
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
const endpoint = process.env.LANGUAGE_ENDPOINT;
const apiKey = process.env.LANGUAGE_KEY;
const documents = [
`
Windows 365 was in the works before COVID-19 sent companies around the world on a scramble to secure solutions to support employees suddenly forced to work from home, but “what really put the firecracker behind it was the pandemic, it accelerated everything,” McKelvey said. She explained that customers were asking, “’How do we create an experience for people that makes them still feel connected to the company without the physical presence of being there?”
In this new world of Windows 365, remote workers flip the lid on their laptop, bootup the family workstation or clip a keyboard onto a tablet, launch a native app or modern web browser and login to their Windows 365 account. From there, their Cloud PC appears with their background, apps, settings and content just as they left it when they last were last there – in the office, at home or a coffee shop.
“And then, when you’re done, you’re done. You won’t have any issues around security because you’re not saving anything on your device,” McKelvey said, noting that all the data is stored in the cloud.
The ability to login to a Cloud PC from anywhere on any device is part of Microsoft’s larger strategy around tailoring products such as Microsoft Teams and Microsoft 365 for the post-pandemic hybrid workforce of the future, she added. It enables employees accustomed to working from home to continue working from home; it enables companies to hire interns from halfway around the world; it allows startups to scale without requiring IT expertise.
“I think this will be interesting for those organizations who, for whatever reason, have shied away from virtualization. This is giving them an opportunity to try it in a way that their regular, everyday endpoint admin could manage,” McKelvey said.
The simplicity of Windows 365 won over Dean Wells, the corporate chief information officer for the Government of Nunavut. His team previously attempted to deploy a traditional virtual desktop infrastructure and found it inefficient and unsustainable given the limitations of low-bandwidth satellite internet and the constant need for IT staff to manage the network and infrastructure.
We didn’t run it for very long,” he said. “It didn’t turn out the way we had hoped. So, we actually had terminated the project and rolled back out to just regular PCs.”
He re-evaluated this decision after the Government of Nunavut was hit by a ransomware attack in November 2019 that took down everything from the phone system to the government’s servers. Microsoft helped rebuild the system, moving the government to Teams, SharePoint, OneDrive and Microsoft 365. Manchester’s team recruited the Government of Nunavut to pilot Windows 365. Wells was intrigued, especially by the ability to manage the elastic workforce securely and seamlessly.
“The impact that I believe we are finding, and the impact that we’re going to find going forward, is being able to access specialists from outside the territory and organizations outside the territory to come in and help us with our projects, being able to get people on staff with us to help us deliver the day-to-day expertise that we need to run the government,” he said.
“Being able to improve healthcare, being able to improve education, economic development is going to improve the quality of life in the communities.”`,
];
async function main() {
console.log("== Extractive Summarization Sample ==");
const client = new TextAnalysisClient(endpoint, new AzureKeyCredential(apiKey));
const actions = [
{
kind: "ExtractiveSummarization",
maxSentenceCount: 2,
},
];
const poller = await client.beginAnalyzeBatch(actions, documents, "en");
poller.onProgress(() => {
console.log(
`Last time the operation was updated was on: ${poller.getOperationState().modifiedOn}`
);
});
console.log(`The operation was created on ${poller.getOperationState().createdOn}`);
console.log(`The operation results will expire on ${poller.getOperationState().expiresOn}`);
const results = await poller.pollUntilDone();
for await (const actionResult of results) {
if (actionResult.kind !== "ExtractiveSummarization") {
throw new Error(`Expected extractive summarization results but got: ${actionResult.kind}`);
}
if (actionResult.error) {
const { code, message } = actionResult.error;
throw new Error(`Unexpected error (${code}): ${message}`);
}
for (const result of actionResult.results) {
console.log(`- Document ${result.id}`);
if (result.error) {
const { code, message } = result.error;
throw new Error(`Unexpected error (${code}): ${message}`);
}
console.log("Summary:");
console.log(result.sentences.map((sentence) => sentence.text).join("\n"));
}
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
module.exports = { main };
Python için istemci kitaplığıyla bir metin özetleme uygulaması oluşturmak için bu hızlı başlangıcı kullanın. Aşağıdaki örnekte, belgeleri veya metin tabanlı müşteri hizmetleri konuşmalarını özetleyebilecek bir Python uygulaması oluşturacaksınız.
İpucu
Kod yazmaya gerek kalmadan metin özetlemeyi denemek için Language Studio'yu kullanabilirsiniz.
Önkoşullar
- Azure aboneliği - Ücretsiz olarak oluşturun
- Python 3.x
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Dil kaynağı oluşturun. Dağıtıldıktan sonra Kaynağa git'i seçin.
- Uygulamanızı API'ye bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde aşağıdaki koda yapıştırırsınız.
- Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (
Free F0
) kullanabilirsiniz.
- Çözümle özelliğini kullanmak için standart (S) fiyatlandırma katmanına sahip bir Dil kaynağı gerekir.
Ayarlama
Ortam değişkenlerini oluşturma
API istekleri göndermek için uygulamanızın kimliği doğrulanmalıdır. Üretim için kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Bu örnekte, kimlik bilgilerinizi uygulamayı çalıştıran yerel makinedeki ortam değişkenlerine yazacaksınız.
Dil kaynak anahtarınızın ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminiz ve geliştirme ortamınıza yönelik yönergeleri izleyin.
- Ortam değişkenini
LANGUAGE_KEY
ayarlamak için değerini kaynağınızın anahtarlarından biriyle değiştirinyour-key
. - Ortam değişkenini
LANGUAGE_ENDPOINT
ayarlamak için değerini kaynağınızın uç noktasıyla değiştirinyour-endpoint
.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Not
Yalnızca geçerli çalışan konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setx
ile set
ayarlayabilirsiniz.
Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
İstemci kitaplığını yükleme
Python yükledikten sonra şunları kullanarak istemci kitaplığını yükleyebilirsiniz:
pip install azure-ai-textanalytics==5.3.0
Kod örneği
Yeni bir Python dosyası oluşturun ve aşağıdaki kodu kopyalayın. Sonra kodu çalıştırın.
Önemli
Azure portalına gidin. Önkoşullar bölümünde oluşturduğunuz Dil kaynağı başarıyla dağıtıldıysa, Sonraki Adımlar'ın altındaki Kaynağa Git düğmesine tıklayın. Kaynağınızın Anahtarlar ve Uç Nokta sayfasına gidip Kaynak Yönetimi'nin altında anahtarınızı ve uç noktanızı bulabilirsiniz.
Önemli
İşiniz bittiğinde anahtarı kodunuzdan kaldırmayı unutmayın ve asla herkese açık olarak göndermeyin. Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
# This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
key = os.environ.get('LANGUAGE_KEY')
endpoint = os.environ.get('LANGUAGE_ENDPOINT')
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
# Authenticate the client using your key and endpoint
def authenticate_client():
ta_credential = AzureKeyCredential(key)
text_analytics_client = TextAnalyticsClient(
endpoint=endpoint,
credential=ta_credential)
return text_analytics_client
client = authenticate_client()
# Example method for summarizing text
def sample_extractive_summarization(client):
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import (
TextAnalyticsClient,
ExtractiveSummaryAction
)
document = [
"The extractive summarization feature uses natural language processing techniques to locate key sentences in an unstructured text document. "
"These sentences collectively convey the main idea of the document. This feature is provided as an API for developers. "
"They can use it to build intelligent solutions based on the relevant information extracted to support various use cases. "
"Extractive summarization supports several languages. It is based on pretrained multilingual transformer models, part of our quest for holistic representations. "
"It draws its strength from transfer learning across monolingual and harness the shared nature of languages to produce models of improved quality and efficiency. "
]
poller = client.begin_analyze_actions(
document,
actions=[
ExtractiveSummaryAction(max_sentence_count=4)
],
)
document_results = poller.result()
for result in document_results:
extract_summary_result = result[0] # first document, first result
if extract_summary_result.is_error:
print("...Is an error with code '{}' and message '{}'".format(
extract_summary_result.code, extract_summary_result.message
))
else:
print("Summary extracted: \n{}".format(
" ".join([sentence.text for sentence in extract_summary_result.sentences]))
)
sample_extractive_summarization(client)
Çıktı
Summary extracted:
The extractive summarization feature uses natural language processing techniques to locate key sentences in an unstructured text document. This feature is provided as an API for developers. They can use it to build intelligent solutions based on the relevant information extracted to support various use cases.
REST API kullanarak metin özetleme istekleri göndermek için bu hızlı başlangıcı kullanın. Aşağıdaki örnekte, belgeleri veya metin tabanlı müşteri hizmetleri konuşmalarını özetlemek için cURL kullanacaksınız.
İpucu
Kod yazmaya gerek kalmadan metin özetlemeyi denemek için Language Studio'yu kullanabilirsiniz.
Önkoşullar
- cURL'nin geçerli sürümü.
- Azure aboneliğinizi aldıktan sonra anahtarınızı ve uç noktanızı almak için Azure portalında bir Dil kaynağı oluşturun. Dağıtıldıktan sonra Kaynağa git'i seçin.
- Uygulamanızı API'ye bağlamak için oluşturduğunuz kaynaktan anahtara ve uç noktaya ihtiyacınız olacaktır. Anahtarınızı ve uç noktanızı hızlı başlangıcın ilerleyen bölümlerinde aşağıdaki koda yapıştıracaksınız.
- Hizmeti denemek ve daha sonra üretim için ücretli bir katmana yükseltmek için ücretsiz fiyatlandırma katmanını (
Free F0
) kullanabilirsiniz.
Ayarlama
Ortam değişkenlerini oluşturma
API istekleri göndermek için uygulamanızın kimliği doğrulanmalıdır. Üretim için kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Bu örnekte, kimlik bilgilerinizi uygulamayı çalıştıran yerel makinedeki ortam değişkenlerine yazacaksınız.
Dil kaynak anahtarınızın ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminiz ve geliştirme ortamınıza yönelik yönergeleri izleyin.
- Ortam değişkenini
LANGUAGE_KEY
ayarlamak için değerini kaynağınızın anahtarlarından biriyle değiştirinyour-key
. - Ortam değişkenini
LANGUAGE_ENDPOINT
ayarlamak için değerini kaynağınızın uç noktasıyla değiştirinyour-endpoint
.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Not
Yalnızca geçerli çalışan konsoldaki ortam değişkenlerine erişmeniz gerekiyorsa, ortam değişkenini yerine setx
ile set
ayarlayabilirsiniz.
Ortam değişkenlerini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenlerini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.
Örnek istek
Not
Gerçekleştirmek istediğiniz özetleme türünü seçin ve örnek bir API çağrısı görmek için aşağıdaki sekmelerden birini seçin:
Özellik | Açıklama |
---|---|
Metin özetleme | Belge içinde önemli veya ilgili bilgilerin özetini oluşturmak için ayıklayıcı metin özetlemeyi kullanın. |
Konuşma özeti | Müşteri hizmetleri aracıları ve müşteriler arasındaki transkriptlerde sorunların ve çözümlerin özetini oluşturmak için soyut metin özetlemeyi kullanın. |
parametre | Açıklama |
---|---|
-X POST <endpoint> |
API'ye erişmek için uç noktanızı belirtir. |
-H Content-Type: application/json |
JSON verilerini göndermek için içerik türü. |
-H "Ocp-Apim-Subscription-Key:<key> |
API'ye erişmek için anahtarı belirtir. |
-d <documents> |
Göndermek istediğiniz belgeleri içeren JSON. |
Aşağıdaki cURL komutları bir BASH kabuğundan yürütülür. Bu komutları kendi JSON değerlerinizle düzenleyin.
Metin özetleme
Metin ayıklayıcı özetleme örneği
Aşağıdaki örnek, metin ayıklayıcı özetlemeyi kullanmaya başlamanızı sağlayacaktır:
- Aşağıdaki komutu bir metin düzenleyicisine kopyalayın. BASH örneği satır devamlılığı karakterini kullanır
\
. Konsolunuz veya terminaliniz farklı bir satır devamlılığı karakteri kullanıyorsa, bunun yerine bu karakteri kullanın.
curl -i -X POST $LANGUAGE_ENDPOINT/language/analyze-text/jobs?api-version=2023-04-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: $LANGUAGE_KEY" \
-d \
'
{
"displayName": "Text ext Summarization Task Example",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "en",
"text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Azure AI services, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there’s magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code will enable us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pre-trained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
}
]
},
"tasks": [
{
"kind": "ExtractiveSummarization",
"taskName": "Text Extractive Summarization Task 1",
"parameters": {
"sentenceCount": 6
}
}
]
}
'
Bir komut istemi penceresi açın (örneğin: BASH).
Metin düzenleyicisindeki komutu komut istemi penceresine yapıştırın ve ardından komutunu çalıştırın.
operation-location
Yanıt üst bilgisinden öğesini alın. Değer aşağıdaki URL'ye benzer olacaktır:
https://<your-language-resource-endpoint>/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2023-04-01
- İsteğin sonuçlarını almak için aşağıdaki cURL komutunu kullanın. değerini önceki
operation-location
yanıt üst bilgisinden aldığınız sayısal kimlik değeriyle değiştirdiğinizden<my-job-id>
emin olun:
curl -X GET $LANGUAGE_ENDPOINT/language/analyze-text/jobs/<my-job-id>?api-version=2023-04-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: $LANGUAGE_KEY"
Metin ayıklayıcı özetleme örneği JSON yanıtı
{
"jobId": "56e43bcf-70d8-44d2-a7a7-131f3dff069f",
"lastUpdateDateTime": "2022-09-28T19:33:43Z",
"createdDateTime": "2022-09-28T19:33:42Z",
"expirationDateTime": "2022-09-29T19:33:42Z",
"status": "succeeded",
"errors": [],
"displayName": "Text ext Summarization Task Example",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "ExtractiveSummarizationLROResults",
"taskName": "Text Extractive Summarization Task 1",
"lastUpdateDateTime": "2022-09-28T19:33:43.6712507Z",
"status": "succeeded",
"results": {
"documents": [
{
"id": "1",
"sentences": [
{
"text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding.",
"rankScore": 0.69,
"offset": 0,
"length": 160
},
{
"text": "In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z).",
"rankScore": 0.66,
"offset": 324,
"length": 192
},
{
"text": "At the intersection of all three, there’s magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better.",
"rankScore": 0.63,
"offset": 517,
"length": 203
},
{
"text": "We believe XYZ-code will enable us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages.",
"rankScore": 1.0,
"offset": 721,
"length": 134
},
{
"text": "The goal is to have pre-trained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today.",
"rankScore": 0.74,
"offset": 856,
"length": 159
},
{
"text": "I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks.",
"rankScore": 0.49,
"offset": 1481,
"length": 148
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "latest"
}
}
]
}
}
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.