Azure AI Content Understanding client library for JavaScript - version 1.1.0

Azure AI İçerik Anlama, belgelerden, video, ses ve görüntü dosyalarından anlamsal içerik çıkaran çok modlu bir yapay zeka hizmetidir. Yapılandırılmamış içeriği, alınma ve artırılmış üretim (RAG) ve otomatik iş akışları için optimize edilmiş yapılandırılmış, makine tarafından okunabilir verilere dönüştürür.

Azure AI Content Understanding için istemci kütüphanesini şu şekilde kullanın:

  • Belge içeriğini çıkarın - Belgelerden metin, tablolar, şekiller, düzen bilgileri ve yapılandırılmış işaretleme (PDF, metinli veya el yazısıyla metinli görseller, Office belgeleri ve daha fazlası) çıkarın.
  • Ses yazısı ve analiz et - Sesli içeriği konuşmacı günlüğü ve zamanlama bilgileriyle aranabilir transkriptlere dönüştürün
  • Video içeriğini analiz et - Görsel çerçeveleri çıkar, ses parçalarını transkribe et ve video dosyalarından yapılandırılmış özetler oluştur
  • Hazır analiz cihazlarından yararlanın - finance ve vergi (faturalar, makbuzlar, vergi formları), kimlik doğrulama (pasaportlar, ehliyetler), ipotek ve kredi (kredi başvuruları, değerlemeler), satın alma ve sözleşmeler (satın alma emirleri, anlaşmalar) ve faturalandırma beyanları (fatura beyanları) dahil olmak üzere sektörler genelinde üretime hazır hazır hazır analiz cihazları kullanın
  • Özel analizörler oluşturun - Tüm dört modalitede (belgeler, video, ses ve görüntüler) için özel içerik çıkarma ihtiyaçları için alan adına özel analizörler oluşturun
  • Belgeleri ve videoyu sınıflandırın - Belge ve videodan türlerine göre otomatik olarak kategorize edin ve bilgileri çıkarın

Önemli bağlantılar:

Başlangıç Yapmak

Şu anda desteklenen ortamlar

Daha fazla detay için destek politikamız adresimize bakınız.

Önkoşullar

  • Bir Azure abonelik
  • destekli bir bölgedeMicrosoft Foundry kaynağı oluşturulmuştur>

@azure/ai-content-understanding paketini kur

JavaScript için Azure Content Understanding istemci kütüphanesini npm ile kurun:

npm install @azure/ai-content-understanding

Microsoft Foundry kaynağınızı yapılandırmak

Content Understanding SDK'yı kullanmadan önce, bir Microsoft Foundry kaynağı kurup gerekli büyük dil modellerini dağıtmanız gerekir. Content Understanding şu anda OpenAI GPT modellerini kullanıyor (örneğin gpt-4.1, gpt-4.1-mini ve metin gömme-3-large).

Adım 1: Microsoft Foundry kaynağı oluşturun

Önemli: Microsoft Foundry kaynağınızı İçerik Anlama destekleyen bir bölgede oluşturmalısınız. Mevcut bölgelerin listesi için bkz. Azure İçerik Anlama bölgesi ve dil desteği.

  1. Azure İçerik Anlama hızlı başlangıç adımlarını takip ederek Azure portal
  2. Foundry kaynağınızın uç nokta URL'sini Azure portal'dan alın:
    • Azure portal
    • Microsoft Foundry kaynağınıza gidin
    • Kaynak Yönetim>Anahtarları ve Uç noktasına gidin
    • Endpoint URL'sini kopyalayın (genellikle https://<your-resource-name>.services.ai.azure.com/)

Önemli: Gerekli İzinleri Verin

Microsoft Foundry kaynağınızı oluşturduktan sonra, varsayılan model dağıtımlarını ayarlamak için API çağrılarını etkinleştirmek için kendinize Bilişsel Hizmetler Kullanıcı rolünü vermelisiniz:

  1. Azure portal
  2. Microsoft Foundry kaynağınıza gidin
  3. Sol menüde Access Control (IAM) sayfasına gidin
  4. Ekle>Rol ataması ekle'ye tıklayın
  5. Bilişsel Hizmetler Kullanıcı rolünü seçin
  6. Kendisine (veya uygulamayı çalıştıracak kullanıcı/hizmet yöneticisine) ata.

Not: Bu rol ataması, kaynağın sahibi olsanız bile gereklidir. Bu rol olmadan, içerik anlama API'sini çağırarak önceden oluşturulmuş analizörler için model dağıtımlarını yapılandırmayı sağlayamayacaksınız.

Adım 2: Gerekli modelleri dağıtın

Önemli: Hazır ve özel analizörler büyük dil modeli dağıtımları gerektirir. Önceden oluşturulmuş analizörler ve özel analizörler kullanmadan önce en az bu modelleri dağıtmalısınız:

  • prebuilt-documentSearch, prebuilt-imageSearch, prebuilt-audioSearch, prebuilt-videoSearchgpt-4.1-mini ve metin-gömülme-3-large gerektirir
  • Diğer hazır analizörler gibiprebuilt-invoice, prebuilt-receiptgpt-4.1 ve metin gömme-3-large gerektirir

Modeli dağıtmak için:

  1. Microsoft Foundry'de, Deployments>Deploy model>Deploy base model sayfasına gidin
  2. Dağıtmak istediğiniz modeli arayın ve seçin. Şu anda, önceden oluşturulmuş analizörler , gpt-4.1, ve gibi modellere gpt-4.1-miniihtiyaç duyartext-embedding-3-large
  3. Dağıtımı tercih ettiğiniz ayarlarla tamamlayın
  4. Seçtiğiniz dağıtım adını not edin (geleneksel olarak, model adını dağıtım adı olarak kullanın, örneğin gpt-4.1 model için gpt-4.1 )

Bu süreci önceden hazırlanmış analizörlerinizin ihtiyaç duyduğu her model için tekrarlayın.

Modelleri dağıtma hakkında daha fazla bilgi için Microsoft Foundry portalında model dağıtımları oluştur Create model dağıtımları sayfasına bakınız.

Adım 3: Model dağıtımlarını yapılandırmak (önceden oluşturulmuş analizörler için gereklidir)

ÖNEMLI: Bu, Microsoft Foundry kaynağına göre tek seferlik bir kurulumdur ve dağıttığınız modelleri önceden oluşturulmuş analizörler ve özel modeller tarafından gerekenlerle eşler. Birden fazla Microsoft Foundry kaynağınız varsa, her birini ayrı ayrı yapılandırmanız gerekir.

Microsoft Foundry kaynağınızda varsayılan model eşlemelerini yapılandırmanız gerekir. Bu, SDK kullanılarak programatik olarak yapılabilir. Konfigürasyon, dağıttığınız modelleri (şu anda gpt-4.1, gpt-4.1-mini ve metin gömme-3-large) önceden oluşturulmuş analizörlerin gerektirdiği büyük dil modelleriyle eşler.

Kod kullanarak model dağıtımlarını yapılandırmak için tam bir örnek için Update Defaults örneğine bakınız. İşte hızlı bir özet:

import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";

const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const client = new ContentUnderstandingClient(endpoint, new DefaultAzureCredential());

// Map your deployed models to the models required by prebuilt analyzers
const updatedDefaults = await client.updateDefaults({
  modelDeployments: {
    "gpt-4.1": process.env["GPT_4_1_DEPLOYMENT"]!,
    "gpt-4.1-mini": process.env["GPT_4_1_MINI_DEPLOYMENT"]!,
    "text-embedding-3-large": process.env["TEXT_EMBEDDING_3_LARGE_DEPLOYMENT"]!,
  },
});

console.log("Model deployments configured successfully!");

Not: Yapılandırma Microsoft Foundry kaynağınızda kalır, bu yüzden bunu her kaynak için sadece bir kez çalıştırmanız gerekir (veya dağıtım adlarınızı değiştirdiğinizde).

İstemcinin kimliğini doğrulama

İstemciyi doğrulamak için Microsoft Foundry kaynak uç noktanız ve kimlik bilgilerinize ihtiyacınız var. Bir API anahtarı veya Microsoft Entra ID doğrulaması kullanabilirsiniz.

DefaultAzureCredential Kullanımı

En basit kimlik doğrulama yolu, birden fazla kimlik doğrulama yöntemini destekleyen ve hem yerel geliştirme hem de üretim ortamlarında iyi çalışan , kullanmaktır DefaultAzureCredential.

Aşağıda gösterilen DefaultAzureCredential sağlayıcısını veya Azure SDK ile sağlanan diğer kimlik bilgileri sağlayıcılarını kullanmak için lütfen @azure/identity paketini yükleyin:

npm install @azure/identity

Node.js ve Node benzeri ortamları kullanarak istemcinin kimliğini doğrulamak için DefaultAzureCredential sınıfını kullanabilirsiniz.

import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";

const client = new ContentUnderstandingClient("<endpoint>", new DefaultAzureCredential());

Tarayıcı ortamları için, kimlik doğrulama için InteractiveBrowserCredential paketinden @azure/identity kullanın.

import { InteractiveBrowserCredential } from "@azure/identity";
import { ContentUnderstandingClient } from "@azure/ai-content-understanding";

const credential = new InteractiveBrowserCredential({
  tenantId: "<YOUR_TENANT_ID>",
  clientId: "<YOUR_CLIENT_ID>",
});
const client = new ContentUnderstandingClient("<endpoint>", credential);

API anahtarı kullanımı

Microsoft Foundry kaynağınızdan bir API anahtarı kullanarak da kimlik doğrulaması yapabilirsiniz:

import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { AzureKeyCredential } from "@azure/core-auth";

const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const apiKey = process.env["CONTENTUNDERSTANDING_KEY"]!;
const client = new ContentUnderstandingClient(endpoint, new AzureKeyCredential(apiKey));

API anahtarınızı almak için:

  1. Azure portal
  2. Microsoft Foundry kaynağınıza gidin
  3. Kaynak Yönetim>Anahtarları ve Uç noktasına gidin
  4. Anahtarlardan birini kopyalayın (Key1 veya Key2)

Kimlik doğrulama hakkında daha fazla bilgi için bkz. Azure Identity client library.

JavaScript Paketi

Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl to do hakkında detaylar için lütfen paketleme dokümantasyonumuz adresimize bakınız.

Temel kavramlar

Önceden oluşturulmuş çözümleyiciler

Content Understanding, herhangi bir yapılandırma olmadan kullanıma hazır zengin bir ön geliştirilmiş analizör seti sunar. Bu analizörler, binlerce gerçek dünya belge örneğinin bilgi tabanlarıyla desteklenerek belge yapısını anlamalarını ve format ile içerik farklılıklarına uyum sağlamalarını sağlar.

Hazır analizörler birkaç kategoriye ayrılmıştır:

  • RAG analizörleri - Geri alım ile artırılmış üretim senaryoları için semantik analiz ve indirim çıkarımı için optimize edilmiştir. Bu analizörler, her içerik öğesi için markdown ve bir paragraf Summary döndürür:
    • prebuilt-documentSearch - Belgelerden (PDF, görseller, Office belgeleri) içerik çıkararak düzen koruma, tablo algılama, şekil analizi ve yapılandırılmış markdown çıktısı ile çıkarır. RAG senaryoları için optimize edildi.
    • prebuilt-imageSearch - Bağımsız görüntüleri analiz eder ve görüntü içeriğinin bir paragraflık açıklamasını sağlar. Görüntü anlama ve arama senaryoları için optimize edilmiş. Metin içeren görseller için (el yazısı metin dahil) .prebuilt-documentSearch
    • prebuilt-audioSearch - Konuşmacı günlüğü, zaman bilgileri ve konuşma özetleriyle sesli içeriği transkribe eder. Çok dilli transkripsiyonu destekler.
    • prebuilt-videoSearch - Video içeriğini görsel çerçeve çıkarımı, sesli transkripsiyon ve yapılandırılmış özetlerle analiz eder. Görsel ve işitsel içeriğin zamansal hizalanmasını sağlar ve video başına birden fazla segment döndürebilir.
  • İçerik çıkarma analizörleri - OCR ve düzen analizine odaklanın (örneğin, prebuilt-read, prebuilt-layout)
  • Temel analizörler - Özel analizörler için ana analizör olarak kullanılan temel içerik işleme yetenekleri (örneğin, prebuilt-document, prebuilt-image, prebuilt-audioprebuilt-video)
  • Alan spesifik analizörler - Finansal belgeler (faturalar, makbuzlar, banka ekstreleri), kimlik belgeleri (pasaportlar, ehliyetler), vergi formları, ipotek belgeleri ve sözleşmeler ile fatura beyanları gibi yaygın belge kategorileri için önceden yapılandırılmış analizörler
  • Yardımcı analizörler - Şema üretimi ve alan çıkarımı için özel araçlar (örneğin, prebuilt-documentFieldSchema, prebuilt-documentFields)

Mevcut hazır analizörlerin ve yeteneklerinin tam listesi için Prebuilt analizör dokümantasyonu'a bakınız.

Özel analizörler

Çok modlu içerik işleme (belgeler, görseller, ses, video) için özel alan şemalarına sahip özel analizörler oluşturabilirsiniz. Özel analizörler, kullanım alanınıza özel bilgileri çıkarmanızı sağlar.

İçerik türleri

API, girdiye göre farklı içerik türlerini döndürür:

  • document - Belge dosyaları için (PDF, HTML, görseller, Word, Excel, PowerPoint gibi Office belgeleri ve daha fazlası). Sayfa sayısı ve MIME tipi gibi temel bilgiler sağlar. Sayfalar, tablolar, şekiller, paragraflar ve daha birçok detay dahil olmak üzere ayrıntılı bilgi edinin.
  • audioVisual - Ses ve görüntü dosyaları için. Zaman bilgisi (başlangıç/bitiş saatleri) ve kare boyutları (video için) gibi temel bilgiler sağlar. Transkript cümleleri, zamanlama bilgileri ve video için anahtar çerçeve referansları gibi detaylı bilgileri edinin.

Zaman uyumsuz işlemler

İçerik Anlama işlemleri, asenkron ve uzun süreli işlemlerdir. İş akışı şu şekildedir:

  1. Analiz Başlat - Analiz işlemini başlat (hemen işlem konumuyla döner)
  2. Sonuç anketi - Analiz tamamlanana kadar operasyon konumunu sorgun
  3. Süreç Sonuçları - Yapılandırılmış sonuçları çıkarın ve görüntüleyin

SDK, kullanıldığında pollUntilDone()otomatik olarak sorgulama yapan poller türleri sağlar. Analiz işlemleri için, SDK işlem ID'sine access sağlayan bir poller döner. Bu işlem kimliği ve getResultFile yöntemlerle deleteResult kullanılabilir.

Ana sınıflar

  • ContentUnderstandingClient - İçerik analizi ile analizörlerin oluşturulması, yönetimi ve yapılandırması için ana istemci
  • AnalysisResult - İçerik öğeleri, markdown ve meta veriler dahil olmak üzere analiz operasyonunun yapılandırılmış sonuçlarını içerir

İş parçacığı güvenliği

Tüm istemci örnek yöntemlerinin iş parçacığı güvenli ve birbirinden bağımsız olduğunu garanti ediyoruz. Bu, istemci örneklerini yeniden kullanma önerisinin iş parçacıkları arasında bile her zaman güvenli olmasını sağlar.

Ek kavramlar

İstemci seçenekleri | Yanıt'a erişim | Uzun süreli işlemler | Hataların işlenmesi | Diagnostics | İstemci ömrü

Örnekler

Farklı API'lerle Samples ile tanışabilirsiniz.

Örnekler şunları gösteriyor:

  • Yapılandırma - Önceden hazırlanmış analizörler ve özel analizörler için model dağıtım varsayımlarını yapılandırma
  • Belge İçerik Çıkarma - PDF'ler ve görsellerden yapılandırılmış markdown içeriği çıkarmak prebuilt-documentSearch, RAG (Retrieval-Augmented Oluşturma) uygulamaları için optimize edilmiş olarak
  • Çok Modal İçerik Analizi - Tüm modaliteler boyunca URL'lerden içerik analizi: belgelerden, görsellerden, ses ve videodan prebuilt-documentSearchprebuilt-imageSearch, , prebuilt-audioSearch, ve kullanılarak işaret indirimi ve özetleri çıkarınprebuilt-videoSearch
  • Domain-Specific Analizi - Faturalardan yapılandırılmış alanlar çıkararak prebuilt-invoice
  • Gelişmiş Belge Özellikleri - Belgelerden grafikler, bağlantılar, formüller ve açıklamalar çıkarın
  • Özel Analizörler - Özel çıkarma ihtiyaçları için saha şemalarıyla özel analizörler oluşturun
  • Belge Sınıflandırması - Belgeleri kategorize etmek için sınıflandırıcılar oluşturun ve kullanın
  • Analizör Yönetimi - Analizörleri alın, listeleyin, güncelleyin, kopyalayın ve silinin
  • Sonuç Yönetimi - Video analizinden sonuç dosyalarını alın ve analiz sonuçlarını silin

Belgelerden markdown içeriğini çıkarma

prebuilt-documentSearch Analizörü kullanarak belgelerden markdown içeriğini çıkarabilirsiniz:

import { ContentUnderstandingClient } from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";

const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const client = new ContentUnderstandingClient(endpoint, new DefaultAzureCredential());

const documentUrl = "https://example.com/sample_invoice.pdf";

// Analyze document using prebuilt-documentSearch
const poller = client.analyze("prebuilt-documentSearch", [{ url: documentUrl }]);
const result = await poller.pollUntilDone();

// Extract markdown content
if (result.contents && result.contents.length > 0) {
  const content = result.contents[0];
  console.log("Markdown Content:");
  console.log(content.markdown);

  // Access document-specific properties
  if (content.kind === "document") {
    console.log(`Pages: ${content.startPageNumber} - ${content.endPageNumber}`);
  }
}

Faturalardan yapılandırılmış alanlar çıkarın

prebuilt-invoice Analizörden yapılandırılmış fatura alanlarını çıkarabilirsiniz:

import {
  ContentUnderstandingClient,
  type DocumentContent,
  type ContentFieldUnion,
} from "@azure/ai-content-understanding";
import { DefaultAzureCredential } from "@azure/identity";

const endpoint = process.env["CONTENTUNDERSTANDING_ENDPOINT"]!;
const client = new ContentUnderstandingClient(endpoint, new DefaultAzureCredential());

const invoiceUrl = "https://example.com/invoice.pdf";

// Analyze invoice using prebuilt-invoice analyzer
const poller = client.analyze("prebuilt-invoice", [{ url: invoiceUrl }]);
const result = await poller.pollUntilDone();

if (result.contents && result.contents.length > 0) {
  const content = result.contents[0] as DocumentContent;

  // Helper function to extract field values
  const getFieldValue = (field: ContentFieldUnion | undefined): string | undefined => {
    if (!field) return undefined;
    if ("valueString" in field) return field.valueString;
    if ("valueDate" in field) return field.valueDate;
    if ("valueNumber" in field) return String(field.valueNumber);
    return undefined;
  };

  // Extract invoice fields
  const customerName = getFieldValue(content.fields?.["CustomerName"]);
  const invoiceTotal = getFieldValue(content.fields?.["InvoiceTotal"]);
  const invoiceDate = getFieldValue(content.fields?.["InvoiceDate"]);

  console.log(`Customer Name: ${customerName ?? "(None)"}`);
  console.log(`Invoice Total: ${invoiceTotal ?? "(None)"}`);
  console.log(`Invoice Date: ${invoiceDate ?? "(None)"}`);
}

Tam örnekler için samples dizinine bakınız.

Sorun giderme

Yaygın sorunlar

Hata: "Access geçersiz abonelik anahtarı veya yanlış API uç noktası nedeniyle reddedildi"

  • Uç nokta URL'nizin doğru olduğunu ve ardından çizgiyi içerdiğini doğrulayın
  • API anahtarınızın geçerli olduğundan veya Microsoft Entra ID kimlik bilgilerinizin doğru izinlere sahip olduğundan emin olun
  • Hesabınıza Cognisel Hizmetler Kullanıcı rolünün atadığından emin olun

Hata: "Model dağıtımı bulunmadı" veya "Varsayılan model dağıtımı konfigurement edilmedi"

  • Microsoft Foundry'de gerekli modelleri (gpt-4.1, gpt-4.1-mini, metin gömme-3-large) dağıttığınızdan emin olun
  • Varsayılan model dağıtımlarını yapılandırdığınızı doğrulayın ( bkz. Model Dağıtımlarını Yapılandırmak)
  • Dağıtım adlarınızın varsayılan ayarlarda yapılandırdığınızla eşleşip eşleşmediğine bakın

Hata: "İşlem başarısız oldu" veya zaman aşımına

  • İçerik Anlama işlemleri asenkron ve tamamlanması zaman alabilir
  • Sonuçlar için doğru şekilde anket pollUntilDone() yapan nesne kullandığınızdan emin olun
  • Arıza hakkında daha fazla detay için operasyon durumunu kontrol edin

Ağaç kesimi

Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, setLogLevel'de @azure/logger çağrılarak çalışma zamanında kayıt etkinleştirilebilir:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Logların nasıl etkinleştirileceğine dair daha ayrıntılı talimatlar için @azure/logger paketi docs adresine bakabilirsiniz.

Testing

Bu SDK, farklı modlarda çalıştırılabilen kapsamlı testler içerir.

Hızlı başlangıç

# Install dependencies
pnpm install

# Build the SDK
npx turbo build --filter=@azure/ai-content-understanding...

# Run tests in playback mode (no Azure resources needed)
pnpm test

Test modları

  • Playback Mode (varsayılan): Önceden kaydedilmiş HTTP etkileşimlerini kullanır, Azure kaynak gerektirmez
  • Kayıt Modu: Canlı Azure servislerine karşı çalışır ve gelecekteki oynatma için etkileşimleri kaydeder
  • Canlı Modu: Canlı Azure servislerine karşı kayıt yapmadan çalışır

Canlı/kayıt testleri için ortam kurulumu

  1. Kopyalatest/sample.env:test/.env

    cp test/sample.env test/.env
    
  2. Gerçek değerlerinizi düzenleyin test/.env ve doldurun:

    • CONTENTUNDERSTANDING_ENDPOINT: Microsoft Foundry kaynak uç noktanız
    • CONTENTUNDERSTANDING_KEY: API anahtarınız (DefaultAzureCredential kullanıyorsa isteğe bağlı)
    • Model dağıtım adları (önceden oluşturulmuş analizörler için gereklidir)

Kayıt modunda testleri çalıştırın

Yeni test etkileşimlerini kaydetmek veya mevcut olanları güncellemek için:

# Run tests in record mode
TEST_MODE=record pnpm test

Oynatma modunda testler çalıştırın

Azure kaynakları olmadan testleri çalıştırmak için (önceden kaydedilmiş etkileşimler kullanılarak):

# Simply run tests (playback is the default mode)
pnpm test

# Or explicitly set playback mode
TEST_MODE=playback pnpm test

Paket kapsamlı / daha hızlı iş akışları

  • Sadece bu paketi ve bağımlılıklarını oluşturun:

    npx turbo build --filter=@azure/ai-content-understanding... --token 1
    
  • Daha hızlı yineleme için yalnızca Node testlerini çalıştırın (tarayıcı testlerini atlayın):

    TEST_MODE=record pnpm test:node   # or TEST_MODE=playback pnpm test:node
    

Ortam değişkenleri

Kimlik bilgilerini birden fazla şekilde ayarlayabilirsiniz:

  1. Tercih edilen: Değerlerinizi kopyalayıp test/.env doldurarak oluşturun test/sample.env

  2. Geri dönüş: Paket köküne a'yı .env yerleştirin (aynı dizin)package.json

  3. Shell dışatı: Kimlik bilgilerini doğrudan shell'e aktarın:

    export CONTENTUNDERSTANDING_ENDPOINT="https://<your-resource>.services.ai.azure.com/"
    export CONTENTUNDERSTANDING_KEY="<your_key_here>"
    TEST_MODE=record pnpm test:node
    

Hata ayıklama ipuçları

Kayıt modunda testler çalıştırılırken, test kurulumu tarafından yazdırılan hata ayıklama satırlarına dikkat edin:

DEBUG ENV ENDPOINT DEFINED: true
DEBUG ENV KEY DEFINED: true

Önemli: Gerçek anahtarları BAĞLAMAYIN. Şablonu koruyun test/sample.env ve içinizde olduğundan test/.envemin olun.gitignore.

Sorun giderme testleri

  • "anahtar boş olmayan bir dizi olmalı": Test süreci sizin CONTENTUNDERSTANDING_KEY'ni bulamadı. Testleri çalıştırmadan önce test/.env paket-kökünün .env mevcut olduğundan ve anahtarı içerdiğinden emin olun (veya kabuğuna dışa aktarın).
  • "Geçersiz istek" LRO hataları: Hizmetinizin/bölgenizin testlerde kullanılan analizörü desteklediğinden ve ağ access URL tabanlı girişler için kullanılabilir olduğundan emin olun.

Yerel Olarak Çalıştırılan Örnekler

Örnek dizinleri, bağımlılık çatışmalarını önlemek için pnpm çalışma alanından hariç tutulur. Paketin yerel geliştirme sürümüyle örnekleri çalıştırmak için:

Not:pnpm link Çalıştırmak ve pnpm install örnekler klasörlerinin içinde örnekler dizinleri gibi yerel dosyaları package.json güncellecek pnpm-lock.yaml . Bu değişiklikler yalnızca yerel testler için geçerlidir ve kontrol edilmemelidir. Eğer yanlışlıkla değiştirirseniz, geri almak için kullanın git restore <path> .

  1. Paketi oluştur:

    npx turbo build --filter=@azure/ai-content-understanding...
    
  2. Yerel paketi örnek dizinlerinde bağlayın:

    cd sdk/contentunderstanding/ai-content-understanding/samples/v1/typescript
    pnpm link ../../../
    cd ../javascript
    pnpm link ../../../
    
  3. Bağımlılıkları örnek dizinlerine kurun:

    cd sdk/contentunderstanding/ai-content-understanding/samples/v1/typescript
    pnpm install
    cd ../javascript
    pnpm install
    

Alternatif (package.json/lockfile değişikliği yok)

Yerel paketi örnek değiştirmeden package.json kullanmak istiyorsanız, pnpm-lock.yamlpaketlenmiş bir tarball'dan kaydetmeden kurabilirsiniz:

  1. Paketi oluştur:

    npx turbo build --filter=@azure/ai-content-understanding...
    
  2. Yerel bir tarball oluşturun:

    cd sdk/contentunderstanding/ai-content-understanding
    pnpm pack --pack-destination /tmp
    
  3. Tarball'u örneklere takın (kayıt yok, kilit dosyası yok):

    cd sdk/contentunderstanding/ai-content-understanding/samples/v1/typescript
    npm install --no-save --no-package-lock /tmp/azure-ai-content-understanding-*.tgz
    cd ../javascript
    npm install --no-save --no-package-lock /tmp/azure-ai-content-understanding-*.tgz
    

Bir örnek çalıştırmak

Bağımlılıklar kurulduktan sonra bireysel örnekleri çalıştırabilirsiniz.

Ortam değişkenlerinin kurulması:

Dosyayı sample.env kopyalayarak örnek dizin kökünde bir .env dosya oluşturun. Paket kökünden aşağıdaki komutları çalıştırın (sdk/contentunderstanding/ai-content-understanding):

# For TypeScript samples
cp sample.env samples/v1/typescript/.env

# For JavaScript samples
cp sample.env samples/v1/javascript/.env

Sonra dosyayı .env düzenle ve gerçek değerlerinizi doldurun:

CONTENTUNDERSTANDING_ENDPOINT=https://<your-resource>.services.ai.azure.com/
CONTENTUNDERSTANDING_KEY=<your-api-key>

Not: Dosya, .env örneğin klasör kökünde (aynı seviyede) package.jsonolmalı, içinde src/ veya dist/.

TypeScript örnekleri:

cd samples/v1/typescript
npm run build
node dist/analyzeBinary.js

JavaScript örnekleri:

cd samples/v1/javascript
node analyzeBinary.js

Tam kurulum talimatları ve mevcut örnekler için bkz:

Sonraki Adımlar

Contributing

Bu kütüphaneye katkıda bulunmak isterseniz, kodun nasıl oluşturulacağı ve test edileceği hakkında daha fazla bilgi edinmek için lütfen katkı rehberi adresini okuyun.