Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir bakışta
Hedef: LLM token hız sınırlarını test edin
Süre: 10 dakika
Eklentiler:LanguageModelRateLimitingPlugin
Önkoşullar:Geliştirme Ara Sunucusunu Ayarlama
Dil modellerini kullanan uygulamalar oluştururken, uygulamanızın belirteç tabanlı hız sınırlamasını nasıl işlediğini test etmelisiniz. Geliştirme Proxy'si , LanguageModelRateLimitingPlugin kullanarak dil modeli API'lerinde belirteç sınırlarının benzetimini yapmanızı sağlar.
Dil modeli API'lerinde belirteç sınırlarının benzetimini yapın
Başlamak için yapılandırma dosyanızda öğesini LanguageModelRateLimitingPlugin etkinleştirin.
Dosya: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "LanguageModelRateLimitingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "languageModelRateLimitingPlugin",
"urlsToWatch": [
"https://api.openai.com/*",
"http://localhost:11434/*"
]
}
]
}
Tavsiye
Eklenti, Ollama gibi yerel dil modelleri de dahil olmak üzere OpenAI uyumlu tüm API'lerle çalışır. Test etmek istediğiniz tüm dil modeli API uç noktalarını urlsToWatch özelliğine ekleyin.
Ardından eklentiyi istediğiniz belirteç sınırları ve zaman penceresiyle yapılandırın.
Dosya: devproxyrc.json (belirteç sınırlarıyla birlikte)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "LanguageModelRateLimitingPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "languageModelRateLimitingPlugin",
"urlsToWatch": [
"https://api.openai.com/*",
"http://localhost:11434/*"
]
}
],
"languageModelRateLimitingPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelratelimitingplugin.schema.json",
"promptTokenLimit": 1000,
"completionTokenLimit": 500,
"resetTimeWindowSeconds": 60,
"whenLimitExceeded": "Throttle"
}
}
Bu yapılandırma, 60 saniyelik bir pencerede en fazla 1.000 istem belirteci ve 500 tamamlama belirteci sağlar. İki sınırdan biri aşıldığında, sonraki istekler standart bir 429 yanıtıyla kısıtlanır.
Geliştirme Proxy'sini yapılandırma dosyanızla başlatın ve uygulamanızı kullanarak dil modeli istekleri oluşturun. Eklenti gerçek API yanıtlarından belirteç tüketimini izler ve sınırlar aşıldığında istekleri kısıtlar.
Özel hata yanıtlarıyla test edin
Belirteç sınırları aşıldığında whenLimitExceeded değerini Custom olarak ayarlayıp bir özel yanıt dosyası oluşturarak özel yanıtlar da yapılandırabilirsiniz.
Dosya: devproxyrc.json (yalnızca languageModelRateLimitingPlugin bölümü)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 500,
"completionTokenLimit": 300,
"resetTimeWindowSeconds": 120,
"whenLimitExceeded": "Custom",
"customResponseFile": "token-limit-response.json"
}
}
İstediğiniz hata biçimiyle özel yanıt dosyasını oluşturun:
Dosya: token-limit-response.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelratelimitingplugin.customresponsefile.schema.json",
"statusCode": 429,
"headers": [
{
"name": "retry-after",
"value": "@dynamic"
},
{
"name": "content-type",
"value": "application/json"
}
],
"body": {
"error": {
"message": "Token quota exceeded. Your application has consumed all available tokens for this time period.",
"type": "quota_exceeded",
"code": "TOKENS_EXHAUSTED",
"details": {
"quota_type": "tokens",
"retry_after_seconds": "@dynamic"
}
}
}
}
Yeniden @dynamic deneme sonrası üst bilgilerinin değeri, belirteç sınırları sıfırlanıncaya kadar kalan saniyeleri otomatik olarak hesaplar.
Farklı senaryoları test edin
Senaryo 1: Sık test için düşük belirteç sınırları
Dosya: devproxyrc.json (yalnızca languageModelRateLimitingPlugin bölümü)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 100,
"completionTokenLimit": 50,
"resetTimeWindowSeconds": 30
}
}
Geliştirme ve test sırasında kısıtlamayı hızla tetikleyebilmek için kısa süreli pencerelerle düşük sınırları kullanın.
Senaryo 2: Üretim ortamına benzer sınırlar
Dosya: devproxyrc.json (yalnızca languageModelRateLimitingPlugin bölümü)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 10000,
"completionTokenLimit": 5000,
"resetTimeWindowSeconds": 3600
}
}
Gerçekçi belirteç tüketimi desenlerini test etmek için üretim ortamınıza benzer sınırlar yapılandırın.
Senaryo 3: Asimetrik sınırlar
Dosya: devproxyrc.json (yalnızca languageModelRateLimitingPlugin bölümü)
{
"languageModelRateLimitingPlugin": {
"promptTokenLimit": 2000,
"completionTokenLimit": 100,
"resetTimeWindowSeconds": 300
}
}
Tamamlama belirteci sınırlarının istem sınırlarından daha düşük olduğu senaryoları test edin ve maliyet açısından bilinçli API planlarının benzetimini yapın.
Sonraki adım
LanguageModelRateLimitingPlugin hakkında daha fazla bilgi edinin.