Compartilhar via


Biblioteca do Azure OpenAI para TypeScript – 2.0.0

O do Serviço openai do do Azure fornece acesso a modelos avançados de IA para casos de uso de conversação, criação de conteúdo e a base de dados. A biblioteca do Azure OpenAI para TypeScript é uma complementar à biblioteca oficial de clientes do OpenAI para JavaScript. A biblioteca Azure OpenAI fornece suporte fortemente tipado adicional para modelos de solicitação e resposta específicos para cenários do Azure OpenAI.

migrando do @azure/openai⚠️ de consultoria versão 1

Confira o guia de migração para obter instruções detalhadas sobre como atualizar o código do aplicativo da versão 1.x da biblioteca de clientes do Azure OpenAI para a biblioteca de openai.

Links de chave:

Introdução

Ambientes com suporte no momento

Pré-requisitos

Se você quiser usar um recurso do Azure OpenAI, deverá ter uma assinatura do do Azure e acesso do Azure OpenAI. Para obter mais informações, consulte Início Rápido: Introdução à geração de texto usando o serviço Azure OpenAI.

Instalar openai e @azure/openai

Instale a biblioteca de clientes do Azure OpenAI e a biblioteca OpenAI para JavaScript com npm:

npm install openai @azure/openai

Criar e autenticar um AzureOpenAI

Há várias maneiras de autenticar com o serviço Azure OpenAI e a maneira recomendada é usar a ID do Microsoft Entra para autenticação segura e sem chave por meio da biblioteca de identidade do Azure. Para começar:

  1. Instale o pacote do Azure Identity:

    npm install @azure/identity
    
  2. Crie um provedor de token chamando o getBearerTokenProvider com o tipo de credencial desejado. Por exemplo, DefaultAzureCredential:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Crie o cliente passando o provedor de token:

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

Conceda acesso ao recurso do Azure OpenAI para suas entidades confiáveis seguindo instruções em Como configurar o Serviço OpenAI do Azure com a autenticação da ID do Microsoft Entra.

Principais conceitos

Assistentes

Consulte visão geral da API de Assistentes do OpenAI.

Transcrição/tradução de áudio e geração de texto em fala

Consulte Recursos openai:de conversão de fala em texto.

Lote

Consulte guia da API do Lote do OpenAI.

Conclusão do chat

Os modelos de chat tomam uma lista de mensagens como entrada e retornam uma mensagem gerada pelo modelo como saída. Embora o formato de chat tenha sido projetado para facilitar conversas de vários turnos, ele também é útil para tarefas de turno único sem nenhuma conversa.

Consulte Recursos do OpenAI:de conclusão do chat.

Geração de imagem

Consulte Recursos openai: geração de imagem.

Limas

Consulte de referência da API de Arquivos do OpenAI.

Inserções de texto

Consulte Recursos openai: inserções.

Exemplos

Esta seção fornece exemplos de como usar os recursos do Serviço Azure OpenAI. Para obter exemplos adicionais, confira a pasta de exemplos .

Analisar dados corporativos

Este exemplo de TypeScript gera respostas de chat para perguntas de chat de entrada sobre seus dados de negócios. Os dados de negócios são fornecidos por meio de um índice do Azure Cognitive Search. Para saber mais sobre como configurar um índice do Azure Cognitive Search como uma fonte de dados, consulte Início Rápido: Chat com modelos do Azure OpenAI usando seus própriosde dados.

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

Conclusões de chat filtradas por conteúdo

O Serviço OpenAI do Azure inclui um sistema de filtragem de conteúdo que funciona junto com os modelos principais. Esse sistema detecta e toma medidas em categorias específicas de conteúdo potencialmente prejudicial em prompts de entrada e conclusões de saída. Este exemplo mostra como acessar esses resultados de filtragem de conteúdo.

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

Próximas etapas

Solucionando problemas

Consulte a biblioteca oficial de clientes do OpenAI para JavaScript.

Contribuindo

Consulte o CONTRIBUTING.md OpenAI para obter detalhes sobre como criar, testar e contribuir para essa biblioteca.

Este projeto recebe contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença de Colaborador) declarando que você tem o direito de, e realmente fazer, conceder-nos os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.

Ao enviar uma solicitação de pull, um CLA-bot determinará automaticamente se você precisa fornecer um CLA e decorar a PR adequadamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.

Este projeto adotou oCódigo de Conduta de Software Livre da Microsoft. Para obter mais informações, consulte as perguntas frequentes sobre o Código de Conduta ou entre em contato com opencode@microsoft.com com perguntas ou comentários adicionais.