Bibliothèque Azure OpenAI pour TypeScript - 2.0.0
Le Azure OpenAI Service permet d’accéder aux modèles IA avancés pour la création de contenu, la création de contenu et les cas d’utilisation de base de données. La bibliothèque Azure OpenAI pour TypeScript est un compagnon de la bibliothèque de client OpenAI officielle pour JavaScript. La bibliothèque Azure OpenAI fournit une prise en charge fortement typée supplémentaire pour les modèles de demande et de réponse spécifiques aux scénarios Azure OpenAI.
Migration à partir de @azure/openai version 1⚠️
Consultez le guide de migration pour obtenir des instructions détaillées sur la mise à jour du code de votre application de la version 1.x de la bibliothèque cliente Azure OpenAI vers la bibliothèque de openai
.
Liens clés :
- code source
- package
(NPM) - Documentation de référence de l’API
- documentation produit
- Exemples
Commencer
Environnements actuellement pris en charge
- versions LTS de Node.js
- Dernières versions de Safari, Chrome, Edge et Firefox.
Conditions préalables
Si vous souhaitez utiliser une ressource Azure OpenAI, vous devez disposer d’un d’abonnement Azure
Installer openai
et @azure/openai
Installez la bibliothèque cliente Azure OpenAI et la bibliothèque OpenAI pour JavaScript avec npm
:
npm install openai @azure/openai
Créer et authentifier un AzureOpenAI
Il existe plusieurs façons de s’authentifier auprès du service Azure OpenAI et la méthode recommandée consiste à utiliser l’ID Microsoft Entra pour une authentification sécurisée sans clé via la bibliothèque d’identités Azure . Pour commencer :
Installez le package Azure Identity :
npm install @azure/identity
Créez un fournisseur de jetons en appelant le
getBearerTokenProvider
avec le type d’informations d’identification souhaité. Par exemple, DefaultAzureCredential:import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope);
Créez le client en transmettant le fournisseur de jetons :
import { AzureOpenAI } from "openai"; const deployment = "Your deployment name"; const apiVersion = "2024-10-21"; const client = new AzureOpenAI({ azureADTokenProvider, deployment, apiVersion });
Accordez l’accès à votre ressource Azure OpenAI à vos entités approuvées en suivant les instructions de Comment configurer Azure OpenAI Service avec l’authentification Microsoft Entra ID.
Concepts clés
Assistants
Consultez vue d’ensemble de l’API Assistants d’OpenAI.
Transcription/traduction audio et génération de synthèse vocale
Consultez fonctionnalités OpenAI : reconnaissance vocale.
Lot
Consultez guide de l’API Batch d’OpenAI.
Saisie semi-automatique des conversations
Les modèles de conversation prennent une liste de messages comme entrée et retournent un message généré par un modèle comme sortie. Bien que le format de conversation soit conçu pour faciliter les conversations multitours, il est également utile pour les tâches à tour unique sans conversation.
Consultez fonctionnalités OpenAI :d’achèvement de conversation.
Génération d’images
Consultez fonctionnalités OpenAI : génération d’images.
Fichiers
Consultez informations de référence sur l’API Files d’OpenAI.
Incorporations de texte
Consultez fonctionnalités OpenAI : incorporations.
Exemples
Cette section fournit des exemples d’utilisation des fonctionnalités du service Azure OpenAI. Pour obtenir des exemples supplémentaires, consultez le dossier d’exemples .
Analyser les données métiers
Cet exemple TypeScript génère des réponses de conversation aux questions de conversation d’entrée sur vos données métier. Les données métier sont fournies via un index Recherche cognitive Azure. Pour en savoir plus sur la configuration d’un index Recherche cognitive Azure en tant que source de données, consultez Démarrage rapide : Conversation avec des modèles Azure OpenAI à l’aide de vos propresde données.
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();
Saisie semi-automatique des conversations filtrées dans le contenu
Azure OpenAI Service inclut un système de filtrage de contenu qui fonctionne avec les modèles principaux. Ce système détecte et prend des mesures sur des catégories spécifiques de contenu potentiellement dangereux dans les invites d’entrée et les achèvements de sortie. Cet exemple montre comment accéder à ces résultats de filtrage de contenu.
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();
Étapes suivantes
Dépannage
Reportez-vous à la bibliothèque de client OpenAI officielle pour javaScript.
Contribuant
Consultez le OpenAI CONTRIBUTING.md pour plus d’informations sur la création, le test et la contribution à cette bibliothèque.
Ce projet accueille les contributions et suggestions. La plupart des contributions vous obligent à accepter un contrat de licence contributeur (CLA) déclarant que vous avez le droit, et en fait, de nous accorder les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.
Lorsque vous envoyez une demande de tirage( pull request), un bot CLA détermine automatiquement si vous devez fournir un CLA et décorer correctement la demande de tirage (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois sur tous les dépôts à l’aide de notre CLA.
Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez la FAQ code de conduite ou contactez opencode@microsoft.com avec des questions ou commentaires supplémentaires.
Azure SDK for JavaScript