Sdílet prostřednictvím


Knihovna Azure OpenAI pro TypeScript – 2.0.0

Služba Azure OpenAI Service poskytuje přístup k pokročilým modelům AI pro konverzační případy použití, vytváření obsahu a modelování dat. Knihovna Azure OpenAI pro TypeScript je společníkem oficiální klientské knihovny OpenAI pro JavaScript. Knihovna Azure OpenAI poskytuje další podporu modelů požadavků a odpovědí specifických pro scénáře Azure OpenAI.

Migrace z @azure/openai verze 1 – rady

Podrobné pokyny k aktualizaci kódu aplikace z verze 1.x klientské knihovny Azure OpenAI do knihovny najdete v průvodce migrací .

Klíčové odkazy:

  • zdrojového kódu
  • balíčku (NPM)
  • Referenční dokumentace k rozhraní API
  • dokumentace k produktu
  • ukázky

Začínáme

Aktuálně podporovaná prostředí

Požadavky

Pokud chcete použít prostředek Azure OpenAI, musíte mít předplatné Azure a přístup k Azure OpenAI. Další informace najdete v tématu Rychlý start: Začínáme generovat text pomocí služby Azure OpenAI Service.

Instalace openai i @azure/openai

Nainstalujte klientskou knihovnu Azure OpenAI a knihovnu OpenAI pro JavaScript s npm:

npm install openai @azure/openai

Vytvoření a ověření AzureOpenAI

Existuje několik způsobů ověřování pomocí služby Azure OpenAI a doporučeným způsobem je použití ID Microsoft Entra pro zabezpečené ověřování bez klíčů prostřednictvím knihovny Identit Azure. Začněte tím, že:

  1. Nainstalujte balíček Azure Identity:

    npm install @azure/identity
    
  2. Vytvořte zprostředkovatele tokenu voláním getBearerTokenProvider s požadovaným typem přihlašovacích údajů. Například DefaultAzureCredential:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Vytvořte klienta předáním zprostředkovatele tokenu:

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

Podle pokynů v tématu Jak nakonfigurovat službu Azure OpenAI s ověřováním Microsoft Entra IDudělte přístup k prostředku Azure OpenAI vašim důvěryhodným entitům.

Klíčové koncepty

Asistenti

Viz přehledrozhraní API pro pomocníků OpenAI.

Přepis zvuku / překlad a generování převodu textu na řeč

Viz funkce OpenAI: Převod řeči na text.

Várka

Přečtěte sipříručku k rozhraní API služby OpenAI pro OpenAI.

Dokončení chatu

Modely chatu přebírají jako vstup seznam zpráv a jako výstup vrací modelem vygenerovanou zprávu. I když je formát chatu navržený tak, aby zjednodušil konverzace s více jazyky, je také užitečný pro jednoduché úkoly bez jakékoli konverzace.

Viz Možnosti OpenAI: Dokončení chatu.

Generování obrázků

Viz možnosti OpenAI: generování obrázků.

Soubory

Viz referenčnírozhraní API openAI pro soubory .

Vkládání textu

Viz možnosti OpenAI: vkládání.

Příklady

Tato část obsahuje příklady použití funkcí služby Azure OpenAI. Další příklady najdete ve složce samples.

Analýza obchodních dat

Tento příklad TypeScriptu generuje odpovědi chatu na vstupní otázky chatu týkající se vašich obchodních dat. Obchodní data jsou poskytována prostřednictvím indexu služby Azure Cognitive Search. Další informace o nastavení indexu služby Azure Cognitive Search jako zdroje dat najdete v rychlém startu: chatování s modely Azure OpenAI pomocí vlastních datových.

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

Dokončování chatu filtrované obsahem

Služba Azure OpenAI zahrnuje systém filtrování obsahu, který funguje společně s základními modely. Tento systém zjistí a provede akce s konkrétními kategoriemi potenciálně škodlivého obsahu ve vstupních výzev i dokončení výstupu. Tento příklad ukazuje, jak získat přístup k výsledkům filtrování obsahu.

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

Další kroky

Řešení problémů

Projděte si oficiální klientskou knihovnu OpenAI pro javascriptovou.

Přispívající

Podrobnosti o vytváření, testování a přispívání do této knihovny najdete v CONTRIBUTING.md OpenAI.

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která deklaruje, že máte právo a ve skutečnosti nám udělíte práva k používání vašeho příspěvku. Podrobnosti najdete v cla.microsoft.com.

Když odešlete žádost o přijetí změn, robot CLA automaticky určí, jestli potřebujete poskytnout CLA, a odpovídajícím způsobem vyzdobit žádost o přijetí změn (např. popisek, komentář). Stačí postupovat podle pokynů poskytovaných robotem. Stačí to udělat jen jednou napříč všemi úložištěmi pomocí naší cla.

Tento projekt přijal pravidla chování microsoftu open source . Další informace najdete v nejčastějších dotazech k kodexu chování nebo opencode@microsoft.com s dalšími dotazy nebo komentáři.