Delen via


Snelstartgids: Het gebruik van samenvatting voor tekst, documenten en gesprekken

Belangrijk

Onze preview-regio, Zweden - centraal, toont onze nieuwste en voortdurend ontwikkelende LLM-verfijningstechnieken op basis van GPT-modellen. U bent van harte welkom om ze uit te proberen met een taalresource in de regio Zweden - centraal.

Samenvatting van gesprekken is alleen beschikbaar met:

  • REST-API
  • Python
  • C#

Gebruik deze quickstart om een toepassing voor tekstsamenvatting te maken met de clientbibliotheek voor .NET. In het volgende voorbeeld maakt u een C#-toepassing die documenten of op tekst gebaseerde klantenservicegesprekken kan samenvatten.

Tip

U kunt Azure AI Foundry gebruiken om een samenvatting te proberen zonder dat u code hoeft te schrijven.

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • De Visual Studio IDE
  • Zodra u uw Azure-abonnement hebt, maakt u een resource voor AI-services.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met de API. U plakt uw sleutel en eindpunt verderop in de code in de quickstart.
    • U kunt de gratis prijscategorie (Free F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.
  • Als u de functie Analyseren wilt gebruiken, hebt u een taalresource nodig met de prijscategorie Standard (S).

Instellen

Omgevingsvariabelen maken

Uw toepassing moet worden geverifieerd om API-aanvragen te verzenden. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen. In dit voorbeeld schrijft u uw inloggegevens naar de omgevingsvariabelen op de lokale computer waarop de toepassing draait.

Als u de omgevingsvariabele voor uw taalresourcesleutel wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de LANGUAGE_KEY omgevingsvariabele wilt instellen, vervangt u deze door your-key een van de sleutels voor uw resource.
  • Als u de LANGUAGE_ENDPOINT omgevingsvariabele wilt instellen, vervang your-endpoint door het eindpunt voor uw resource.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties bij uw toepassingen worden opgeslagen die in de cloud worden gebruikt.

Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u API-sleutels gebruikt, slaat u deze veilig op in Azure Key Vault, draait u de sleutels regelmatig en beperkt u de toegang tot Azure Key Vault met behulp van op rollen gebaseerd toegangsbeheer en netwerktoegangsbeperkingen. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige actieve console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Een nieuwe .NET Core-app maken

Maak een nieuwe console-app in .NET Core met behulp van de Visual Studio IDE. Hiermee maakt u een project 'Hallo wereld' met één C#-bronbestand: program.cs.

Installeer de clientbibliotheek door met de rechtermuisknop op de oplossing te klikken in Solution Explorer en NuGet-pakketten beheren te selecteren. Selecteer in Package Manager dat wordt geopend de optie Bladeren en zoek naar Azure.AI.TextAnalytics. Zorg ervoor dat pre-release opnemen is aangevinkt. Selecteer versie 5.3.0 en vervolgens Installeren. U kunt ook de Package Manager-console gebruiken.

Voorbeeld van code

Kopieer de volgende code naar uw program.cs-bestand . Voer de code vervolgens uit.

Belangrijk

Ga naar de Azure Portal. Als de taalresource die u in de sectie Vereisten hebt gemaakt, is geïmplementeerd, klikt u op de knop Naar de resource gaan onder Volgende stappen. U vindt uw sleutel en eindpunt door te navigeren naar de pagina Sleutels en eindpunt van uw resource, onder Resourcebeheer.

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.

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);
        }
    }
}

Uitvoer

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.

Referentiedocumentatie | pakket (Maven) | Bibliotheek broncode

Gebruik deze quickstart om een tekstsamenvattingstoepassing te maken met de clientbibliotheek voor Java. In het volgende voorbeeld maakt u een Java-toepassing die documenten kan samenvatten.

Tip

U kunt Azure AI Foundry gebruiken om een samenvatting te proberen zonder dat u code hoeft te schrijven.

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • Java Development Kit (JDK) met versie 8 of hoger
  • Zodra je je Azure-abonnement hebt, maak je een AI-servicesresource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met de API. U plakt uw sleutel en eindpunt verderop in de onderstaande code in de quickstart.
    • U kunt de gratis prijscategorie (Free F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.
  • Als u de functie Analyseren wilt gebruiken, hebt u een taalresource nodig met de prijscategorie Standard (S).

Instellen

De clientbibliotheek toevoegen

Maak een Maven-project in uw favoriete IDE of ontwikkelomgeving. Voeg vervolgens de volgende afhankelijkheid toe aan het pom.xml-bestand van uw project. U kunt de implementatiesyntaxis voor andere compilatieprogramma's online vinden.

<dependencies>
     <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-textanalytics</artifactId>
        <version>5.3.0</version>
    </dependency>
</dependencies>

Omgevingsvariabelen maken

Uw toepassing moet worden geverifieerd om API-aanvragen te verzenden. Gebruik voor de productie een veilige manier om uw inloggegevens op te slaan en te openen. In dit voorbeeld schrijft u uw aanmeldgegevens naar omgeving-variabelen op de lokale computer waarop de toepassing wordt uitgevoerd.

Als u de omgevingsvariabele voor uw taalresourcesleutel wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de LANGUAGE_KEY omgevingsvariabele wilt instellen, vervangt u deze door your-key een van de sleutels voor uw resource.
  • Vervang your-endpoint door het eindpunt voor uw resource om de LANGUAGE_ENDPOINT omgevingsvariabele in te stellen.

Belangrijk

We bevelen Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties worden opgeslagen bij uw toepassingen die in de cloud draaien.

Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u API-sleutels gebruikt, slaat u deze veilig op in Azure Key Vault, draait u de sleutels regelmatig en beperkt u de toegang tot Azure Key Vault met behulp van op rollen gebaseerd toegangsbeheer en netwerktoegangsbeperkingen. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige actieve console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Voorbeeld van code

Maak een Java-bestand met de naam Example.java. Open het bestand en kopieer de onderstaande code. Voer de code vervolgens uit.

Belangrijk

Ga naar de Azure Portal. Als de taalresource die u in de sectie Vereisten hebt gemaakt, is geïmplementeerd, klikt u op de knop Naar de resource gaan onder Volgende stappen. U vindt uw sleutel en eindpunt door te navigeren naar de pagina Sleutels en eindpunt van uw resource, onder Resourcebeheer.

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.

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());
                }
            }
        });
    }
}

Uitvoer

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.

Referentiedocumentatie | Aanvullende voorbeelden | Pakket (npm) | Bibliotheekbroncode

Gebruik deze quickstart om een toepassing voor tekstsamenvatting te maken met de clientbibliotheek voor Node.js. In het volgende voorbeeld maakt u een JavaScript-toepassing die documenten kan samenvatten.

Tip

U kunt Azure AI Foundry gebruiken om een samenvatting te proberen zonder dat u code hoeft te schrijven.

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • Node.js v16 LTS
  • Zodra u uw Azure-abonnement hebt, maakt u een AI-servicesresource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met de API. U plakt uw sleutel en eindpunt verderop in de onderstaande code in de quickstart.
    • U kunt de gratis prijscategorie (Free F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.
  • Als u de functie Analyseren wilt gebruiken, hebt u een taalresource nodig met de prijscategorie Standard (S).

Instellen

Omgevingsvariabelen maken

Uw toepassing moet worden geverifieerd om API-aanvragen te verzenden. Gebruik voor productie een veilige manier om uw inloggegevens op te slaan en toegang te krijgen tot deze. In dit voorbeeld schrijft u uw referenties naar omgevingsvariabelen op de lokale computer waarop de toepassing wordt uitgevoerd.

Als u de omgevingsvariabele voor uw taalresourcesleutel wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de LANGUAGE_KEY omgevingsvariabele wilt instellen, vervangt u deze door your-key een van de sleutels voor uw resource.
  • Om de LANGUAGE_ENDPOINT omgevingsvariabele in te stellen, vervangt u your-endpoint door het eindpunt voor uw resource.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat inloggegevens bij uw toepassingen, die in de cloud worden uitgevoerd, worden opgeslagen.

Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u API-sleutels gebruikt, slaat u deze veilig op in Azure Key Vault, draait u de sleutels regelmatig en beperkt u de toegang tot Azure Key Vault met behulp van op rollen gebaseerd toegangsbeheer en netwerktoegangsbeperkingen. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige actieve console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Een nieuwe Node.js-toepassing maken

Maak in een consolevenster (zoals cmd, PowerShell of Bash) een nieuwe map voor de app, en navigeer naar deze map.

mkdir myapp 

cd myapp

Voer de opdracht npm init uit om een knooppunttoepassing te maken met een package.json-bestand.

npm init

De clientbibliotheek installeren

Installeer de npm-pakketten:

npm install --save @azure/ai-language-text@1.1.0

Voorbeeld van code

Open het bestand en kopieer de onderstaande code. Voer de code vervolgens uit.

Belangrijk

Ga naar de Azure Portal. Als de taalresource die u in de sectie Vereisten hebt gemaakt, is geïmplementeerd, klikt u op de knop Naar de resource gaan onder Volgende stappen. U vindt uw sleutel en eindpunt door te navigeren naar de pagina Sleutels en eindpunt van uw resource, onder Resourcebeheer.

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.

/**
 * This sample program extracts a summary of two sentences at max from an article.
 * For more information, see the feature documentation: {@link https://learn.microsoft.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 };

Gebruik deze quickstart om een tekstsamenvattingstoepassing te maken met de clientbibliotheek voor Python. In het volgende voorbeeld maakt u een Python-toepassing die documenten of op tekst gebaseerde klantenservicegesprekken kan samenvatten.

Tip

U kunt Azure AI Foundry gebruiken om een samenvatting te proberen zonder dat u code hoeft te schrijven.

Vereisten

  • Azure-abonnement: Krijg een gratis abonnement
  • Python 3.x
  • Zodra u uw Azure-abonnement hebt, maakt u een AI-services-resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met de API. U plakt uw sleutel en eindpunt verderop in de onderstaande code in de quickstart.
    • U kunt de gratis prijscategorie (Free F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.
  • Als u de functie Analyseren wilt gebruiken, hebt u een taalresource nodig met de prijscategorie Standard (S).

Instellen

Omgevingsvariabelen maken

Uw toepassing moet worden geverifieerd om API-aanvragen te verzenden. Gebruik voor productie een veilige manier om uw inloggegevens op te slaan en te benaderen. In dit voorbeeld schrijft u uw inloggegevens in de omgevingsvariabelen van de lokale computer waarop de applicatie wordt uitgevoerd.

Als u de omgevingsvariabele voor uw taalresourcesleutel wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de LANGUAGE_KEY omgevingsvariabele wilt instellen, vervangt u deze door your-key een van de sleutels voor uw resource.
  • Als u de LANGUAGE_ENDPOINT omgevingsvariabele wilt instellen, vervang your-endpoint door het eindpunt voor uw resource.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties voor uw toepassingen die in de cloud worden uitgevoerd, worden opgeslagen.

Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u API-sleutels gebruikt, slaat u deze veilig op in Azure Key Vault, draait u de sleutels regelmatig en beperkt u de toegang tot Azure Key Vault met behulp van op rollen gebaseerd toegangsbeheer en netwerktoegangsbeperkingen. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige actieve console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

De clientbibliotheek installeren

Na de installatie van Python kunt u de clientbibliotheek installeren met:

pip install azure-ai-textanalytics==5.3.0

Voorbeeld van code

Maak een nieuw Python-bestand en kopieer de onderstaande code. Voer de code vervolgens uit.

Belangrijk

Ga naar de Azure Portal. Als de taalresource die u in de sectie Vereisten hebt gemaakt, is geïmplementeerd, klikt u op de knop Naar de resource gaan onder Volgende stappen. U vindt uw sleutel en eindpunt door te navigeren naar de pagina Sleutels en eindpunt van uw resource, onder Resourcebeheer.

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.

# 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)

Uitvoer

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.

Gebruik deze quickstart om tekstsamenvattingsaanvragen te verzenden met behulp van de REST API. In het volgende voorbeeld gebruikt u cURL om documenten of op tekst gebaseerde klantenservicegesprekken samen te vatten.

Tip

U kunt Azure AI Foundry gebruiken om een samenvatting te proberen zonder dat u code hoeft te schrijven.

Vereisten

  • De huidige versie van cURL.
  • Zodra je je Azure-abonnement hebt, <maak een AI-services-resource.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt om uw toepassing te verbinden met de API. Later in de quickstart plakt u uw sleutel en eindpunt in de onderstaande code.
    • U kunt de gratis prijscategorie (Free F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.

Instellen

Omgevingsvariabelen maken

Uw toepassing moet worden geverifieerd om API-aanvragen te verzenden. Gebruik in de productieomgeving een veilige manier om uw referenties op te slaan en te openen. In dit voorbeeld schrijft u uw inloggegevens naar omgevingsvariabelen op de lokale computer waarop de toepassing wordt uitgevoerd.

Als u de omgevingsvariabele voor uw taalresourcesleutel wilt instellen, opent u een consolevenster en volgt u de instructies voor uw besturingssysteem en ontwikkelomgeving.

  • Als u de LANGUAGE_KEY omgevingsvariabele wilt instellen, vervangt u deze door your-key een van de sleutels voor uw resource.
  • Om de LANGUAGE_ENDPOINT omgevingsvariabele in te stellen, vervang your-endpoint door het eindpunt voor uw resource.

Belangrijk

We raden Microsoft Entra ID-verificatie aan met beheerde identiteiten voor Azure-resources om te voorkomen dat referenties worden opgeslagen in uw toepassingen die in de cloud worden uitgevoerd.

Gebruik API-sleutels met voorzichtigheid. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar. Als u API-sleutels gebruikt, slaat u deze veilig op in Azure Key Vault, draait u de sleutels regelmatig en beperkt u de toegang tot Azure Key Vault met behulp van op rollen gebaseerd toegangsbeheer en netwerktoegangsbeperkingen. Zie API-sleutels met Azure Key Vault voor meer informatie over het veilig gebruiken van API-sleutels in uw apps.

Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.

setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Notitie

Als u alleen toegang nodig hebt tot de omgevingsvariabelen in de huidige actieve console, kunt u de omgevingsvariabele instellen in set plaats van setx.

Nadat u de omgevingsvariabelen hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabelen moeten lezen, inclusief het consolevenster. Als u bijvoorbeeld Visual Studio als editor gebruikt, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.

Voorbeeld van aanvraag

Notitie

  • In de volgende BASH-voorbeelden wordt het regelvervolgkarakter \ gebruikt. Als in de console of terminal een ander regelvoortzettingsteken wordt gebruikt, gebruikt u dat teken.
  • U kunt taalspecifieke voorbeelden vinden op GitHub (Engelstalig). Als u de API wilt aanroepen, hebt u de volgende informatie nodig:

Kies het type samenvatting dat u wilt uitvoeren en selecteer een van de onderstaande tabbladen om een voorbeeld van een API-aanroep te zien:

Functie Beschrijving
Samenvatting van tekst Gebruik extractieve tekstsamenvatting om een overzicht te maken van belangrijke of relevante informatie in een document.
Gesprekssamenvatting Gebruik samenvatting van abstractieve tekst om een samenvatting te maken van problemen en oplossingen in transcripties tussen klantenservicemedewerkers en klanten.
parameter Beschrijving
-X POST <endpoint> Hiermee geeft u het eindpunt voor toegang tot de API op.
-H Content-Type: application/json Het inhoudstype voor het verzenden van JSON-gegevens.
-H "Ocp-Apim-Subscription-Key:<key> Hiermee geeft u de sleutel voor toegang tot de API op.
-d <documents> De JSON met de documenten die u wilt verzenden.

De volgende cURL-opdrachten worden uitgevoerd vanuit een Bash-shell. Bewerk deze opdrachten met uw eigen JSON-waarden.

Samenvatting van tekst

Voorbeeld van extraherende samenvatting van tekst

In het volgende voorbeeld kunt u beginnen met tekstextractieve samenvatting:

  1. Kopieer de onderstaande opdracht naar een teksteditor. In het BASH-voorbeeld wordt het regelvervolgkarakter \ gebruikt. Als je console of terminal een ander regelvervolgteken gebruikt, gebruik dan dat teken.
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
      }
    }
  ]
}
'
  1. Open een opdrachtpromptvenster (bijvoorbeeld: BASH).

  2. Plak de opdracht uit de teksteditor in het opdrachtpromptvenster en voer de opdracht uit.

  3. Haal de operation-location antwoordheader op. De waarde zal er ongeveer uitzien als de volgende URL:

https://<your-language-resource-endpoint>/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2023-04-01
  1. Gebruik de volgende cURL-opdracht om de resultaten van de aanvraag op te halen. Zorg ervoor dat u <my-job-id> vervangt met de numerieke ID-waarde die u hebt ontvangen van de vorige operation-location antwoordkop:
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"

JSON-antwoord voor extractieve samenvatting van tekst

{
    "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"
                }
            }
        ]
    }
}

Vereisten

Selecteer Playgrounds in het linkerdeelvenster. Selecteer vervolgens de knop Taalspeeltuin uitproberen.

De ontwikkelingslevenscyclus

Samenvatting gebruiken in de Azure AI Foundry Playground

De taalspeeltuin bestaat uit vier secties:

  • Bovenste banner: U kunt hier een van de momenteel beschikbare taalservices selecteren.
  • Rechterdeelvenster: in dit deelvenster vindt u de configuratieopties voor de service, zoals de API en modelversie, samen met functies die specifiek zijn voor de service.
  • Middelste deelvenster: in dit deelvenster voert u de tekst in voor verwerking. Nadat de bewerking is uitgevoerd, worden hier enkele resultaten weergegeven.
  • Rechterdeelvenster: in dit deelvenster worden details van de uitvoeringsbewerking weergegeven.

Hier kunt u de samenvattingsfunctie selecteren die u wilt gebruiken door een van deze bovenste bannertegels te kiezen: Gesprek samenvatten, Samenvatten voor oproepcentrum of Tekst samenvatten.

Gebruik gesprek samenvatten

Gesprek samenvatten is ontworpen om gesprekken samen te vatten en lange vergaderingen in hoofdstukken met tijdstempels te segmenteren.

In Configuratie zijn er de volgende opties:

Optie Beschrijving
API-versie selecteren Selecteer welke versie van de API u wilt gebruiken.
Teksttaal selecteren Selecteer de taal van de invoertekst.
Samenvattingsaspecten Verschillende methoden voor samenvattingen die worden gegeven. Er moet ten minste één zijn geselecteerd.

Nadat de bewerking is voltooid, bevat de sectie Details de volgende velden voor de geselecteerde samenvattingsmethoden:

Veld Beschrijving
Zin
Samenvatting Een samenvatting van de verwerkte tekst. Het samenvattingsaspect moet worden ingeschakeld om dit weer te geven.
Titel van hoofdstuk Een lijst met titels voor semantisch gesegmenteerde hoofdstukken met bijbehorende tijdstempels. Het aspect Samenvatting van de hoofdstuktitel moet worden ingeschakeld om dit te kunnen weergeven.
Verhaal Een lijst met verhalende samenvattingen voor semantisch gesegmenteerde hoofdstukken met bijbehorende tijdstempels. Het Narratieve Samenvatting-aspect moet worden ingeschakeld om dit te laten verschijnen.

Een schermopname van een voorbeeld van een gesprek samenvatten in de Azure AI Foundry-portal.

Samenvatten gebruiken voor het callcenter

Samenvatten voor callcenter is ontworpen om gesprekken samen te vatten met betrekking tot klantproblemen en oplossingen.

In Configuratie zijn er de volgende opties:

Optie Beschrijving
API-versie selecteren Selecteer welke versie van de API u wilt gebruiken.
Teksttaal selecteren Selecteer de taal van de invoertekst.
Samenvattingsaspecten Verschillende methoden voor samenvattingen die worden opgeleverd. Er moet ten minste één zijn geselecteerd.

Nadat de bewerking is voltooid, bevat de sectie Details de volgende velden voor de geselecteerde samenvattingsmethoden:

Veld Beschrijving
Zin
Samenvatting Een samenvatting van de verwerkte tekst. Het Recap Samenvatting aspect moet worden ingeschakeld om dit te laten verschijnen.
Probleem Een samenvatting van het probleem van de klant in het gesprek van de klant en agent. Het Probleemsamenvattingsaspect moet worden ingeschakeld om dit weer te geven.
Resolutie Een samenvatting van de oplossingen die zijn geprobeerd in het gesprek van de klant en agent. Het aspect Oplossingssamenvatting moet ingeschakeld zijn om dit weer te geven.

Een schermopname van een voorbeeld van een overzicht voor het callcenter in de Azure AI Foundry-portal.

Samenvat tekst gebruiken

Samenvattende tekst is ontworpen om belangrijke informatie op schaal samen te vatten en te extraheren uit tekst.

In Configuratie zijn er de volgende opties:

Optie Beschrijving
Extractieve samenvatting De service produceert een samenvatting door opvallende zinnen te extraheren.
Aantal zinnen Het aantal zinnen dat door extractieve samenvatting wordt geëxtraheerd.
Abstractieve samenvatting de service genereert een samenvatting met nieuwe zinnen.
Samenvattingslengte De lengte van de samenvatting die is gegenereerd door abstractieve samenvatting.
Trefwoorden definiëren voor de overzichtsfocus (preview) Helpt de samenvatting van een bepaalde set trefwoorden te concentreren.

Nadat de bewerking is voltooid, bevat de sectie Details de volgende velden voor de geselecteerde samenvattingsmethoden:

Veld Beschrijving
Extractieve samenvatting Geëxtraheerde zinnen uit de invoertekst, gerangschikt op gedetecteerde relevantie en prioriteit geven aan woorden in de gedefinieerde trefwoorden voor het overzichtsfocusveld , indien van toepassing. Zinnen worden gesorteerd op rangschikkingsscore van gedetecteerde relevantie (standaard) of volgorde van uiterlijk in de invoertekst.
Abstractieve samenvatting Een samenvatting van de invoertekst van de lengte die is gekozen in het veld Samenvattingslengte en met prioriteit voor woorden in de gedefinieerde trefwoorden voor het overzichtsfocusveld , indien van toepassing.

Een schermopname van een voorbeeld van een overzicht van tekst in de Azure AI Foundry-portal.

Hulpbronnen opschonen

Als u een Azure AI-servicesabonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.

Volgende stappen