Biblioteca do Azure OpenAI para TypeScript – 2.0.0
O do Serviço openai do
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:
- código-fonte
- do NPM (pacote
) - documentação de referência da API
- documentação do produto
- exemplos de
Introdução
Ambientes com suporte no momento
- versões lts do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
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:
Instale o pacote do Azure Identity:
npm install @azure/identity
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);
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 o
Azure SDK for JavaScript