Freigeben über


Azure OpenAI-Bibliothek für TypeScript – 2.0.0

Der Azure OpenAI Service- bietet Zugriff auf erweiterte KI-Modelle für Unterhaltungs-, Inhaltserstellungs- und Datengrundsetzungsfälle. Die Azure OpenAI-Bibliothek für TypeScript ist ein Begleiter der offiziellen OpenAI-Clientbibliothek für JavaScript. Die Azure OpenAI-Bibliothek bietet zusätzliche stark typierte Unterstützung für Anforderungs- und Antwortmodelle speziell für Azure OpenAI-Szenarien.

Migration von @azure/openai Version 1-Empfehlung⚠️

Schauen Sie sich das Migrationshandbuch detaillierte Anweisungen zum Aktualisieren des Anwendungscodes von Version 1.x der Azure OpenAI-Clientbibliothek auf die openai-Bibliothek an.

Wichtige Links:

Erste Schritte

Derzeit unterstützte Umgebungen

Voraussetzungen

Wenn Sie eine Azure OpenAI-Ressource verwenden möchten, benötigen Sie ein Azure-Abonnement und Azure OpenAI-Zugriff. Weitere Informationen finden Sie unter Schnellstart: Erste Schritte beim Generieren von Text mithilfe von Azure OpenAI Service.

Installieren von openai und @azure/openai

Installieren Sie die Azure OpenAI-Clientbibliothek und die OpenAI-Bibliothek für JavaScript mit npm:

npm install openai @azure/openai

Erstellen und Authentifizieren einer AzureOpenAI

Es gibt mehrere Möglichkeiten, sich beim Azure OpenAI-Dienst zu authentifizieren, und die empfohlene Methode besteht darin, Microsoft Entra-ID für sichere, schlüssellose Authentifizierung über die Azure Identity-Bibliothekzu verwenden. Erste Schritte:

  1. Installieren Sie das Azure Identity-Paket:

    npm install @azure/identity
    
  2. Erstellen Sie einen Tokenanbieter, indem Sie die getBearerTokenProvider mit dem gewünschten Anmeldeinformationstyp aufrufen. Beispiel: DefaultAzureCredential-:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Erstellen Sie den Client, indem Sie den Tokenanbieter übergeben:

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

Gewähren Sie Zugriff auf Ihre Azure OpenAI-Ressource für Ihre vertrauenswürdigen Entitäten, indem Sie anweisungen in Anleitungen zum Konfigurieren des Azure OpenAI-Diensts mit der Microsoft Entra ID-Authentifizierung.

Schlüsselkonzepte

Assistenten

Siehe Übersicht über die Assistenten-API von OpenAI.

Audiotranskription/Übersetzung und Text-zu-Sprache-Generierung

Siehe OpenAI-Funktionen: Sprache zu Text.

Stapel

Siehe OpenAI Batch-API-Leitfaden.

Abschluss des Chats

Chatmodelle nehmen eine Liste von Nachrichten als Eingabe an und geben eine modellgenerierte Nachricht als Ausgabe zurück. Obwohl das Chatformat so konzipiert ist, dass Multi-Turn-Unterhaltungen einfach sind, ist es auch nützlich für Einzelgespräche ohne Unterhaltungen.

Siehe OpenAI-Funktionen: Chatabschluss.

Bildgenerierung

Siehe OpenAI-Funktionen: Bildgenerierung.

Dateien

Siehe OpenAI Files API-Referenz.

Einbettungen von Text

Siehe OpenAI-Funktionen: Einbettungen.

Beispiele

Dieser Abschnitt enthält Beispiele für die Verwendung der Features des Azure OpenAI-Diensts. Weitere Beispiele finden Sie im Ordner Beispiele.

Analysieren von Geschäftsdaten

In diesem TypeScript-Beispiel werden Chatantworten für Eingabechatfragen zu Ihren Geschäftsdaten generiert. Die Geschäftsdaten werden über einen Azure Cognitive Search-Index bereitgestellt. Weitere Informationen zum Einrichten eines Azure Cognitive Search-Indexes als Datenquelle finden Sie in der Schnellstartanleitung: Chat mit Azure OpenAI-Modellen mit Ihren eigenen Daten.

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

Inhaltsfilterte Chat-Fertigstellungen

Der Azure OpenAI-Dienst enthält ein Inhaltsfiltersystem, das zusammen mit Kernmodellen funktioniert. Dieses System erkennt und ergreift Maßnahmen für bestimmte Kategorien potenziell schädlicher Inhalte in Eingabeaufforderungen und Ausgabeabschlussen. In diesem Beispiel wird gezeigt, wie Sie auf diese Ergebnisse der Inhaltsfilterung zugreifen.

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

Nächste Schritte

Fehlerbehebung

Weitere Informationen finden Sie in der offiziellen OpenAI-Clientbibliothek für JavaScript-.

Beitragend

Weitere Informationen zum Erstellen, Testen und Beitragen zu dieser Bibliothek finden Sie im OpenAI-CONTRIBUTING.md.

Dieses Projekt begrüßt Beiträge und Vorschläge. Die meisten Beiträge erfordern, dass Sie einem Mitwirkenden-Lizenzvertrag (CLA) zustimmen, der erklärt, dass Sie das Recht haben, uns tatsächlich die Rechte zur Nutzung Ihres Beitrags zu gewähren. Weitere Informationen finden Sie unter cla.microsoft.com.

Wenn Sie eine Pullanfrage einreichen, bestimmt ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen und die PR entsprechend dekorieren müssen (z. B. Bezeichnung, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Sie müssen dies nur einmal über alle Reposs hinweg tun, indem Sie unsereN CLA verwenden.

Dieses Projekt hat den Microsoft Open Source Code of Conductübernommen. Weitere Informationen finden Sie im Code of Conduct FAQ oder wenden Sie sich an opencode@microsoft.com mit weiteren Fragen oder Kommentaren.