Поделиться через


Библиотека Azure OpenAI для TypeScript — 2.0.0

Azure OpenAI Service предоставляет доступ к расширенным моделям ИИ для общения, создания контента и вариантов использования данных. Библиотека Azure OpenAI для TypeScript является компаньоном официальной клиентской библиотеки OpenAI для JavaScript . Библиотека Azure OpenAI предоставляет дополнительную строго типизированную поддержку моделей запросов и ответов, относящихся к сценариям Azure OpenAI.

переход с @azure/openai версии 1

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

Ключевые ссылки:

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

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

Необходимые условия

Если вы хотите использовать ресурс Azure OpenAI, у вас должна быть подписка Azure и доступа Azure OpenAI. Дополнительные сведения см. в кратком руководстве по . Начало создания текста с помощьюслужбы OpenAI Azure.

Установка openai и @azure/openai

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

npm install openai @azure/openai

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

Существует несколько способов проверки подлинности в службе Azure OpenAI, и рекомендуется использовать идентификатор Microsoft Entra для безопасной проверки подлинности без ключей с помощью библиотеки удостоверений Azure . Чтобы приступить к работе, выполните приведенные действия.

  1. Установите пакет удостоверений Azure :

    npm install @azure/identity
    
  2. Создайте поставщика маркеров, вызвав getBearerTokenProvider с нужным типом учетных данных. Например, DefaultAzureCredential:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Создайте клиент, передав поставщик маркеров:

    import { AzureOpenAI } from "openai";
    
    const deployment = "Your deployment name";
    const apiVersion = "2024-10-21";
    const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
    

Предоставьте доступ к ресурсу Azure OpenAI доверенным сущностям, следуя инструкциям в статье Настройка Azure OpenAI Service с помощью проверки подлинности Идентификатора Microsoft Entra.

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

Помощников

Общие сведения API помощников OpenAI.

Транскрибирование звука и преобразование текста в речь

См. возможности OpenAI: преобразование речи в текст.

Партия

См. руководство api пакетной службы OpenAI.

Завершение чата

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

См. возможности OpenAI: завершение чата.

Создание образа

См. возможности OpenAI: создание образов.

Файлы

Дополнительныесм. в справочнике по API файлов OpenAI.

Внедрение текста

См. возможности OpenAI: внедрение.

Примеры

В этом разделе приведены примеры использования функций службы Azure OpenAI. Дополнительные примеры см. в папке примеров .

Анализ бизнес-данных

Этот пример TypeScript создает ответы чата на вопросы о входных чатах о бизнес-данных. Бизнес-данные предоставляются с помощью индекса Когнитивного поиска Azure. Дополнительные сведения о настройке индекса Когнитивного поиска Azure в качестве источника данных см. в кратком руководстве: чат с моделями Azure OpenAI с помощью собственныхданных.

import { AzureOpenAI } from "openai";
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import "@azure/openai/types";

// Set AZURE_OPENAI_ENDPOINT to the endpoint of your
// Azure OpenAI resource. You can find this in the Azure portal.
import "dotenv/config";

// Your Azure Cognitive Search endpoint, and index name
const azureSearchEndpoint = process.env["AZURE_SEARCH_ENDPOINT"] || "<search endpoint>";
const azureSearchIndexName = process.env["AZURE_SEARCH_INDEX"] || "<search index>";

export async function main() {
  console.log("== Azure On Your Data Sample ==");

  const scope = "https://cognitiveservices.azure.com/.default";
  const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope);
  const deployment = "gpt-4-1106-preview";
  const apiVersion = "2024-10-21";
  const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
  const events = await client.chat.completions.create({
    stream: true,
    messages: [
      {
        role: "user",
        content:
          "What's the most common feedback we received from our customers about the product?",
      },
    ],
    max_tokens: 128,
    model: "",
    data_sources: [
      {
        type: "azure_search",
        parameters: {
          endpoint: azureSearchEndpoint,
          index_name: azureSearchIndexName,
          authentication: {
            type: "system_assigned_managed_identity",
          },
        },
      },
    ],
  });

  for await (const event of events) {
    for (const choice of event.choices) {
      console.log(choice.delta?.content);
    }
  }
}

main();

Завершение чата с фильтрацией содержимого

Служба Azure OpenAI включает систему фильтрации содержимого, которая работает вместе с основными моделями. Эта система обнаруживает и принимает меры по определенным категориям потенциально вредного содержимого как в запросах ввода, так и в завершении выходных данных. В этом примере показано, как получить доступ к этим результатам фильтрации содержимого.

import { AzureOpenAI } from "openai";
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import "@azure/openai/types";

// Set AZURE_OPENAI_ENDPOINT to the endpoint of your
// OpenAI resource. You can find this in the Azure portal.
import "dotenv/config";

async function main() {
  console.log("== Streaming Chat Completions Sample ==");

  const scope = "https://cognitiveservices.azure.com/.default";
  const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope);
  const deployment = "gpt-35-turbo";
  const apiVersion = "2024-10-21";
  const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
  const events = await client.chat.completions.create({
    messages: [
      { role: "system", content: "You are a helpful assistant. You will talk like a pirate." },
      { role: "user", content: "Can you help me?" },
      { role: "assistant", content: "Arrrr! Of course, me hearty! What can I do for ye?" },
      { role: "user", content: "What's the best way to train a parrot?" },
    ],
    model: "",
    max_tokens: 128,
    stream: true,
  });

  for await (const event of events) {
    for (const choice of event.choices) {
      console.log(`Chunk: ${choice.delta?.content}`);
      const filterResults = choice.content_filter_results;
      if (!filterResults) {
        continue;
      }
      if (filterResults.error) {
        console.log(
          `\tContent filter ran into an error ${filterResults.error.code}: ${filterResults.error.message}`,
        );
      } else {
        const { hate, sexual, selfHarm, violence } = filterResults;
        console.log(
          `\tHate category is filtered: ${hate?.filtered}, with ${hate?.severity} severity`,
        );
        console.log(
          `\tSexual category is filtered: ${sexual?.filtered}, with ${sexual?.severity} severity`,
        );
        console.log(
          `\tSelf-harm category is filtered: ${selfHarm?.filtered}, with ${selfHarm?.severity} severity`,
        );
        console.log(
          `\tViolence category is filtered: ${violence?.filtered}, with ${violence?.severity} severity`,
        );
      }
    }
  }
}

main();

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

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

Ознакомьтесь с официальной клиентской библиотекой OpenAI для JavaScript .

Способствует

Дополнительные сведения о создании, тестировании и участии в этой библиотеке см. в OpenAI CONTRIBUTING.md.

Этот проект приветствует взносы и предложения. Большинство вкладов требуют, чтобы вы согласились с соглашением о лицензии участника (CLA), заявив, что у вас есть право, и на самом деле, предоставьте нам права на использование вашего вклада. Дополнительные сведения см. в cla.microsoft.com.

При отправке запроса на вытягивание бот CLA автоматически определяет, нужно ли предоставить соглашение об уровне обслуживания и украсить pr соответствующим образом (например, метка, комментарий). Просто следуйте инструкциям, предоставленным ботом. Это необходимо сделать только один раз во всех репозиториях с помощью нашего CLA.

Этот проект принял Microsoft Open Source Code of Conduct. Дополнительные сведения см. в разделе Часто задаваемые вопросы о поведении или связаться с opencode@microsoft.com с любыми дополнительными вопросами или комментариями.