İçeriğe geç
getnextpdf.com

Pro sürüm

Accelerator

Accelerator, toplu görüntü yeniden sıkıştırmasını, PDF ayrıştırmasını ve metin gömmeyi, birlikte konumlandırılmış bir CPU yardımcı bileşenine (sidecar) boşaltır. Yardımcı bileşen erişilemez olduğunda, her işlem süreç içi PHP yoluna geri döner; böylece çağıranlar her iki durumda da aynı sonuçları gözlemler.

Bu yetenek NextPDF Pro (nextpdf/pro) ile sevk edilir ve bir Pro katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve lisans alın.

Accelerator’ın özellik başına ayrı bir bayrağı yoktur. Hızlandırılmış yol, çalışma zamanında bir yardımcı bileşen erişilebilirlik denetimiyle (ProAcceleratorProvider::isAvailable()) seçilir; yardımcı bileşen erişilemez olduğunda, bunun yerine süreç içi PHP yolu çalışır.

Terminal window
composer require nextpdf/pro:^3

Premium paketi, nextpdf/pro kodunu NextPDF\Pro\Accelerator ad alanı altında kurar. nextpdf/premium meta paketi ayrıca Enterprise yeteneklerini de kurar; Accelerator’ın kendisi bir Pro katmanı özelliğidir.

ProAcceleratorProvider giriş noktasıdır. Tembel olarak dört hizmet oluşturur:

  • Pro PdfOptimizer’ı sarmalayan ve toplu görüntü işini yardımcı bileşene boşaltan bir hızlandırılmış optimizer.
  • Pro PdfDiffer’ı sarmalayan bir hızlandırılmış differ; yardımcı bileşen yapı ayrıştırmasını paralelleştirirken diff algoritmasının kendisi PHP’de çalışır.
  • Yardımcı bileşen tarafından barındırılan bir all-MiniLM-L6-v2 ONNX modelini kullanarak 384 boyutlu vektörler döndüren bir CPU gömme hizmeti.
  • Bir koleksiyon tanımlayıcısıyla anahtarlanan bellek içi bir HNSW dizini oluşturan ve arayan bir CPU vektör dizini.

Tasarım, alan mantığını PHP’de tutar. Yardımcı bileşen, paralelleştirilebilir, CPU’ya bağlı işi (görüntü dönüştürme, çok belgeli ayrıştırma, ONNX çıkarımı, vektör araması) gerçekleştirir. Her hızlandırılmış yolun, eşdeğer sonuçlar üreten belirleyici bir PHP yedeği vardır.

Yük taşıyan karar, doğruluğun asla yardımcı bileşene bağlı olmamasıdır. Alan mantığı PHP’de kalır; yardımcı bileşen yalnızca paralelleştirilebilir, CPU’ya bağlı işi gerçekleştirir. Optimizer ve differ (AcceleratedOptimizer, AcceleratedDiffer) belirleyici bir PHP yedeği tutar; böylece eksik bir yardımcı bileşen sonuçları değil, zamanlamayı değiştirir. Yalnızca PHP eşdeğeri olmayan iki işlem — CpuEmbeddingService ve CpuVectorIndex — bozulmak yerine kapalı biçimde başarısız olur (fail closed). Orada sessizce yanlış bir yanıt, açık bir hatadan daha kötü olurdu. Bu ayrım, çağıranlar tek bir kod yolu ve tek bir güven sınırı korurken verimin yardımcı bileşen çekirdekleriyle ölçeklenmesini sağlar.

Tasarım arka planı: Yüksek hacimli belge oluşturma.

  • ProAcceleratorProvider::isAvailable(), yardımcı bileşenin yanıt verip vermediğini döndürür. Çağıranlar buna göre dallanabilir, ancak zorunda değildir: optimizer ve differ otomatik olarak geri döner.
  • embedding()->embed(), tek bir 384 elemanlı vektör döndürür; batchEmbed(), girdi başına bir vektör döndürür ve boş bir girdi listesini InvalidArgumentException ile reddeder.
  • vectorIndex($collectionId)->build(), vectors ve ids’in aynı uzunlukta olmasını gerektirir ve boş bir girdiyi işlemsiz (no-op) olarak ele alır.
  • vectorIndex()->search($queryVector, $topK), sıralanmış sonuçlar döndürür; delete(), HNSW dizini için desteklenmez ve çağrıyı reddeder — çağıranlar bunun yerine dizini yeniden oluşturur.
  • Gömme hizmeti ve vektör dizini yardımcı bileşeni gerektirir; ONNX çıkarımı veya HNSW araması için bir PHP eşdeğeri olmadığından, sessizce bozulmak yerine bir “kullanılamıyor” hatası yükseltirler.
  • Optimizer ve differ, yardımcı bileşen başarısızlığında asla hata yükseltmez; şeffaf olarak PHP yoluna düşerler.

Aşağıdaki, belgelenen genel API’yi (ProAcceleratorProvider) yansıtır. Depo, bu modül için çalıştırılabilir bir örnek sevk etmez.

use NextPDF\Pro\Accelerator\ProAcceleratorProvider;
$provider = new ProAcceleratorProvider($spectrumClient);
$result = $provider->optimizer()->optimizeBatch([
'invoice-1' => $pdfBytesA,
'invoice-2' => $pdfBytesB,
]);
foreach ($result->getItems() as $item) {
// Per-document optimization outcome.
}
use NextPDF\Pro\Accelerator\ProAcceleratorProvider;
$provider = new ProAcceleratorProvider($spectrumClient);
if ($provider->isAvailable()) {
$index = $provider->vectorIndex('contracts');
$index->build($vectors, $ids);
$hits = $index->search($queryVector, topK: 10);
} else {
// No PHP equivalent for HNSW search: route to your own retrieval path
// or surface a degraded-capability message.
}

ProAcceleratorProvider’ı kapsayıcınız aracılığıyla bir tekil (singleton) olarak bağlayın; böylece optimizer ve differ örnekleri yeniden kullanılır. Gömme ve vektör-dizini çağrılarını, yardımcı bileşeni gerektiriyor olarak ele alın.

  • Vektör dizini, yardımcı bileşen süreç belleğinde yaşar ve koleksiyon tanımlayıcısıyla anahtarlanır. Bir yardımcı bileşen yeniden başlatması tüm dizinleri temizler; yeniden başlatmadan sonra yeniden oluşturun.
  • Vektör dizini üzerinde count(), yardımcı bileşen erişilemez olduğunda hata yükseltmek yerine 0 döndürür.
  • Optimizer ve differ hızlandırması en iyi çabadır; bir toplu işlem ortasındaki bir yardımcı bileşen hatası, o çağrı için sessiz bir geri dönüşe neden olur; böylece doğruluk değil, zamanlama değişir.

Hızlandırma, CPU’ya bağlı toplu işi hedefler: paralel görüntü dönüştürme, çok belgeli ayrıştırma ve vektör araması. NextPDF burada sabit bir verim çarpanı yayımlamaz; kazançlar, belge karışımına, görüntü yoğunluğuna, yardımcı bileşen çekirdek sayısına ve toplu işlem boyutuna bağlıdır. Belirli bir sayıya güvenmeden önce kendi ortamınızda ölçün. PHP yedeği, tasarım gereği tek iş parçacıklıdır.

Bu modül, belgeleri ve vektörleri birlikte konumlandırılmış yardımcı bileşene, yapılandırılmış taşıması üzerinden gönderir. Yardımcı bileşeni güven sınırınızın bir parçası olarak ele alın ve aynı ana makinede veya özel bir ağ segmentinde dağıtın. Modül, gönderimden önce girdi boyutunu ve şeklini doğrular. Hiçbir belge içeriğini günlüğe kaydetmez.

Bu modül kendisi hiçbir biçim uygunluğu işi gerçekleştirmez; optimizasyonu ve diff’lemeyi Pro Optimizer ve Diff modüllerine devreder. ISO 32000-2 referansları için bu modüllere bakın. Bu sayfa için uygunluk kanıtı, belgelenen genel sınıf sözleşmelerinden ve bunların birim testlerinden alınmıştır; yazım zamanında RAG bütüncesi kullanılamadığı için burada hiçbir harici madde tanımlayıcısı ileri sürülmez.

Enterprise, Accelerator davranışını değiştirmez. Enterprise, başka yerde belgelenen daha yüksek katmanlı uyumluluk, arşivleme ve imza yaşam döngüsü özellikleri ekler; bunlar bu modülün kapsamı dışındadır ve Accelerator’ı kullanmak için gerekli değildir.

Pro olmadan, NextPDF Core’un süreç içi optimizasyonunu ve diff’lemesini kullanın. Bu modüldeki hızlandırılmış yollar, yardımcı bileşen yoksa aynı PHP davranışına indirgenir.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. Dahilî ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.