Клиентская библиотека анализа текста Azure для JavaScript версии 6.0.0-beta.1

Azure Cognitive Service для языка — это облачная служба, которая обеспечивает расширенную обработку текста на естественном языке и включает следующие основные функции:

Примечание: Этот пакет SDK предназначен для API Azure Cognitive Service для языка версии 2022-04-01-preview.

  • Распознавание языка
  • Анализ тональности
  • Извлечение ключевых фраз
  • Распознавание именованных сущностей
  • Распознавание личных сведений
  • Связывание сущностей
  • Анализ здравоохранения
  • Извлечение сводных данных
  • Пользовательское распознавание сущностей
  • Настраиваемая классификация документов
  • Поддержка нескольких действий в документе

Используйте клиентские библиотеки, чтобы:

  • Определите, на каком языке написано текст на входном языке.
  • Определите, что клиенты думают о вашем бренде или теме, анализируя необработанный текст на предмет подсказок о положительных или отрицательных тональности.
  • Автоматическое извлечение ключевых фраз в тексте поможет быстро определить основные мысли.
  • Идентифицируйте и классифицируйте сущности в тексте как люди, места, организации, дата и время, количества, проценты, валюты, сферы здравоохранения и многое другое.
  • Выполнение нескольких из указанных выше задач одновременно.

Основные ссылки:

Начало работы

Поддерживаемые в настоящее время среды

Чтобы получить дополнительные сведения, ознакомьтесь с нашей политикой поддержки.

Предварительные требования

Если вы используете Azure CLI, замените <your-resource-group-name> и <your-resource-name> собственными уникальными именами:

az cognitiveservices account create --kind TextAnalytics --resource-group <your-resource-group-name> --name <your-resource-name> --sku <your-sku-name> --location <your-location>

Установите пакет @azure/ai-text-analytics.

Установите клиентскую библиотеку анализа текста Azure для JavaScript с помощью npm:

npm install @azure/ai-text-analytics

Создание и проверка подлинности TextAnalysisClient

Чтобы создать клиентский объект для доступа к API языка, вам потребуется endpoint ресурс language и credential. Клиент анализа текста может использовать учетные данные Azure Active Directory или учетные данные ключа API для проверки подлинности.

Конечную точку для языкового ресурса можно найти на портале Azure или с помощью приведенного ниже фрагмента кода Azure CLI :

az cognitiveservices account show --name <your-resource-name> --resource-group <your-resource-group-name> --query "properties.endpoint"

Использование ключа API

Используйте портал Azure , чтобы перейти к языковому ресурсу и получить ключ API, или используйте приведенный ниже фрагмент кода Azure CLI :

Примечание: Иногда ключ API называется ключом подписки или ключом API подписки.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Получив ключ API и конечную точку AzureKeyCredential , можно использовать класс для проверки подлинности клиента следующим образом:

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

Использование учетных данных Azure Active Directory

Проверка подлинности с помощью ключа API клиента используется в большинстве примеров, но вы также можете пройти проверку подлинности в Azure Active Directory с помощью библиотеки удостоверений Azure. Чтобы использовать поставщика DefaultAzureCredential, показанного ниже, или других поставщиков учетных данных, предоставляемых пакетом SDK для Azure, установите @azure/identity пакет :

npm install @azure/identity

Вам также потребуется зарегистрировать новое приложение AAD и предоставить доступ к языку, назначив "Cognitive Services User" роль субъекту-службе (примечание. Другие роли, такие как "Owner" , не предоставляют необходимых разрешений, достаточно только "Cognitive Services User" для выполнения примеров и примера кода).

Задайте значения идентификатора клиента, идентификатора клиента и секрета клиента приложения AAD в качестве переменных среды: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

const { TextAnalysisClient } = require("@azure/ai-text-analytics");
const { DefaultAzureCredential } = require("@azure/identity");

const client = new TextAnalysisClient("<endpoint>", new DefaultAzureCredential());

Основные понятия

TextAnalysisClient

TextAnalysisClient — это основной интерфейс для разработчиков, использующих клиентную библиотеку анализа текста. Изучите методы этого клиентского объекта, чтобы понять различные функции языковой службы, к которым можно получить доступ.

Входные данные

Документ представляет собой единую единицу входных данных для анализа прогнозными моделями в языковой службе. Операции с TextAnalysisClient принимают коллекцию входных данных для анализа в виде пакета. Методы операций имеют перегрузки, позволяющие представить входные данные в виде строк или объектов с вложенными метаданными.

Например, каждый документ можно передать в виде строки в массиве, например.

const documents = [
  "I hated the movie. It was so slow!",
  "The movie made it into my top ten favorites.",
  "What a great movie!",
];

или, если вы хотите передать документ id для каждого элемента или languagecountryHint/, они могут быть предоставлены в виде списка TextDocumentInput или DetectLanguageInput в зависимости от операции;

const textDocumentInputs = [
  { id: "1", language: "en", text: "I hated the movie. It was so slow!" },
  { id: "2", language: "en", text: "The movie made it into my top ten favorites." },
  { id: "3", language: "en", text: "What a great movie!" },
];

Ознакомьтесь с ограничениями службы для входных данных, включая ограничения на длину документа, максимальный размер пакета и поддерживаемые кодировки текста.

Возвращаемое значение

Возвращаемое значение, соответствующее одному документу, является либо успешным результатом, либо объектом ошибки. Каждый TextAnalysisClient метод возвращает разнородный массив результатов и ошибок, которые соответствуют входным данным по индексу. Текстовый ввод и его результат будут иметь одинаковый индекс во входных и результирующих коллекциях.

Результатом, таким как SentimentAnalysisResult, является результатом операции Language, содержащей прогноз или прогнозы об одном вводе текста. Тип результата операции также может при необходимости включать сведения о входном документе и способах его обработки.

Объект error указывает, TextAnalysisErrorResultчто служба обнаружила ошибку при обработке документа и содержит сведения об ошибке.

Обработка ошибок документа

В коллекции, возвращаемой операцией, ошибки отличаются от успешных ответов по наличию error свойства , которое содержит внутренний TextAnalysisError объект при обнаружении ошибки. Для объектов успешных результатов это свойство всегдаundefined имеет значение .

Например, чтобы отфильтровать все ошибки, можно использовать следующую команду filter:

const results = await client.analyze("SentimentAnalysis", documents);
const onlySuccessful = results.filter((result) => result.error === undefined);

Примечание. Пользователи TypeScript могут воспользоваться преимуществами более эффективной проверки типов объектов результатов и ошибок, если compilerOptions.strictNullChecks в конфигурации tsconfig.json задано значение true . Пример:

const [result] = await client.analyze("SentimentAnalysis", ["Hello world!"]);

if (result.error !== undefined) {
  // In this if block, TypeScript will be sure that the type of `result` is
  // `TextAnalysisError` if compilerOptions.strictNullChecks is enabled in
  // the tsconfig.json

  console.log(result.error);
}

Примеры

Анализ тональности

Анализ тональности текста, чтобы определить, является ли он положительным, отрицательным, нейтральным или смешанным, включая анализ тональности по предложениям и оценки достоверности.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "I did not like the restaurant. The food was too spicy.",
  "The restaurant was decorated beautifully. The atmosphere was unlike any other restaurant I've been to.",
  "The food was yummy. :)",
];

async function main() {
  const results = await client.analyze("SentimentAnalysis", documents);

  for (const result of results) {
    if (result.error === undefined) {
      console.log("Overall sentiment:", result.sentiment);
      console.log("Scores:", result.confidenceScores);
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Чтобы получить более подробные сведения о мнениях, связанных с аспектами продукта или службы, также известного как анализ тональности на основе аспектов в обработке естественного языка (NLP), см. пример анализа тональности с интеллектуальным анализом мнений здесь.

Распознавание сущностей

Распознавать и классифицировать сущности в тексте как люди, места, организации, даты и время, количества, валюты и т. д.

Параметр language не обязателен. Если он не указан, будет использоваться модель английского языка по умолчанию.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Microsoft was founded by Bill Gates and Paul Allen.",
  "Redmond is a city in King County, Washington, United States, located 15 miles east of Seattle.",
  "Jeff bought three dozen eggs because there was a 50% discount.",
];

async function main() {
  const results = await client.analyze("EntityRecognition", documents, "en");

  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Recognized entities for input", result.id, "--");
      for (const entity of result.entities) {
        console.log(entity.text, ":", entity.category, "(Score:", entity.confidenceScore, ")");
      }
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Распознавание сущностей личных сведений

Существует отдельное действие для распознавания личных сведений (PII) в тексте, например номера социального страхования, сведения о банковском счете, номера кредитных карт и т. д. Его использование очень похоже на стандартное распознавание сущностей выше:

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));
const documents = [
  "The employee's SSN is 555-55-5555.",
  "The employee's phone number is (555) 555-5555.",
];
async function main() {
  const results = await client.analyze("PiiEntityRecognition", documents, "en");
  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Recognized PII entities for input", result.id, "--");
      for (const entity of result.entities) {
        console.log(entity.text, ":", entity.category, "(Score:", entity.confidenceScore, ")");
      }
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}
main();

Связывание сущностей

Сущность "Связанная" — это сущность, которая существует в база знаний (например, Википедия). Действие EntityLinking может дискредитировать сущности, определяя, какую запись в база знаний они, скорее всего, ссылаются (например, в фрагменте текста слово "Марс" относится к планете или к римскому богу войны). Связанные сущности содержат связанные URL-адреса база знаний, предоставляющей определение сущности.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Microsoft was founded by Bill Gates and Paul Allen.",
  "Easter Island, a Chilean territory, is a remote volcanic island in Polynesia.",
  "I use Azure Functions to develop my product.",
];

async function main() {
  const results = await client.analyze("EntityLinking", documents, "en");

  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Recognized linked entities for input", result.id, "--");
      for (const entity of result.entities) {
        console.log(entity.name, "(URL:", entity.url, ", Source:", entity.dataSource, ")");
        for (const match of entity.matches) {
          console.log(
            "  Occurrence:",
            '"' + match.text + '"',
            "(Score:",
            match.confidenceScore,
            ")"
          );
        }
      }
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Извлечение ключевых фраз

Извлечение ключевых фраз определяет основные тезисы в документе. Например, для данного входного текста "Еда была вкусной и были замечательные сотрудники", служба вернет "еда" и "замечательные сотрудники".

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Redmond is a city in King County, Washington, United States, located 15 miles east of Seattle.",
  "I need to take my cat to the veterinarian.",
  "I will travel to South America in the summer.",
];

async function main() {
  const results = await client.analyze("KeyPhraseExtraction", documents, "en");

  for (const result of results) {
    if (result.error === undefined) {
      console.log(" -- Extracted key phrases for input", result.id, "--");
      console.log(result.keyPhrases);
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Распознавание языка

Определите язык фрагмента текста.

Параметр countryHint является необязательным, но может помочь службе в предоставлении правильных выходных данных, если известна страна происхождения. Если он указан, ему следует задать двухбуквенный код страны ISO-3166 Alpha-2 (например, "us" для США или "jp" для Японии) или значение "none". Если параметр не указан, будет использоваться модель по умолчанию "us" (США). Если вы не знаете страну происхождения документа, следует использовать параметр "none" , а языковая служба применит модель, настроенную для неизвестной страны происхождения.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "This is written in English.",
  "Il documento scritto in italiano.",
  "Dies ist in deutscher Sprache verfasst.",
];

async function main() {
  const results = await client.analyze("LanguageDetection", documents, "none");

  for (const result of results) {
    if (result.error === undefined) {
      const { primaryLanguage } = result;
      console.log(
        "Input #",
        result.id,
        "identified as",
        primaryLanguage.name,
        "( ISO6391:",
        primaryLanguage.iso6391Name,
        ", Score:",
        primaryLanguage.confidenceScore,
        ")"
      );
    } else {
      console.error("Encountered an error:", result.error);
    }
  }
}

main();

Анализ здравоохранения

Анализ здравоохранения определяет сущности здравоохранения. Например, при входном тексте "Предписано 100 мг ибупрофена, принимается два раза в день", служба возвращает "100 мг" с категорией "Доза", "ибупрофен" как Имя лекарства и "два раза в день" в качестве частоты.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Prescribed 100mg ibuprofen, taken twice daily.",
  "Patient does not suffer from high blood pressure.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "Healthcare",
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const results = await poller.pollUntilDone();
  for await (const actionResult of results) {
    if (actionResult.kind !== "Healthcare") {
      throw new Error(`Expected a healthcare 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("\tRecognized Entities:");
      for (const entity of result.entities) {
        console.log(`\t- Entity "${entity.text}" of type ${entity.category}`);
        if (entity.dataSources.length > 0) {
          console.log("\t and it can be referenced in the following data sources:");
          for (const ds of entity.dataSources) {
            console.log(`\t\t- ${ds.name} with Entity ID: ${ds.entityId}`);
          }
        }
      }
    }
  }
}

main();

Сводные данные по извлечению

Извлечение сводных данных идентифицирует предложения, которые обобщают статью, к которой они принадлежат.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Prescribed 100mg ibuprofen, taken twice daily.",
  "Patient does not suffer from high blood pressure.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "ExtractiveSummarization",
      maxSentenceCount: 2,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  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();

Пользовательское распознавание сущностей

Распознать и классифицировать сущности в тексте как сущности с помощью пользовательских моделей обнаружения сущностей, созданных с помощью Azure Language Studio.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "We love this trail and make the trip every year. The views are breathtaking and well worth the hike! Yesterday was foggy though, so we missed the spectacular views. We tried again today and it was amazing. Everyone in my family liked the trail although it was too challenging for the less athletic among us.",
  "Last week we stayed at Hotel Foo to celebrate our anniversary. The staff knew about our anniversary so they helped me organize a little surprise for my partner. The room was clean and with the decoration I requested. It was perfect!",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "CustomEntityRecognition",
      deploymentName,
      projectName,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  for await (const actionResult of results) {
    if (actionResult.kind !== "CustomEntityRecognition") {
      throw new Error(`Expected a CustomEntityRecognition 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("\tRecognized Entities:");
      for (const entity of result.entities) {
        console.log(`\t- Entity "${entity.text}" of type ${entity.category}`);
      }
    }
  }
}

main();

Пользовательская классификация с одной меткой

Классификация документов с помощью пользовательских моделей с одной меткой, созданных с помощью Azure Language Studio.

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "The plot begins with a large group of characters where everyone thinks that the two main ones should be together but foolish things keep them apart. Misunderstandings, miscommunication, and confusion cause a series of humorous situations.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "CustomSingleLabelClassification",
      deploymentName,
      projectName,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const results = await poller.pollUntilDone();

  for await (const actionResult of results) {
    if (actionResult.kind !== "CustomSingleLabelClassification") {
      throw new Error(
        `Expected a CustomSingleLabelClassification 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(`\tClassification: ${result.classification.category}`);
    }
  }
}

main();

Настраиваемая классификация с несколькими метками

Классификация документов с помощью пользовательских моделей с несколькими метками, созданных с помощью Azure Language Studio.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "The plot begins with a large group of characters where everyone thinks that the two main ones should be together but foolish things keep them apart. Misunderstandings, miscommunication, and confusion cause a series of humorous situations.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "CustomMultiLabelClassification",
      deploymentName,
      projectName,
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const results = await poller.pollUntilDone();

  for await (const actionResult of results) {
    if (actionResult.kind !== "CustomMultiLabelClassification") {
      throw new Error(
        `Expected a CustomMultiLabelClassification 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(`\tClassification:`);
      for (const classification of result.classifications) {
        console.log(`\t\t-category: ${classification.category}`);
      }
    }
  }
}

main();

Пакетная обработка действий

Применяет несколько действий к каждому входном документу в одном запросе на обслуживание.

const {
  AnalyzeBatchAction,
  AzureKeyCredential,
  TextAnalysisClient,
} = require("@azure/ai-text-analytics");

const client = new TextAnalysisClient("<endpoint>", new AzureKeyCredential("<API key>"));

const documents = [
  "Microsoft was founded by Bill Gates and Paul Allen.",
  "The employee's SSN is 555-55-5555.",
  "Easter Island, a Chilean territory, is a remote volcanic island in Polynesia.",
  "I use Azure Functions to develop my product.",
];

async function main() {
  const actions: AnalyzeBatchAction[] = [
    {
      kind: "EntityRecognition",
      modelVersion: "latest",
    },
    {
      kind: "PiiEntityRecognition",
      modelVersion: "latest",
    },
    {
      kind: "KeyPhraseExtraction",
      modelVersion: "latest",
    },
  ];
  const poller = await client.beginAnalyzeBatch(actions, documents, "en");
  const actionResults = await poller.pollUntilDone();
  for await (const actionResult of actionResults) {
    if (actionResult.error) {
      const { code, message } = actionResult.error;
      throw new Error(`Unexpected error (${code}): ${message}`);
    }
    switch (actionResult.kind) {
      case "KeyPhraseExtraction": {
        for (const doc of actionResult.results) {
          console.log(`- Document ${doc.id}`);
          if (!doc.error) {
            console.log("\tKey phrases:");
            for (const phrase of doc.keyPhrases) {
              console.log(`\t- ${phrase}`);
            }
          } else {
            console.error("\tError:", doc.error);
          }
        }
        break;
      }
      case "EntityRecognition": {
        for (const doc of actionResult.results) {
          console.log(`- Document ${doc.id}`);
          if (!doc.error) {
            console.log("\tEntities:");
            for (const entity of doc.entities) {
              console.log(`\t- Entity ${entity.text} of type ${entity.category}`);
            }
          } else {
            console.error("\tError:", doc.error);
          }
        }
        break;
      }
      case "PiiEntityRecognition": {
        for (const doc of actionResult.results) {
          console.log(`- Document ${doc.id}`);
          if (!doc.error) {
            console.log("\tPii Entities:");
            for (const entity of doc.entities) {
              console.log(`\t- Entity ${entity.text} of type ${entity.category}`);
            }
          } else {
            console.error("\tError:", doc.error);
          }
        }
        break;
      }
      default: {
        throw new Error(`Unexpected action results: ${actionResult.kind}`);
      }
    }
  }
}

main();

Устранение неполадок

Ведение журнала

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. Кроме того, ведение журнала можно включить во время выполнения, вызвав setLogLevel в @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Более подробные инструкции по включению журналов см. в документации по пакету @azure и средства ведения журнала.

Дальнейшие действия

Подробные примеры использования этой библиотеки см. в каталоге примеров .

Участие

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.

Просмотры