Bagikan melalui


Pustaka Azure OpenAI untuk TypeScript - 2.0.0

Azure OpenAI Service menyediakan akses ke model AI tingkat lanjut untuk kasus percakapan, pembuatan konten, dan penggunaan data grounding. Pustaka Azure OpenAI untuk TypeScript adalah pendamping pustaka klien OpenAI resmi untuk JavaScript. Pustaka Azure OpenAI menyediakan dukungan tambahan yang ditik dengan kuat untuk model permintaan dan respons khusus untuk skenario Azure OpenAI.

Migrasi dari️ penasihat versi 1

Lihat panduan Migrasi untuk instruksi terperinci tentang cara memperbarui kode aplikasi Anda dari versi 1.x pustaka klien Azure OpenAI ke pustaka openai.

Tautan kunci:

Persiapan

Lingkungan yang saat ini didukung

Prasyarat

Jika Anda ingin menggunakan sumber daya Azure OpenAI, Anda harus memiliki langganan Azure dan akses Azure OpenAI. Untuk informasi selengkapnya, lihat mulai cepat : Mulai membuat teks menggunakan Azure OpenAI Service.

Instal openai dan @azure/openai

Instal pustaka klien Azure OpenAI dan pustaka OpenAI untuk JavaScript dengan npm:

npm install openai @azure/openai

Membuat dan mengautentikasi AzureOpenAI

Ada beberapa cara untuk mengautentikasi dengan layanan Azure OpenAI dan cara yang disarankan adalah dengan menggunakan ID Microsoft Entra untuk autentikasi tanpa kunci yang aman melalui pustaka Azure Identity . Untuk memulai:

  1. Instal paket Azure Identity :

    npm install @azure/identity
    
  2. Buat penyedia token dengan memanggil getBearerTokenProvider dengan jenis kredensial yang diinginkan. Misalnya, DefaultAzureCredential:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Buat klien dengan meneruskan penyedia token:

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

Berikan akses ke sumber daya Azure OpenAI Anda ke entitas tepercaya Anda dengan mengikuti instruksi di Cara mengonfigurasi Layanan Azure OpenAI dengan autentikasi ID Microsoft Entra.

Konsep utama

Asisten

Lihat gambaran umum Assistants API OpenAI .

Transkripsi/terjemahan audio dan pembuatan teks ke ucapan

Lihat Kemampuan OpenAI: Ucapan ke teks.

Batch

Lihatpanduan API Batch OpenAI .

Penyelesaian obrolan

Model obrolan mengambil daftar pesan sebagai input dan mengembalikan pesan yang dihasilkan model sebagai output. Meskipun format obrolan dirancang untuk membuat percakapan multi-giliran menjadi mudah, ini juga berguna untuk tugas giliran tunggal tanpa percakapan apa pun.

Lihat Kemampuan OpenAI: Penyelesaian obrolan.

Pembuatan gambar

Lihat Kemampuan OpenAI: Pembuatan gambar.

File

Lihat referensi Files API OpenAI.

Penyematan teks

Lihat kemampuan OpenAI : Penyematan.

Contoh

Bagian ini menyediakan contoh penggunaan fitur Azure OpenAI Service. Untuk contoh tambahan, lihat folder sampel .

Menganalisis Data Bisnis

Contoh TypeScript ini menghasilkan respons obrolan untuk memasukkan pertanyaan obrolan tentang data bisnis Anda. Data bisnis disediakan melalui indeks Azure Cognitive Search. Untuk mempelajari selengkapnya tentang cara menyiapkan indeks Azure Cognitive Search sebagai sumber data, lihat Mulai Cepat: Obrolan dengan model Azure OpenAI menggunakan data Anda sendiri.

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

Penyelesaian Obrolan yang difilter konten

Azure OpenAI Service menyertakan sistem pemfilteran konten yang berfungsi bersama model inti. Sistem ini mendeteksi dan mengambil tindakan pada kategori tertentu dari konten yang berpotensi berbahaya dalam perintah input dan penyelesaian output. Contoh ini menunjukkan cara mengakses hasil pemfilteran konten tersebut.

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

Langkah berikutnya

Pemecahan masalah

Lihat pustaka klien OpenAI resmi untuk JavaScript.

Berkontribusi

Lihat CONTRIBUTING.md OpenAI untuk detail tentang membangun, menguji, dan berkontribusi pada pustaka ini.

Proyek ini menyambut kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi cla.microsoft.com.

Saat Anda mengirimkan permintaan pull, cla-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repositori menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Kode Etik atau hubungi opencode@microsoft.com dengan pertanyaan atau komentar tambahan apa pun.