İçeriğe geç

Görev öncesi token kontrolü

Bee 1.0.0-beta.16 veya üzeri gerekir. Örnekler bee token estimate içeren bir derleme gerektirir. Yardımı bee token estimate --help ile kontrol edin.

Göreve başlamadan önce ihtiyaç duyacağınızı bildiğiniz talimatları, istemi ve kaynak parçalarını seçin. bee token estimate yalnızca açıkça seçtiğiniz dosyaları ve yönlendirilmiş stdin’i okur. Başlatma, veritabanı, sağlayıcı çağrısı veya çalışma anında kodlama indirmesi olmadan çevrimdışı çalışır. Görevi yürütmez, bağlamını keşfetmez veya ajanın yapacağı işi tahmin etmez.

  1. Zorunlu talimatlar dahil bilinen bağlamı seçin. Kod incelemesinde bu; inceleme isteği, ilgili kaynak ve test parçaları olabilir. Alternatif seçimleri açıkça hazırlayın.
  2. Her seçimi aynı kodlama ve varsayımlarla ölçün. Sayıyla birlikte seçimin görevi hâlâ destekleyip desteklemediğini inceleyin.
  3. Bağlamı seçip görevi ayrıca yürütün. Daha düşük sayı tek başına kalite veya token tasarrufu kanıtı değildir; gerekli kanıtı çıkarmak ek işe yol açabilir.
  4. Sonrasında mevcut ölçülmüş kullanım komutuyla açıkça seçilmiş, desteklenen bir oturum günlüğünü inceleyin. Kayıtlı gözlemleri önceden ayırdığınız bütçeden ayrı tutun.

Aşağıdaki Bash/zsh hazırlığı çalışma ağacınızın dışında sentetik metin ve boş, özel bir Bee profili oluşturur. pwd -P fiziksel dizini çözer; macOS’ta /tmp bir sembolik bağlantı olduğundan /private/tmp altındaki fiziksel kök gerekir.

Terminal window
demo_dir="$(mktemp -d "${TMPDIR:-/tmp}/bee-token-demo.XXXXXX")"
demo_dir="$(cd "$demo_dir" && pwd -P)"
mkdir "$demo_dir/profile"
printf 'Hello world!\n' > "$demo_dir/prompt.txt"
printf 'Review the tests.\n' > "$demo_dir/context.txt"
chmod 444 "$demo_dir/prompt.txt" "$demo_dir/context.txt"
Terminal window
BEE_HOME="$demo_dir/profile" bee token estimate --root "$demo_dir" --file prompt.txt --json

Dosya, son satır sonu dahil 13 UTF-8 baytı ve 13 UTF-16 birimi içerir. Varsayılan utf16-ceil-div4@1 sezgiseli input.estimatedTokensPerCall: 4 verir. utf16Units / 4 sonucunu her girdi için yukarı yuvarlayıp toplar. Bu bir tahmindir; tokenizer sayımı veya üst sınır değildir. Birer birimlik iki girdi iki katkı yapar; birleştirilmeleri ise bir katkı verirdi.

Terminal window
printf 'Hello world!' | BEE_HOME="$demo_dir/profile" bee token estimate --stdin --encoding o200k_base --json

Bu metnin sonunda satır sonu yoktur: 12 bayt, 12 UTF-16 birimi ve o200k_base ile 3 token. Stdin yalnızca --stdin ile okunur ve yönlendirilmiş olmalıdır. Yalnızca stdin seçildiğinde kök dizin açılmaz. Tek bir --stdin seçimini tekrarlanan --file seçimleriyle birleştirebilirsiniz.

Terminal window
BEE_HOME="$demo_dir/profile" bee token estimate --root "$demo_dir" \
--file prompt.txt --file context.txt --encoding cl100k_base \
--calls 3 --output-budget 2000 --json

Dosyalar 3 ve 4 token katkı yapar: çağrı başına 7. --calls 3, her seferinde aynı seçilmiş girdiyle üç bağımsız çağrı demektir. Konuşma büyümesini, yeniden denemeleri, araçları veya sıkıştırmayı simüle etmez. --output-budget 2000, planladığınız akıl yürütme payı dahil çağrı başına ayırdığınız bütçedir; çıktıyı tahmin etmez veya üretim sınırı uygulamaz.

Senaryo alanı Değer
inputEstimatedTokens 21 = 3 × 7
outputAllocatedTokens 6000 = 3 × 2000
totalAllocatedTokens 6021 = 3 × (7 + 2000)
Terminal window
BEE_HOME="$demo_dir/profile" bee token estimate --root "$demo_dir" \
--file prompt.txt --file context.txt --encoding cl100k_base \
--calls 3 --output-budget 2000 --limit 0 --json

contributors boştur; yukarıdaki girdi ve senaryo toplamları değişmez. projection, returned: 0, omitted: 2, omittedEstimatedTokens: 7 bildirir. --limit girdi seçimini veya sayımı değil, gösterilen katkı satırlarını sınırlar. Ayrı yazılan --limit 0 biçimini kullanın; --limit=0 kabul edilmez.

Terminal window
BEE_HOME="$demo_dir/profile" bee token estimate --root "$demo_dir" \
--file prompt.txt --encoding cl100k_base \
--calls 3 --output-budget 2000 --json

Aynı kodlama, çağrı sayısı ve çıktı bütçesiyle yalnızca prompt.txt seçmek çağrı başına 3 token, senaryo girdisi için 9 token ve toplam 6009 bütçe verir. Bu karşılaştırma farklı bir seçimi ölçer: testleri inceleme talimatı çıkarılmıştır. Gerçek görevde bu eksikliğin kabul edilebilir olup olmadığını değerlendirin. Küçük sayı, eşdeğer işin veya gerçekleşmiş tasarrufun kanıtı değildir.

Terminal window
printf '' | BEE_HOME="$demo_dir/profile" bee token estimate --stdin --output-budget 0 --json

Boş metin geçerlidir: girdi sayısı sıfırdır ve açık sıfır çıktı bütçesi toplam bütçeyi sıfır yapar. Örnek 1 ve 2’de --output-budget verilmediğinden outputBudgetPerCall, outputAllocatedTokens ve totalAllocatedTokens alanları null kalır. Bilinmeyen, sıfır değildir. Açık sıfır bütçesi bile sonraki görevin gerçekten ne tüketeceğini göstermez.

--encoding, heuristic (varsayılan), o200k_base veya cl100k_base kabul eder. Açık kodlamalar paketlenmiş Microsoft.ML.Tokenizers ve eşleşen kodlama verilerinin 2.0.0 sürümünü kullanır. Seçilen uygulama altında sıradan metni kesin sayarlar. <|endoftext|> gibi özel görünen dizeler düz metin olarak kalır. Kodlama verisi eksikse encoding_unavailable döner; sezgisele sessizce geçilmez.

Varsayılan model eşlemesi veya sağlayıcı uyumluluğu iddiası yoktur. Seçili metnin kesin sayımı tam istek sayımı değildir: mesaj yapısı, gizli çerçeveleme ve seçilmemiş sistem/araç tanımları kapsam dışıdır. Her girdi ayrı sayılıp toplanır. Ayraçlarıyla birleştirilmiş metni ölçmek istiyorsanız tamamını tek dosya veya stdin girdisi olarak verin.

--json olmasa da her sonuç tek, kompakt JSON belgesi ve ardından satır sonudur. Başarılı tahminlerde schemaVersion: 1, status: complete, scope: selected_text_only bulunur. estimator yöntem ve sürümleri belirtir; input kesin bayt/birim boyutlarını ve çağrı başına token sayısını içerir.

Katkı sıra numaraları, dosya/stdin seçeneklerini verdiğiniz sırayı 1’den başlayarak izler. Satırlar önce azalan token, sonra azalan UTF-16 birimi, sonra sıra numarasına göre sıralanır. projection gösterilmeyen satırları da hesaplar. --limit varsayılanı 20, aralığı 0–64’tür. --calls varsayılanı 1, aralığı 1–1000000’dur; isteğe bağlı --output-budget 0–1000000000 kabul eder. Sayısal değerlerde işaretsiz ASCII ondalık rakamlar kullanılır.

unknown listesi gelecekteki gerçek çıktı ve akıl yürütmeyi, araç sonuçları ve turları, konuşma büyümesi ve sıkıştırmayı, seçilmeyen sistem/araç/çerçevelemeyi, önbellek davranışını ve sağlayıcı kullanımını/faturalandırmasını kapsar. money, null kalır; fiyat hesabı yapılmaz. Bu sayılardan önbellekteki token veya gerçek sağlayıcı kullanımı çıkarılamaz.

Dosya seçimleri fiziksel, mutlak --root altında göreli / yolları kullanır; kök verilmezse geçerli dizin kullanılır. Dizin taraması yapılmaz. Kök dışına çıkış, kök veya dosya yolundaki bağlantılar, hardlink’ler, aynı fiziksel dosyanın tekrar seçilmesi ve FIFO gibi normal dosya olmayan girdiler reddedilir. İzin verilen fiziksel kök içinde normal bir kopya seçin; sınırı aşmak için sembolik bağlantı kullanmayın. Yaygın hassas dosya adları reddedilir, ancak bu genel bir sır algılayıcısı değildir.

Girdi düz, kesin olarak geçerli UTF-8 olmalıdır. UTF-8 BOM, U+FEFF olarak sayılır; CRLF ve son satır sonları korunur. Kırpma, normalleştirme veya bozuk baytları değiştirme yapılmaz. Bozuk UTF-8, UTF-16/32 BOM’ları ve NUL metni reddedilir. Raporda içerik, dosya adı, yol veya özel girdi hash’i bulunmaz; komut seçimi kalıcı olarak kaydetmez. Dosyalar yeniden kontrol edilir, ancak snapshot: checked_unchanged_not_atomic atomik anlık görüntü garantisi değildir.

Sınır Davranış
Stdin dahil 64 seçili girdi Yalnızca açık seçimler
Girdi başına 256 KiB (262144 bayt); toplam 1 MiB (1048576 bayt) Sınırı aşan girdi kesilmez, reddedilir
Son satır sonu dahil 32 KiB (32768 bayt) JSON Fazla büyük çıktı parçalanmış JSON yerine output_limit verir
Kesin kodlama iş sınırı Tüm girdilerde doğal ön-token parçalarının UTF-8 bayt uzunluklarının kareleri toplamı ≤67108864 olmalıdır; tek parça en fazla 8192 bayt olabilir

Uzun, kesintisiz metin ham bayt sınırları içinde olsa bile kesin sayım iş sınırını aşabilir. Tüm tahmin tokenization_limit ile başarısız olur ve toplamlar null kalır; bölme, kesme veya başka yönteme geçiş yoktur. Kodlamalarda regex işlemi başına 250 ms zaman aşımı da vardır (encoding_timeout). 10 saniyelik kabul süresi işbirlikçi iptale dayanır; engellenen eşzamanlı dosya sistemi veya çıktı işlemleri için kesin on saniyelik bitiş sözü verilemez.

Çıkış Anlamı ve sonraki adım
0 Tam tahmin veya yardım; kapsamı, bilinmeyenleri ve gösterilmeyenleri yine inceleyin
4 Geçersiz argümanlar (invalid_usage); yazımı, aralıkları, seçimi ve yinelenen bayrakları kontrol edin
5 Reddedilen girdi, çalışma zamanı veya çıktı hatası; errorCode ve varsa errorInputOrdinal alanını inceleyin

Örneğin stdin_not_redirected boru veya yönlendirme, missing mevcut bir dosya, invalid_unicode/invalid_text geçerli düz UTF-8, file_byte_limit/total_byte_limit daha küçük açık seçim gerektirir. Yol/bağlantı retleri seçili yolun fiziksel dosya sınırına uymadığını gösterir. Girdi/çalışma zamanı hatasında status: incomplete, argüman hatasında status: invalid olur. Her ikisinde estimator, input, projection, scenario alanları null, katkı listesi boştur. Kısmi girdi toplamı yayımlanmaz. Çıktı yazma hatası aktarımda eksik bir başlangıç bırakabilir; çıkış 5 kullanılabilir bir JSON başarısı değildir.

Görevi yürütün, ardından kayıtlı kullanımı inceleyin

Bölüm başlığı “Görevi yürütün, ardından kayıtlı kullanımı inceleyin”

Görev gerçekten yürütüldükten sonra desteklenen yerel günlük ve tam native thread UUID’siyle mevcut komutu kullanın:

Terminal window
bee budget --measured --harness codex \
--session 11111111-1111-4111-8111-111111111111 \
--log /absolute/physical/path/to/rollout.jsonl --json

Örnek UUID ve yolu, incelemek istediğiniz tam thread ve günlükle değiştirin. Üç seçici de zorunludur; Bee en son oturumu otomatik bulmaz. Bağlam boyutu kılavuzu sentetik günlük örneğini, kayıtlı sayaçları, tahmini geçmiş tabanlarını ve eksik kanıtı açıklar. Response ve history akışlarını ayrı tutun; bunları toplamayın ve ön kontrol karşılaştırmalarından fatura, tam kayıt kapsamı, önbellek tasarrufu veya nedensellik çıkarmayın.

Bağlam incelemesi ve yinelenme adayları için bağlam boyutuna, sözdizimi için komut referansına bakın.