Dela via


Azure OpenAI-bibliotek för TypeScript – 2.0.0

Azure OpenAI Service ger åtkomst till avancerade AI-modeller för konversation, skapande av innehåll och användning av data. Azure OpenAI-biblioteket för TypeScript är ett komplement till det officiella OpenAI-klientbiblioteket för JavaScript. Azure OpenAI-biblioteket ger ytterligare starkt skrivet stöd för begärande- och svarsmodeller som är specifika för Azure OpenAI-scenarier.

Migrera från @azure/openai version 1⚠️

Kolla in Migration Guide för detaljerade instruktioner om hur du uppdaterar programkoden från version 1.x av Azure OpenAI-klientbiblioteket till openai-biblioteket.

Nyckellänkar:

Komma igång

Miljöer som stöds för närvarande

Förutsättningar

Om du vill använda en Azure OpenAI-resurs måste du ha en Azure-prenumeration och Azure OpenAI-åtkomst. Mer information finns i Snabbstart: Kom igång med att generera text med Hjälp av Azure OpenAI Service.

Installera både openai och @azure/openai

Installera Azure OpenAI-klientbiblioteket och OpenAI-biblioteket för JavaScript med npm:

npm install openai @azure/openai

Skapa och autentisera en AzureOpenAI

Det finns flera sätt att autentisera med Azure OpenAI-tjänsten och det rekommenderade sättet är att använda Microsoft Entra-ID för säker, nyckellös autentisering via Azure Identity-bibliotek. Så här kommer du igång:

  1. Installera Azure Identity-paketet:

    npm install @azure/identity
    
  2. Skapa en tokenprovider genom att anropa getBearerTokenProvider med önskad typ av autentiseringsuppgifter. Till exempel StandardAzureCredential:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Skapa klienten genom att skicka in tokenprovidern:

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

Bevilja åtkomst till din Azure OpenAI-resurs till dina betrodda entiteter genom att följa anvisningarna i Konfigurera Azure OpenAI-tjänsten med Microsoft Entra ID-autentisering.

Viktiga begrepp

Assistenter

Se Översikt över Api:et för OpenAI-assistenter.

Ljudranskription/översättning och text-till-tal-generering

Se OpenAI-funktioner: Tal till text.

Batch

Se OpenAI:s Batch API-guide.

Chatten har slutförts

Chattmodeller tar en lista med meddelanden som indata och returnerar ett modellgenererat meddelande som utdata. Även om chattformatet är utformat för att göra konversationer med flera turer enkla, är det också användbart för uppgifter med en enda tur utan konversation.

Se OpenAI-funktioner: Chatten har slutförts.

Bildgenerering

Se OpenAI-funktioner: Bildgenerering.

filer

Se OpenAI:s api-referens för filer.

Text inbäddningar

Se OpenAI-funktioner: Inbäddningar.

Exempel

Det här avsnittet innehåller exempel på hur du använder funktionerna i Azure OpenAI-tjänsten. Om du vill ha fler exempel kan du checka ut mappen exempel.

Analysera affärsdata

Det här TypeScript-exemplet genererar chattsvar för indatachattfrågor om dina affärsdata. Affärsdata tillhandahålls via ett Azure Cognitive Search-index. Mer information om hur du konfigurerar ett Azure Cognitive Search-index som datakälla finns i Snabbstart: Chatta med Azure OpenAI-modeller med dina egna data.

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

Innehållsfiltrerad chatt har slutförts

Azure OpenAI Service innehåller ett system för innehållsfiltrering som fungerar tillsammans med kärnmodeller. Det här systemet identifierar och vidtar åtgärder för specifika kategorier av potentiellt skadligt innehåll i både indataprompter och slutföranden av utdata. Det här exemplet visar hur du kommer åt dessa resultat för innehållsfiltrering.

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ästa steg

Felsökning

Se det officiella OpenAI-klientbiblioteket för JavaScript.

Bidragande

Mer information om hur du skapar, testar och bidrar till det här biblioteket finns i OpenAI-CONTRIBUTING.md.

Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett licensavtal för deltagare (CLA) som förklarar att du har rätt att, och faktiskt gör det, ge oss rätten att använda ditt bidrag. Mer information finns i cla.microsoft.com.

När du skickar en pull-begäran avgör en CLA-robot automatiskt om du behöver tillhandahålla ett CLA och dekorera PR på rätt sätt (t.ex. etikett, kommentar). Följ bara anvisningarna från roboten. Du behöver bara göra detta en gång för alla lagringsplatser med vår CLA.

Det här projektet har antagit Microsoft Open Source Code of Conduct. Mer information finns i vanliga frågor och svar om uppförandekod eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.