Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Token Kullanımı

Bu bölüm, LibreChat içinde token kullanımını nasıl takip edeceğinizi ve kontrol edeceğinizi kapsar. Bağlam ve maliyeti nasıl görüntüleyeceğinizi, işlemleri nasıl yapılandıracağınızı, kullanıcı bakiyelerini nasıl etkinleştireceğinizi ve bir hesaba nasıl kredi ekleyeceğinizi öğreneceksiniz.

Giriş

v0.6.0 itibarıyla LibreChat, desteklenen endpoint'ler için token kullanımını doğru bir şekilde takip eder. Tüm token işlemleri veritabanınızdaki "Transactions" koleksiyonunda saklanır. Mevcut sürümler ayrıca etkinleştirildiğinde sohbet arayüzünde gerçek zamanlı bağlam kullanımını ve maliyeti gösterir.

Şu anda, kullanıcı bakiyelerini etkinleştirerek kullanıcı token kullanımını sınırlandırabilirsiniz. Token kredi limitlerini ortam değişkenleri aracılığıyla yapılandırmak yerine, artık bu seçenekleri librechat.yaml dosyanızdaki balance bölümü altında ayarlayabilirsiniz. Maliyet değerleri varsayılan olarak gizlidir ve interface.contextCost ile etkinleştirilmelidir.

Bağlam Kullanımını ve Maliyeti Görüntüleme

LibreChat, bir konuşma devam ederken bir bağlam göstergesi (context gauge) görüntüler. Gösterge, akış sırasında kullanım olaylarından güncellenir ve şunları gösterebilir:

  • Modelin bağlam penceresine karşı mevcut istem/bağlam kullanımı
  • Hızlı token ve maliyet detayları için bir üzerine gelme özeti
  • İstem, tamamlama, önbelleğe alınmış token kullanımı, dal toplamları ve konuşma toplamları için tıklanabilir bir döküm

Kullanım dökümleri, mesajlar ve sohbetlerle birlikte kalıcı hale getirilir. Yeniden açılan sohbetler, yalnızca aktif akış oturumuna güvenmek yerine dal ve toplam kullanım/maliyet ayrıntılarını korur.

Özetleme özelliği uzun bir konuşmayı sıkıştırdığında, LibreChat sıkıştırılmış özet temelini kaydeder ve bağlam göstergesi için bunun üzerine yalnızca özet sonrası dönüşleri sayar. Kullanım ve maliyet toplamları, tüm dal harcamalarını içermeye devam eder.

Yöneticiler bu görünümleri librechat.yaml dosyasından kontrol edebilirler:

interface:
  contextUsage: true
  contextCost: true
  currency:
    code: EUR
    rate: 0.92
  • contextUsage, kullanıcıların bağlam penceresini ve token kullanım göstergesini görüp görmeyeceğini kontrol eder.
  • contextCost, kullanıcıların kullanım detaylarında maliyet değerlerini görüp görmeyeceğini kontrol eder. Varsayılan değeri false'tur; maliyetleri göstermek için true olarak ayarlayın.
  • currency, maliyet gösterimi etkinleştirildiğinde görüntülenen USD maliyetlerini statik bir çarpan kullanarak dönüştürür. İşlemler yine de LibreChat'in token kredi muhasebesi kullanılarak kaydedilir.

Özel Endpoint Token Yapılandırması

Özel endpoint'ler için, endpoints.custom[].tokenConfig ile modele özgü bağlam pencerelerini ve milyon token başına ücretleri tanımlayın:

endpoints:
  custom:
    - name: 'Mistral'
      apiKey: '${MISTRAL_API_KEY}'
      baseURL: 'https://api.mistral.ai/v1'
      models:
        default: ['mistral-large-latest']
      tokenConfig:
        mistral-large-latest:
          prompt: 2
          completion: 6
          context: 128000

Her model girişi için prompt, completion ve context gereklidir. Önbelleğe alınmış girdi kullanımını raporlayan sağlayıcılar için cacheRead ve cacheWrite eklenebilir. Birden fazla endpoint kullanan Ajanlar için LibreChat, kullanım ve maliyeti kaydederken eşleşen endpoint/model token yapılandırmasını kullanır.

Getirilen token yapılandırması, endpoint modelleri, anahtarlar, URL'ler veya başlıklar istek bağlamına göre değişebildiğinde kullanıcı kapsamıyla önbelleğe alınır; böylece izole edilmiş özel endpoint fiyatlandırması ve bağlam pencereleri ayrı tutulur.

İşlem Yapılandırması

İşlem sistemi, token kullanım kayıtlarının veritabanına kaydedilip kaydedilmeyeceğini kontrol eder. Bu, bakiye sisteminden ayrı olarak yapılandırılabilir.

İşlem Ayarları

version: 1.2.9

# Transaction settings
# Controls whether to save transaction records to the database
# Default is true (enabled)
transactions:
  enabled: false

Önemli: balance.enabled değeri true olarak ayarlandığında, transactions.enabled ayarına bakılmaksızın işlem kaydı otomatik olarak etkinleştirilir. Bu, tüm token kullanımının eksiksiz bir kaydını tutarak bakiye takibinin doğru bir şekilde çalışmasını sağlar.

Daha fazla ayrıntı için Transactions Configuration sayfasına göz atın.

Bakiye Yapılandırması

LibreChat'teki bakiye sistemi, yöneticilerin kullanıcılar için token kredi bakiyelerinin nasıl yönetileceğini yapılandırmasına olanak tanır. Tüm bakiye ayarları artık YAML yapılandırmanızda balance nesnesi altında yönetilmektedir.

Not: Bu, önceki ortam değişkenlerinin (CHECK_BALANCE ve START_BALANCE) yerini alır ve kullanıcı bakiyelerini yönetmek için daha yapılandırılmış bir yol sağlar.

Bakiye Ayarlarını Tamamla

version: 1.3.5

# Balance settings
balance:
  enabled: true # Enable token credit balances for users
  startBalance: 20000 # Initial tokens credited upon registration
  autoRefillEnabled: false # Enable automatic token refills
  refillIntervalValue: 30 # Numerical value for refill interval
  refillIntervalUnit: 'days' # Time unit for refill interval (days, hours, etc.)
  refillAmount: 10000 # Tokens added during each refill

Bakiye Ayarları Açıklandı

  • enabled: Kullanıcılar için token kredi takibini ve bakiye yönetimini etkinleştirir. true olarak ayarlandığında, sistem token kullanımını takip edecek ve bakiye limitlerini uygulayacaktır.

  • startBalance: Bir kullanıcıya kayıt sırasında tanımlanan başlangıç jeton (token) sayısını belirtir. Bu, tüm yeni kullanıcılar için başlangıç bakiyesidir.

  • autoRefillEnabled: Token kredilerinin otomatik olarak yenilenmesinin etkin olup olmadığını belirler. true olarak ayarlandığında, sistem yenileme aralığına bağlı olarak kullanıcı bakiyelerine otomatik olarak kredi ekleyecektir.

  • refillIntervalValue: Token kredilerinin otomatik olarak yenilenme aralığı için sayısal değeri belirtir. refillIntervalUnit ile birlikte çalışır.

  • refillIntervalUnit: Yenileme aralığı için zaman birimini belirtir. Desteklenen değerler arasında "seconds", "minutes", "hours", "days", "weeks" ve "months" bulunur.

  • refillAmount: Her otomatik yenileme sırasında kullanıcının bakiyesine eklenecek token sayısını belirtir.

Daha fazla ayrıntı için Balance Configuration sayfasına göz atın.

Otomatik Yenileme (Auto-Refill) Nasıl Çalışır

Bir kullanıcının bakiyesi takip edildiğinde ve autoRefill etkinleştirildiğinde, sistem bakiyeye yalnızca son yüklemeden bu yana belirtilen zaman aralığı geçtiğinde otomatik olarak kredi ekler. Bu, mevcut tarihin lastRefill tarihi ile belirtilen aralığın toplamı ile karşılaştırılmasıyla gerçekleştirilir.

Otomatik Yenileme Süreci

  1. Bir kullanıcı token harcamaya çalıştığında, sistem mevcut bakiyenin yeterli olup olmadığını kontrol eder.
  2. İşlemden sonra bakiye sıfıra veya altına düşecekse, sistem otomatik yüklemenin etkin olup olmadığını kontrol eder
  3. Otomatik doldurma (auto-refill) etkinleştirilmişse, sistem son doldurmadan bu yana geçen zaman aralığının dolup dolmadığını kontrol eder:
    • Sistem, güncel tarihi lastRefill + refillInterval ile karşılaştırır.
    • Eğer süre dolduysa, kullanıcı bakiyesine tokenlar eklenir
    • lastRefill tarihi güncel tarih ile güncellenir
  4. Bakiye yeterliyse (başlangıçta veya yeniden yüklemeden sonra) işlem devam eder

Desteklenen Zaman Birimleri

refillIntervalUnit değeri aşağıdaki değerlerden herhangi birine ayarlanabilir:

  • saniye
  • dakika
  • saat
  • gün
  • hafta
  • aylar

Örneğin, refillIntervalValue değeri 30 ve refillIntervalUnit değeri days olarak ayarlanmışsa, sistem kullanıcı bakiyesine yalnızca son yüklemeden bu yana 30 gün geçmişse refillAmount kadar token ekleyecektir.

Bakiye Senkronizasyonu

Bir kullanıcı giriş yaptığında, sistem bakiye ayarlarını mevcut küresel bakiye yapılandırmasıyla otomatik olarak senkronize eder. Bu, bakiye yapılandırmasında yapılan herhangi bir değişikliğin tüm kullanıcılara uygulanmasını sağlar.

Senkronizasyon süreci:

  1. Kullanıcının bir bakiye kaydı olup olmadığını kontrol eder
  2. Eğer bir kayıt mevcut değilse, mevcut startBalance ile bir tane oluşturur
  3. Kullanıcının otomatik yükleme ayarlarını genel yapılandırmayla eşleşecek şekilde günceller
  4. Kullanıcının yenileme aralığının ve miktarının genel ayarlarla eşleşmesini sağlar

Token Bakiyelerini Yönetme

Kullanıcı bakiyelerini manuel olarak ekleyebilir veya ayarlayabilirsiniz. Bu, özellikle geliştirme aşamasında veya gelecekte tam kapsamlı bir bakiye biriktirme sistemi (örneğin, bir yönetici paneli aracılığıyla) oluşturmayı planlıyorsanız oldukça kullanışlıdır.

Bakiyeler Ekleme

# Local Development
npm run add-balance

# Docker (default setup)
docker compose exec api npm run add-balance

# Docker (deployment setup)
docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run add-balance"
# Local Development
npm run add-balance [email protected] 1000

# Docker (default setup)
docker compose exec api npm run add-balance [email protected] 1000

# Docker (deployment setup)
docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run add-balance [email protected] 1000"

Bakiyeleri Ayarlama

Ayrıca, bir kullanıcı için bakiye belirleyebilirsiniz. Mevcut bir bakiye, yeni bakiye ile değiştirilecektir.

# Local Development
npm run set-balance

# Docker (default setup)
docker compose exec api npm run set-balance

# Docker (deployment setup)
docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run set-balance"
# Local Development
npm run set-balance [email protected] 1000

# Docker (default setup)
docker compose exec api npm run set-balance [email protected] 1000

# Docker (deployment setup)
docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run set-balance [email protected] 1000"

Bakiye listesi

# Local Development
npm run list-balances

# Docker (default setup)
docker compose exec api npm run list-balances

# Docker (deployment setup)
docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run list-balances"

Bu, kişisel kullanımınız için kendi kullanımınızı takip etmek adına iyi çalışır; 1000 kredi = $0.001 (1 mil ABD Doları)

Token Kullanımı ve Bakiye Hakkında Notlar

  • Özetleme etkinleştirildiğinde, özetlemeniz gereken içeriğin maliyeti + mesaj yükünüzün toplamı mevcut bakiyenizi aşarsa API isteği yapmanız engellenecektir.
  • Alt temsilci (subagent) alt çalıştırma modeli kullanımı, üst işlem üzerinden kaydedilir; böylece üst temsilci çalıştırmaları, devredilen kullanımı toplamlarına dahil eder.
  • İstem belirteçlerini (Prompt tokens) saymak OpenAI çağrıları için oldukça doğrudur, ancak eklentiler (plugins) için %100 kesin değildir (işlev çağırma nedeniyle). Oldukça yakın ve ihtiyatlıdır, yani sayımı 2-5 belirteç kadar daha yüksek olabilir.
  • Sistem, tamamlama belirteçleri (completion tokens) tarafından oluşturulan açıklara izin verir. Yalnızca istem (prompt) belirteçleri için yeterli bakiyenizin olup olmadığını kontrol eder ve tamamlama konusunda oldukça esnektir. Aşağıdaki grafik mantığı detaylandırmaktadır.
  • Bununla birlikte, süreç birden fazla API çağrısıyla çalıştığından, eklentiler her üretim adımında kontrol edilir. LLM'in ilk kullanıcı isteminden bu yana ürettiği her şey, aşağıda görüldüğü gibi hata mesajında kullanıcıyla paylaşılır.
  • Bu 2 adımlı bir süreç olduğundan, başlıklandırma için 150 token'lık bir tampon bellek bulunur ve bu toplamda ortalama 200 token'a denk gelir. Yetersiz bakiye durumunda, başlıklandırma herhangi bir harcama gerçekleşmeden iptal edilir ve hiçbir hata döndürülmez.

image

Daha fazla detay

kaynak: LibreChat/discussions/1640

"rawAmount": -000, // bu nedir?

Tokenizer algoritmasına göre sayıldığı şekliyle ham token miktarı.

"tokenValue": -00000, // bu nedir?

Token kredisi değeri. 1000 kredi = $0.001 (1 mil USD)

"rate": 00, // bu nedir?

Tokenların kredi olarak ücretlendirilme oranı.

Örneğin, gpt-3.5-turbo-1106, kullanıcı istemi (girdi) için 1 ve tamamlama (çıktı) için 2 oranına sahiptir.

ModelGirişÇıkış
gpt-3.5-turbo-1106$0.0010 / 1K token$0.0020 / 1K token

Sağlanan örneğe göre:

    "rawAmount": -137
    "tokenValue": -205.5
    "rate": 1.5
\text{Token Value} = (\text{Raw Amount of Tokens}) \times (\text{Rate})
137 \times 1.5 = 205.5

Ve Token Value (Token Değeri) temelinde gerçek USD harcama miktarını elde etmek için:

\frac{\text{Token Value}}{1,000,000} = \left(\frac{\text{Raw Amount of Tokens} \times \text{Rate}}{1,000,000}\right)
\frac{205.5}{1,000,000} = \$0.0002055 \text{ USD}

Özel endpoint'ler için, model bazlı hız sınırları ve bağlam pencereleri (context windows) adına librechat.yaml dosyasındaki endpoints.custom[].tokenConfig ayarını tercih edin.

Önizleme

image

image

Ek Notlar

  • Özetleme etkinleştirildiğinde, içerik ve mesaj yükünün maliyeti mevcut bakiyeyi aşarsa API istekleri engellenir.
  • Sistem, denge kontrolleri için öncelikli olarak istem (prompt) belirteçlerine odaklanarak, tamamlama (completion) belirteçleri konusunda esnek davranır.
  • İki aşamalı süreci hesaba katmak için başlıklandırma için bir arabellek (yaklaşık 150 token) eklenmiştir.
  • Token kredileri parasal değere dönüşür (örneğin, 1000 kredi = 0,001 $ USD).

Daha fazla detay ve özelleştirme için lütfen LibreChat Documentation sayfasına başvurun.

Bu rehber nasıl?