Share via


Snabbstart: använda dokumentsammanfattning och konversationssammanfattning

Viktigt!

Vår förhandsgranskningsregion, Sweden Central, visar upp våra senaste och ständigt växande LLM-finjusteringstekniker baserade på GPT-modeller. Du är välkommen att prova dem med en språkresurs i Sverige, centrala.

Konversationssammanfattning är endast tillgängligt med hjälp av:

  • REST-API
  • Python
  • C#

Använd den här snabbstarten om du vill skapa ett textsammanfattningsprogram med klientbiblioteket för .NET. I följande exempel skapar du ett C#-program som kan sammanfatta dokument eller textbaserade kundtjänstkonversationer.

Dricks

Du kan använda Language Studio för att prova dokumentsammanfattning utan att behöva skriva kod.

Förutsättningar

  • Azure-prenumeration – Skapa en kostnadsfritt
  • Visual Studio IDE
  • När du har din Azure-prenumeration skapar du en språkresurs i Azure-portalen för att hämta din nyckel och slutpunkt. När den har distribuerats väljer du Gå till resurs.
    • Du behöver nyckeln och slutpunkten från den resurs som du skapar för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden senare i snabbstarten.
    • Du kan använda den kostnadsfria prisnivån (Free F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.
  • Om du vill använda funktionen Analysera behöver du en språkresurs med standardprisnivån (S).

Konfigurera

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Skapa en ny .NET Core-app

Skapa en ny .NET Core-konsolapp med Visual Studio IDE. Detta skapar ett "Hello World"-projekt med en enda C#-källfil: program.cs.

Installera klientbiblioteket genom att högerklicka på lösningen i Solution Explorer och välja Hantera NuGet-paket. I pakethanteraren som öppnas väljer du Bläddra och söker efter Azure.AI.TextAnalytics. Kontrollera att Ta med förhandsversion är markerat. Välj version 5.3.0 och sedan Installera. Du kan också använda Package Manager-konsolen.

Kodexempel

Kopiera följande kod till din program.cs-fil . Kör sedan koden.

Viktigt!

Gå till Azure-portalen. Om språkresursen som du skapade i avsnittet Förutsättningar har distribuerats klickar du på knappen Gå till resurs under Nästa steg. Du hittar din nyckel och slutpunkt genom att gå till resursens sida Nycklar och slutpunkt under Resurshantering.

Viktigt!

Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information finns i säkerhetsartikeln för Azure AI-tjänster.

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()
            {
                ExtractSummaryActions = new List<ExtractSummaryAction>() { new ExtractSummaryAction() }
            };
        
            // 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<ExtractSummaryActionResult> summaryResults = documentsInPage.ExtractSummaryResults;
        
                foreach (ExtractSummaryActionResult 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 (ExtractSummaryResult 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 (SummarySentence 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);
        }
    }
}

Output

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.

Referensdokumentation Fler exempelpaket | (Maven) | Källkod för bibliotek |

Använd den här snabbstarten för att skapa ett textsammanfattningsprogram med klientbiblioteket för Java. I följande exempel skapar du ett Java-program som kan sammanfatta dokument.

Dricks

Du kan använda Language Studio för att prova dokumentsammanfattning utan att behöva skriva kod.

Förutsättningar

  • Azure-prenumeration – Skapa en kostnadsfritt
  • Java Development Kit (JDK) med version 8 eller senare
  • När du har din Azure-prenumeration skapar du en språkresurs i Azure-portalen för att hämta din nyckel och slutpunkt. När den har distribuerats väljer du Gå till resurs.
    • Du behöver nyckeln och slutpunkten från den resurs som du skapar för att ansluta ditt program till API:et. Du klistrar in din nyckel och slutpunkt i koden nedan senare i snabbstarten.
    • Du kan använda den kostnadsfria prisnivån (Free F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.
  • Om du vill använda funktionen Analysera behöver du en språkresurs med standardprisnivån (S).

Konfigurera

Lägga till klientbiblioteket

Skapa ett Maven-projekt i önskad IDE eller utvecklingsmiljö. Lägg sedan till följande beroende i projektets pom.xml-fil. Implementeringssyntaxen för andra byggverktyg finns online.

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

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Kodexempel

Skapa en Java-fil som heter Example.java. Öppna filen och kopiera koden nedan. Kör sedan koden.

Viktigt!

Gå till Azure-portalen. Om språkresursen som du skapade i avsnittet Förutsättningar har distribuerats klickar du på knappen Gå till resurs under Nästa steg. Du hittar din nyckel och slutpunkt genom att gå till resursens sida Nycklar och slutpunkt under Resurshantering.

Viktigt!

Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information finns i säkerhetsartikeln för Azure AI-tjänster.

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

Output

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.

Referensdokumentation Ytterligare exempelpaket | (npm) | Källkod för bibliotek |

Använd den här snabbstarten för att skapa ett textsammanfattningsprogram med klientbiblioteket för Node.js. I följande exempel skapar du ett JavaScript-program som kan sammanfatta dokument.

Dricks

Du kan använda Language Studio för att prova dokumentsammanfattning utan att behöva skriva kod.

Förutsättningar

  • Azure-prenumeration – Skapa en kostnadsfritt
  • Node.js v16 LTS
  • När du har din Azure-prenumeration skapar du en språkresurs i Azure-portalen för att hämta din nyckel och slutpunkt. När den har distribuerats väljer du Gå till resurs.
    • Du behöver nyckeln och slutpunkten från den resurs som du skapar för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden nedan senare i snabbstarten.
    • Du kan använda den kostnadsfria prisnivån (Free F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.
  • Om du vill använda funktionen Analysera behöver du en språkresurs med standardprisnivån (S).

Konfigurera

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Skapa ett nytt Node.js-program

Skapa en ny katalog för din app i ett konsolfönster (till exempel cmd, PowerShell eller bash) och navigera till den.

mkdir myapp 

cd myapp

Kör kommandot npm init för att skapa ett nodprogram med en package.json-fil.

npm init

Installera klientbiblioteket

Installera npm-paketen:

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

Kodexempel

Öppna filen och kopiera koden nedan. Kör sedan koden.

Viktigt!

Gå till Azure-portalen. Om språkresursen som du skapade i avsnittet Förutsättningar har distribuerats klickar du på knappen Gå till resurs under Nästa steg. Du hittar din nyckel och slutpunkt genom att gå till resursens sida Nycklar och slutpunkt under Resurshantering.

Viktigt!

Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information finns i säkerhetsartikeln för Azure AI-tjänster.

/**
 * 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 };

Använd den här snabbstarten för att skapa ett textsammanfattningsprogram med klientbiblioteket för Python. I följande exempel skapar du ett Python-program som kan sammanfatta dokument eller textbaserade kundtjänstkonversationer.

Dricks

Du kan använda Language Studio för att prova dokumentsammanfattning utan att behöva skriva kod.

Förutsättningar

  • Azure-prenumeration – Skapa en kostnadsfritt
  • Python 3.x
  • När du har din Azure-prenumeration skapar du en språkresurs i Azure-portalen för att hämta din nyckel och slutpunkt. När den har distribuerats väljer du Gå till resurs.
    • Du behöver nyckeln och slutpunkten från den resurs som du skapar för att ansluta ditt program till API:et. Du klistrar in din nyckel och slutpunkt i koden nedan senare i snabbstarten.
    • Du kan använda den kostnadsfria prisnivån (Free F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.
  • Om du vill använda funktionen Analysera behöver du en språkresurs med standardprisnivån (S).

Konfigurera

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Installera klientbiblioteket

När du har installerat Python kan du installera klientbiblioteket med:

pip install azure-ai-textanalytics==5.3.0

Kodexempel

Skapa en ny Python-fil och kopiera koden nedan. Kör sedan koden.

Viktigt!

Gå till Azure-portalen. Om språkresursen som du skapade i avsnittet Förutsättningar har distribuerats klickar du på knappen Gå till resurs under Nästa steg. Du hittar din nyckel och slutpunkt genom att gå till resursens sida Nycklar och slutpunkt under Resurshantering.

Viktigt!

Kom ihåg att ta bort nyckeln från koden när du är klar och publicera den aldrig offentligt. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information finns i säkerhetsartikeln för Azure AI-tjänster.

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

Output

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.

Använd den här snabbstarten för att skicka textsammanfattningsbegäranden med hjälp av REST-API:et. I följande exempel använder du cURL för att sammanfatta dokument eller textbaserade kundtjänstkonversationer.

Dricks

Du kan använda Language Studio för att prova dokumentsammanfattning utan att behöva skriva kod.

Förutsättningar

  • Den aktuella versionen av cURL.
  • När du har din Azure-prenumeration skapar du en språkresurs i Azure-portalen för att hämta din nyckel och slutpunkt. När den har distribuerats väljer du Gå till resurs.
    • Du behöver nyckeln och slutpunkten från den resurs som du skapar för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden nedan senare i snabbstarten.
    • Du kan använda den kostnadsfria prisnivån (Free F0) för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

Konfigurera

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Exempelbegäranden

Kommentar

  • I följande BASH-exempel används radfortsättningstecknet \ . Om konsolen eller terminalen använder ett annat radfortsättningstecken använder du det tecknet.
  • Du hittar språkspecifika exempel på GitHub. För att anropa API:et behöver du följande information:

Välj den typ av sammanfattning som du vill utföra och välj en av flikarna nedan för att se ett exempel på ETT API-anrop:

Funktion beskrivning
Dokumentsammanfattning Använd sammanfattning av extraherande text för att skapa en sammanfattning av viktig eller relevant information i ett dokument.
Konversationssammanfattning Använd abstrakt textsammanfattning för att skapa en sammanfattning av problem och lösningar i avskrifter mellan kundtjänstagenter och kunder.
parameter Description
-X POST <endpoint> Anger slutpunkten för åtkomst till API:et.
-H Content-Type: application/json Innehållstypen för att skicka JSON-data.
-H "Ocp-Apim-Subscription-Key:<key> Anger nyckeln för åtkomst till API:et.
-d <documents> JSON som innehåller de dokument som du vill skicka.

Följande cURL-kommandon körs från ett BASH-gränssnitt. Redigera dessa kommandon med dina egna JSON-värden.

Dokumentsammanfattning

Exempel på sammanfattning av dokumentextrahering

I följande exempel kommer du igång med sammanfattning av dokumentextrahering:

  1. Kopiera kommandot nedan till en textredigerare. Bash-exemplet använder radfortsättningstecknet \ . Om konsolen eller terminalen använder ett annat radfortsättningstecken använder du det tecknet i stället.
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": "Document 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": "Document Extractive Summarization Task 1",
      "parameters": {
        "sentenceCount": 6
      }
    }
  ]
}
'
  1. Öppna ett kommandotolksfönster (till exempel: BASH).

  2. Klistra in kommandot från textredigeraren i kommandotolken och kör sedan kommandot .

  3. operation-location Hämta från svarshuvudet. Värdet ser ut ungefär så här:

https://<your-language-resource-endpoint>/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2023-04-01
  1. Använd följande cURL-kommando för att hämta resultatet av begäran. Ersätt <my-job-id> med det numeriska ID-värdet som du fick från föregående operation-location svarsrubrik:
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"

Exempel på JSON-svar för dokumentextrahering

{
    "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": "Document ext Summarization Task Example",
    "tasks": {
        "completed": 1,
        "failed": 0,
        "inProgress": 0,
        "total": 1,
        "items": [
            {
                "kind": "ExtractiveSummarizationLROResults",
                "taskName": "Document 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"
                }
            }
        ]
    }
}

Rensa resurser

Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Nästa steg