Aracılığıyla paylaş


TypeScript için Azure OpenAI kitaplığı - 2.0.0

Azure OpenAI Service konuşma, içerik oluşturma ve veri temellendirme kullanım örnekleri için gelişmiş yapay zeka modellerine erişim sağlar. TypeScript için Azure OpenAI kitaplığı, JavaScriptiçin resmi OpenAI istemci kitaplığının eşlikçisidir. Azure OpenAI kitaplığı, Azure OpenAI senaryolarına özgü istek ve yanıt modelleri için kesin olarak belirlenmiş ek destek sağlar.

@azure/openai sürüm 1 danışmanlığından geçiş⚠️

Uygulama kodunuzu Azure OpenAI istemci kitaplığının 1.x sürümünden kitaplığına güncelleştirme hakkında ayrıntılı yönergeler için openai göz atın.

Önemli bağlantılar:

Başlarken

Şu anda desteklenen ortamlar

  • Node.js LTS sürümleri
  • Safari, Chrome, Edge ve Firefox'un en son sürümleri.

Önkoşullar

Azure OpenAI kaynağı kullanmak istiyorsanız bir Azure aboneliği veAzure OpenAI erişimi gerekir. Daha fazla bilgi için bkz. Hızlı Başlangıç: Azure OpenAI Servicekullanarak metin oluşturmaya başlama.

Hem openai hem de @azure/openai yükleme

npmile Azure OpenAI istemci kitaplığını ve JavaScript için OpenAI kitaplığını yükleyin:

npm install openai @azure/openai

AzureOpenAI oluşturma ve kimlik doğrulaması

Azure OpenAI hizmetiyle kimlik doğrulaması yapmanın birkaç yolu vardır ve önerilen yol, Azure Kimlik kitaplığıaracılığıyla güvenli ve anahtarsız kimlik doğrulaması için Microsoft Entra Id kullanmaktır. Başlamak için:

  1. Azure Identity paketiniyükleyin:

    npm install @azure/identity
    
  2. İstenen kimlik bilgisi türüne sahip getBearerTokenProvider çağırarak bir belirteç sağlayıcısı oluşturun. Örneğin, DefaultAzureCredential:

    import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
  3. Belirteç sağlayıcısını geçirerek istemciyi oluşturun:

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

Azure OpenAI Hizmetini Microsoft Entra Id kimlik doğrulamasıyla yapılandırmayönergeleri izleyerek Azure OpenAI kaynağınıza güvenilen varlıklarınıza erişim izni verin.

Temel kavramlar

Asistan

bkz. OpenAI Yardımcıları API'lerine genel bakış.

Ses transkripsiyonu/çevirisi ve metin okuma oluşturma

Bkz. OpenAI Özellikleri: Konuşmayı metne dönüştürme.

Toplu iş

OpenAI'nin Batch API kılavuzubakın.

Sohbet tamamlama

Sohbet modelleri, girdi olarak iletilerin listesini alır ve model tarafından oluşturulan bir iletiyi çıkış olarak döndürür. Sohbet biçimi çok aşamalı konuşmaları kolaylaştıracak şekilde tasarlanmış olsa da, konuşma yapmadan tek seferlik görevler için de kullanışlıdır.

Bkz. OpenAI Özellikleri: Sohbet tamamlama.

Görüntü oluşturma

Bkz. OpenAI Özellikleri: Görüntü oluşturma.

Dosyaları

OpenAI'nin Dosyalar API başvurusubakın.

Metin eklemeler

Bkz. OpenAI Özellikleri: Eklemeler.

Örnekler

Bu bölümde, Azure OpenAI Hizmeti'nin özelliklerini kullanma örnekleri sağlanır. Ek örnekler içinörnekleri klasörünü kullanıma alın.

İş Verilerini Analiz Etme

Bu TypeScript örneği, iş verilerinizle ilgili sohbet sorularına giriş yapmak için sohbet yanıtları oluşturur. İş verileri bir Azure Bilişsel Arama dizini aracılığıyla sağlanır. Azure Bilişsel Arama dizinini veri kaynağı olarak ayarlama hakkında daha fazla bilgi edinmek için bkz. Hızlı Başlangıç: Kendi verilerinizi kullanarak Azure OpenAI modelleriyle sohbet etme.

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

İçerik filtreli Sohbet Tamamlamaları

Azure OpenAI Hizmeti, çekirdek modellerde birlikte çalışan bir içerik filtreleme sistemi içerir. Bu sistem, hem giriş istemlerinde hem de çıkış tamamlamalarında zararlı olabilecek içeriğin belirli kategorilerini algılar ve üzerinde işlem gerçekleştirir. Bu örnekte bu içerik filtreleme sonuçlarına nasıl erişilmesi gösterilmektedir.

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

Sonraki adımlar

Sorun giderme

JavaScriptiçin resmi OpenAI istemci kitaplığına bakın.

Katkıda

Bu kitaplığı oluşturma, test etme ve bu kitaplığa katkıda bulunma hakkında ayrıntılı bilgi için OpenAI CONTRIBUTING.md bakın.

Bu proje katkıları ve önerileri memnuniyetle karşılar. Çoğu katkı, Katkıda Bulunan Lisans Sözleşmesi'ni (CLA) kabul ederek bize katkınızı kullanma hakları verme hakkına sahip olduğunuzu bildirmenizi gerektirir. Ayrıntılar için cla.microsoft.comadresini ziyaret edin.

Çekme isteği gönderdiğinizde, CLA botu otomatik olarak CLA sağlamanız gerekip gerekmediğini belirler ve çekme isteğini uygun şekilde süsler (örneğin, etiket, açıklama). Bot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Cla'mızı kullanarak bunu tüm depolarda yalnızca bir kez yapmanız gerekir.

Bu proje, Microsoft Açık Kaynak Kullanım Kurallarıbenimsemiştir. Daha fazla bilgi için bkz. Davranış Kuralları SSS veya ek sorularınız veya yorumlarınızla opencode@microsoft.com iletişim kurun.