Inicio rápido: uso del resumen de documentos y el resumen de conversaciones

Importante

Nuestra región de versión preliminar, Centro de Suecia, muestra nuestras técnicas de ajuste de LLM más recientes y en constante evolución basadas en modelos de GPT. Te invitamos a probarlas con un recurso lingüístico de la región Centro de Suecia.

El resumen de conversación solo está disponible mediante:

  • REST API
  • Python
  • C#

Use este inicio rápido para crear una aplicación de resumen de texto con la biblioteca cliente de .NET. En el ejemplo siguiente, creará una aplicación de C# que puede resumir documentos o conversaciones de atención al cliente basadas en texto.

Sugerencia

Puede usar Language Studio para probar el resumen de documentos sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • IDE de Visual Studio
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido, va a pegar la clave y el punto de conexión en el código.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Creación de variables de entorno

La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.

Sugerencia

No incluya la clave directamente en el código ni la exponga nunca públicamente. Consulte el artículo de Seguridad de los servicios de Azure AI para ver más opciones de autenticación, como Azure Key Vault.

Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.

  1. Para establecer la variable de entorno LANGUAGE_KEY, reemplace your-key por una de las claves del recurso.
  2. Para establecer la variable de entorno LANGUAGE_ENDPOINT, reemplace your-endpoint por el punto de conexión del recurso.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set en vez de con setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Creación de una aplicación de .NET Core

Utilice el IDE de Visual Studio para crear una aplicación de consola de .NET Core. Así se crea un proyecto "Hola mundo" con un solo archivo de origen de C#: program.cs.

Instale la biblioteca cliente, para lo que debe hacer clic con el botón derecho en la solución en el Explorador de soluciones y seleccionar Administrar paquetes NuGet. En el administrador de paquetes que se abre, seleccione Examinar y busque Azure.AI.TextAnalytics. Asegúrese de que la casilla Incluir versión preliminar esté activada. Seleccione la versión 5.3.0 e Instalar. También puede usar la Consola del Administrador de paquetes.

Ejemplo de código

Copie el código siguiente en el archivo program.cs. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo Seguridad de servicios de Azure AI para más información.

using Azure;
using System;
using Azure.AI.TextAnalytics;
using System.Threading.Tasks;
using System.Collections.Generic;

namespace Example
{
    class Program
    {
        // This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
        static string languageKey = Environment.GetEnvironmentVariable("LANGUAGE_KEY");
        static string languageEndpoint = Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT");

        private static readonly AzureKeyCredential credentials = new AzureKeyCredential(languageKey);
        private static readonly Uri endpoint = new Uri(languageEndpoint);

        // Example method for summarizing text
        static async Task TextSummarizationExample(TextAnalyticsClient client)
        {
            string document = @"The extractive summarization feature uses natural language processing techniques to locate key sentences in an unstructured text document. 
                These sentences collectively convey the main idea of the document. This feature is provided as an API for developers. 
                They can use it to build intelligent solutions based on the relevant information extracted to support various use cases. 
                Extractive summarization supports several languages. It is based on pretrained multilingual transformer models, part of our quest for holistic representations. 
                It draws its strength from transfer learning across monolingual and harness the shared nature of languages to produce models of improved quality and efficiency." ;
        
            // Prepare analyze operation input. You can add multiple documents to this list and perform the same
            // operation to all of them.
            var batchInput = new List<string>
            {
                document
            };
        
            TextAnalyticsActions actions = new TextAnalyticsActions()
            {
                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);
        }
    }
}

Resultados

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.

Documentación de referencia | Más ejemplos | Paquete (Maven) | Código fuente de biblioteca

Use este inicio rápido para crear una aplicación de resumen de texto con la biblioteca cliente de Java. En el ejemplo siguiente, creará una aplicación de Java que puede resumir documentos.

Sugerencia

Puede usar Language Studio para probar el resumen de documentos sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • Kit de desarrollo de Java (JDK), versión 8 o posterior
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. Más adelante en este inicio rápido, debe pegar la clave y el punto de conexión en el código que se incluye a continuación.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Incorporación de la biblioteca cliente

Cree un proyecto de Maven en el entorno de desarrollo o IDE que prefiera. Luego, agregue la siguiente dependencia al archivo pom.xml del proyecto. La sintaxis de implementación de otras herramientas de compilación se puede encontrar en línea.

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

Creación de variables de entorno

La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.

Sugerencia

No incluya la clave directamente en el código ni la exponga nunca públicamente. Consulte el artículo de Seguridad de los servicios de Azure AI para ver más opciones de autenticación, como Azure Key Vault.

Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.

  1. Para establecer la variable de entorno LANGUAGE_KEY, reemplace your-key por una de las claves del recurso.
  2. Para establecer la variable de entorno LANGUAGE_ENDPOINT, reemplace your-endpoint por el punto de conexión del recurso.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set en vez de con setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Ejemplo de código

Cree un archivo de Java llamado Example.java. Abra el archivo y copie el código siguiente. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo sobre seguridad de los servicios de Azure AI para más información.

import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;
import java.util.ArrayList;
import java.util.List;
import com.azure.core.util.polling.SyncPoller;
import com.azure.ai.textanalytics.util.*;

public class Example {

    // This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
    private static String languageKey = System.getenv("LANGUAGE_KEY");
    private static String languageEndpoint = System.getenv("LANGUAGE_ENDPOINT");

    public static void main(String[] args) {
        TextAnalyticsClient client = authenticateClient(languageKey, languageEndpoint);
        summarizationExample(client);
    }
    // Method to authenticate the client object with your key and endpoint
    static TextAnalyticsClient authenticateClient(String key, String endpoint) {
        return new TextAnalyticsClientBuilder()
                .credential(new AzureKeyCredential(key))
                .endpoint(endpoint)
                .buildClient();
    }
    // Example method for summarizing text
    static void summarizationExample(TextAnalyticsClient client) {
        List<String> documents = new ArrayList<>();
        documents.add(
                "The extractive summarization feature uses natural language processing techniques "
                + "to locate key sentences in an unstructured text document. "
                + "These sentences collectively convey the main idea of the document. This feature is provided as an API for developers. "
                + "They can use it to build intelligent solutions based on the relevant information extracted to support various use cases. "
                + "Extractive summarization supports several languages. "
                + "It is based on pretrained multilingual transformer models, part of our quest for holistic representations. "
                + "It draws its strength from transfer learning across monolingual and harness the shared nature of languages "
                + "to produce models of improved quality and efficiency.");
    
        SyncPoller<AnalyzeActionsOperationDetail, AnalyzeActionsResultPagedIterable> syncPoller =
                client.beginAnalyzeActions(documents,
                        new TextAnalyticsActions().setDisplayName("{tasks_display_name}")
                                .setExtractSummaryActions(
                                        new ExtractSummaryAction()),
                        "en",
                        new AnalyzeActionsOptions());
    
        syncPoller.waitForCompletion();
    
        syncPoller.getFinalResult().forEach(actionsResult -> {
            System.out.println("Extractive Summarization action results:");
            for (ExtractSummaryActionResult actionResult : actionsResult.getExtractSummaryResults()) {
                if (!actionResult.isError()) {
                    for (ExtractSummaryResult documentResult : actionResult.getDocumentsResults()) {
                        if (!documentResult.isError()) {
                            System.out.println("\tExtracted summary sentences:");
                            for (SummarySentence summarySentence : documentResult.getSentences()) {
                                System.out.printf(
                                        "\t\t Sentence text: %s, length: %d, offset: %d, rank score: %f.%n",
                                        summarySentence.getText(), summarySentence.getLength(),
                                        summarySentence.getOffset(), summarySentence.getRankScore());
                            }
                        } else {
                            System.out.printf("\tCannot extract summary sentences. Error: %s%n",
                                    documentResult.getError().getMessage());
                        }
                    }
                } else {
                    System.out.printf("\tCannot execute Extractive Summarization action. Error: %s%n",
                            actionResult.getError().getMessage());
                }
            }
        });
    }
}

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.

Documentación de referencia | Ejemplos adicionales | Paquete (npm) | Código fuente de biblioteca

Use este inicio rápido para crear una aplicación de resumen de texto con la biblioteca cliente de Node.js. En el ejemplo siguiente, creará una aplicación de JavaScript que puede resumir documentos.

Sugerencia

Puede usar Language Studio para probar el resumen de documentos sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • Node.js v16 LTS
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido pegará la clave y el punto de conexión en el código siguiente.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Creación de variables de entorno

La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.

Sugerencia

No incluya la clave directamente en el código ni la exponga nunca públicamente. Consulte el artículo de Seguridad de los servicios de Azure AI para ver más opciones de autenticación, como Azure Key Vault.

Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.

  1. Para establecer la variable de entorno LANGUAGE_KEY, reemplace your-key por una de las claves del recurso.
  2. Para establecer la variable de entorno LANGUAGE_ENDPOINT, reemplace your-endpoint por el punto de conexión del recurso.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set en vez de con setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Creación de una aplicación Node.js

En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él.

mkdir myapp 

cd myapp

Ejecute el comando npm init para crear una aplicación de nodo con un archivo package.json.

npm init

Instalación de la biblioteca cliente

Instale los paquetes de npm:

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

Ejemplo de código

Abra el archivo y copie el código siguiente. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo Seguridad de servicios de Azure AI para más información.

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

Use este inicio rápido para crear una aplicación de resumen de texto con la biblioteca cliente de Python. En el ejemplo siguiente, creará una aplicación de Python que puede resumir documentos o conversaciones de atención al cliente basadas en texto.

Sugerencia

Puede usar Language Studio para probar el resumen de documentos sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • Python 3.x
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. Más adelante en este inicio rápido, debe pegar la clave y el punto de conexión en el código que se incluye a continuación.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Creación de variables de entorno

La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.

Sugerencia

No incluya la clave directamente en el código ni la exponga nunca públicamente. Consulte el artículo de Seguridad de los servicios de Azure AI para ver más opciones de autenticación, como Azure Key Vault.

Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.

  1. Para establecer la variable de entorno LANGUAGE_KEY, reemplace your-key por una de las claves del recurso.
  2. Para establecer la variable de entorno LANGUAGE_ENDPOINT, reemplace your-endpoint por el punto de conexión del recurso.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set en vez de con setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Instalación de la biblioteca cliente

Después de instalar Python, puede instalar la biblioteca cliente con:

pip install azure-ai-textanalytics==5.3.0

Ejemplo de código

Cree un nuevo archivo de Python y copie el código siguiente. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo Seguridad de servicios de Azure AI para más información.

# This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
key = os.environ.get('LANGUAGE_KEY')
endpoint = os.environ.get('LANGUAGE_ENDPOINT')

from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential

# Authenticate the client using your key and endpoint 
def authenticate_client():
    ta_credential = AzureKeyCredential(key)
    text_analytics_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=ta_credential)
    return text_analytics_client

client = authenticate_client()

# Example method for summarizing text
def sample_extractive_summarization(client):
    from azure.core.credentials import AzureKeyCredential
    from azure.ai.textanalytics import (
        TextAnalyticsClient,
        ExtractiveSummaryAction
    ) 

    document = [
        "The extractive summarization feature uses natural language processing techniques to locate key sentences in an unstructured text document. "
        "These sentences collectively convey the main idea of the document. This feature is provided as an API for developers. " 
        "They can use it to build intelligent solutions based on the relevant information extracted to support various use cases. "
        "Extractive summarization supports several languages. It is based on pretrained multilingual transformer models, part of our quest for holistic representations. "
        "It draws its strength from transfer learning across monolingual and harness the shared nature of languages to produce models of improved quality and efficiency. "
    ]

    poller = client.begin_analyze_actions(
        document,
        actions=[
            ExtractiveSummaryAction(max_sentence_count=4)
        ],
    )

    document_results = poller.result()
    for result in document_results:
        extract_summary_result = result[0]  # first document, first result
        if extract_summary_result.is_error:
            print("...Is an error with code '{}' and message '{}'".format(
                extract_summary_result.code, extract_summary_result.message
            ))
        else:
            print("Summary extracted: \n{}".format(
                " ".join([sentence.text for sentence in extract_summary_result.sentences]))
            )

sample_extractive_summarization(client)

Resultados

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.

Use este inicio rápido para enviar solicitudes de resumen de texto mediante la API REST. En el ejemplo siguiente, usará cURL para resumir documentos o conversaciones de atención al cliente basadas en texto.

Sugerencia

Puede usar Language Studio para probar el resumen de documentos sin necesidad de escribir código.

Prerrequisitos

  • La versión actual de cURL.
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido pegará la clave y el punto de conexión en el código siguiente.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.

Instalación

Creación de variables de entorno

La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.

Sugerencia

No incluya la clave directamente en el código ni la exponga nunca públicamente. Consulte el artículo de Seguridad de los servicios de Azure AI para ver más opciones de autenticación, como Azure Key Vault.

Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.

  1. Para establecer la variable de entorno LANGUAGE_KEY, reemplace your-key por una de las claves del recurso.
  2. Para establecer la variable de entorno LANGUAGE_ENDPOINT, reemplace your-endpoint por el punto de conexión del recurso.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota:

Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set en vez de con setx.

Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Solicitud de ejemplo

Nota:

  • En los siguientes ejemplos de BASH se usa el carácter de continuación de línea \. Si la consola o el terminal usan un carácter de continuación de línea diferente, use ese carácter.
  • Puede encontrar ejemplos específicos del lenguaje en GitHub. Para llamar a la API, necesita la siguiente información:

Elija el tipo de resumen que quiere realizar y seleccione una de las pestañas siguientes para ver una llamada API de ejemplo:

Característica Descripción
Resumen de documentos Utilice el resumen de texto mediante extracción para generar un resumen de información importante o relevante dentro de un documento.
Resumen de conversaciones Use el resumen de texto mediante abstracción para generar un resumen de problemas y soluciones en transcripciones entre agentes de atención al cliente y clientes.
parámetro Descripción
-X POST <endpoint> Especifica el punto de conexión para acceder a la API.
-H Content-Type: application/json Tipo de contenido para enviar datos JSON.
-H "Ocp-Apim-Subscription-Key:<key> Especifica la clave para acceder a la API.
-d <documents> JSON que contiene los documentos que desea enviar.

Los siguientes comandos de cURL se ejecutan desde un shell de BASH. Edite estos comandos con sus propios valores JSON.

Resumen de documentos

Ejemplo de resumen extractivo de documentos

En el ejemplo siguiente, empezará a trabajar con el resumen mediante extracción del documento:

  1. Copie el siguiente comando en un editor de texto. En el ejemplo de BASH se usa el carácter de continuación de línea \. Si la consola o el terminal utiliza un carácter de continuación de línea diferente, utilice ese carácter en su lugar.
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. Abra una ventana del símbolo del sistema (por ejemplo: BASH).

  2. Pegue el comando del editor de texto en la ventana del símbolo del sistema y ejecute el comando.

  3. Obtenga el valor de operation-location del encabezado de respuesta. El valor será similar a la dirección URL siguiente:

https://<your-language-resource-endpoint>/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2023-04-01
  1. Para obtener los resultados de la solicitud, use el siguiente comando cURL. Asegúrese de reemplazar <my-job-id> por el valor de identificador numérico que recibió del encabezado de respuesta operation-location anterior:
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"

Respuesta JSON de ejemplo de resumen extractivo de documento

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

Limpieza de recursos

Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes