PromptTokenLimit-Richtlinie

Erweiterbare Richtlinie

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Übersicht

Die PromptTokenLimit-Richtlinie schützt LLM-Backends (Large Language Model) vor Traffic-Spitzen, indem die Anzahl der Tokens in Nutzer-Prompts gedrosselt wird.

Die PromptTokenLimit-Richtlinie ähnelt der SpikeArrest-Richtlinie. Die SpikeArrest-Richtlinie begrenzt jedoch die Anzahl der Anfragen, während die PromptTokenLimit-Richtlinie die Anzahl der Tokens in diesen Anfragen begrenzt. Diese Richtlinie ist speziell auf LLM-Anwendungen zugeschnitten, bei denen die Kosten und die Leistung direkt mit der Anzahl der verarbeiteten Tokens zusammenhängen.

Diese Richtlinie ist eine erweiterbare Richtlinie, deren Verwendung je nach Apigee-Lizenz Auswirkungen auf die Kosten oder die Nutzung haben kann. Informationen zu Richtlinientypen und Auswirkungen auf die Nutzung finden Sie unter Richtlinientypen.

Unterschied zwischen PromptTokenLimit und LLMTokenQuota

Die PromptTokenLimit-Richtlinie wird für die operative Traffic-Verwaltung verwendet, um plötzliche Spitzen bei der Tokennutzung zu verhindern. Im Gegensatz dazu wird die LLMTokenQuota-Richtlinie verwendet, um Verbrauchsbeschränkungen für Clientanwendungen über längere Zeiträume (z. B. Stunden, Tage oder Monate) durchzusetzen, um die Kosten zu steuern und Geschäftsvereinbarungen durchzusetzen.

Element PromptTokenLimit

Definiert die PromptTokenLimit-Richtlinie.

Standardwert Siehe Tab Standardrichtlinie unten.
Erforderlich? Optional
Typ Komplexes Objekt
Übergeordnetes Element –
Untergeordnete Elemente <Identifier>
<Rate> (erforderlich)
<UseEffectiveCount>
<UserPromptSource>
<IgnoreUnresolvedVariables>

Syntax

Das PromptTokenLimit-Element verwendet die folgende Syntax:

<PromptTokenLimit continueOnError="false" enabled="true" name="POLICY_NAME">
  <DisplayName></DisplayName>
  <Properties/>
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
  <Identifier ref=""/>
  <Rate ref="">[pm|ps]</Rate>
  <UseEffectiveCount>[false|true]</UseEffectiveCount>
  <IgnoreUnresolvedVariables>[false|true]</IgnoreUnresolvedVariables>
</PromptTokenLimit>
      

Standardrichtlinie

Das folgende Beispiel zeigt die Standardeinstellungen, wenn Sie Ihrem Ablauf in der Benutzeroberfläche eine PromptTokenLimit-Richtlinie hinzufügen:

<PromptTokenLimit continueOnError="false" enabled="true" name="PTL-limitTokens-1">
  <DisplayName></DisplayName>
  <Properties/>
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
  <Identifier ref=""/>
  <Rate ref="">[pm|ps]</Rate>
  <UseEffectiveCount>[false|true]</UseEffectiveCount>
  <IgnoreUnresolvedVariables>[false|true]</IgnoreUnresolvedVariables>
</PromptTokenLimit>
      

Dieses Element hat folgende Attribute, die allen Richtlinien gemeinsam sind:

Attribut Standard Erforderlich? Beschreibung
name - Erforderlich

Der interne Name der Richtlinie. Der Wert des Attributs name kann Buchstaben, Ziffern, Leerzeichen, Bindestriche, Unterstriche und Punkte enthalten. Dieser Wert darf 255 Zeichen nicht überschreiten.

Optional können Sie das Element <DisplayName> verwenden, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen Namen in einer natürlichen Sprache zu versehen.

continueOnError false Optional Legen Sie false fest, um einen Fehler zurückzugeben, wenn eine Richtlinie fehlschlägt. Dies ist für die meisten Richtlinien das erwartete Verhalten. Legen Sie true fest, damit die Ablaufausführung auch nach dem Fehlschlagen einer Richtlinie fortgesetzt wird. Weitere Informationen:
enabled wahr Optional Setzen Sie den Wert auf true, um die Richtlinie zu erzwingen. Legen Sie false fest, um die Richtlinie zu deaktivieren. Die Richtlinie wird nicht durchgesetzt, selbst wenn sie mit einem Ablauf verknüpft ist.
async   false Verworfen Dieses Attribut wurde verworfen.

Beispiele

Die folgenden Beispiele zeigen Möglichkeiten, wie Sie die PromptTokenLimit-Richtlinie verwenden können:

Beispiel 1

Prompt-Token-Begrenzung innerhalb eines einzelnen Replikats.

In diesem Beispiel erfolgt die Begrenzung der Prompt-Tokens innerhalb eines einzelnen Replikats und wird nicht auf mehrere Message Processors in einer Region verteilt.

<PromptTokenLimit continueOnError="false" enabled="true" name="PTL-limitTokens-1">
  <DisplayName></DisplayName>
  <Properties/>
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
  <Identifier ref="request.url"/>
  <Rate>1pm</Rate>
  <UseEffectiveCount>false</UseEffectiveCount>
</PromptTokenLimit>

Beispiel 2

Verteiltes Tokenlimit.

In diesem Beispiel wird die Prompt-Token-Begrenzung auf mehrere Replikate in einer Region verteilt und ein Algorithmus zur Ratenbegrenzung mit „gleitendem Fenster“ verwendet.

<PromptTokenLimit continueOnError="false" enabled="true" name="PTL-limitTokens-1">
  <DisplayName></DisplayName>
  <Properties/>
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
  <Identifier ref="request.url"/>
  <Rate>1pm</Rate>
  <UseEffectiveCount>true</UseEffectiveCount>
</PromptTokenLimit>

Beispiel 3

Tokenlimit für die Größe des Kontextfensters pro Anfrage.

In diesem Beispiel erfolgt die Begrenzung der Prompt-Tokens innerhalb eines einzelnen Replikats und wird nicht auf mehrere Nachrichtenprozessoren in einer Region verteilt. Diese spezielle Konfiguration wird für die Begrenzung der Kontextfenstergröße pro Anfrage verwendet.

<PromptTokenLimit continueOnError="false" enabled="true" name="PTL-limitTokens-1">
  <DisplayName></DisplayName>
  <Properties/>
  <UserPromptSource>{jsonPath('$.messages',request.content,true)}</UserPromptSource>
  <Identifier ref="messageid"/>
  <Rate>1pm</Rate>
  <UseEffectiveCount>false</UseEffectiveCount>
</PromptTokenLimit>

Beispiel 4

Begrenzung verteilter Tokens mit Standardwerten.

In diesem Beispiel erfolgt die Prompt-Token-Begrenzung innerhalb eines einzelnen Replikats und wird nicht auf mehrere Message Processors in einer Region verteilt. Der Standardwert für die Quelle des Nutzer-Prompts wird verwendet: {jsonPath('$.messages',request.content,true)}

<PromptTokenLimit continueOnError="false" enabled="true" name="PTL-limitTokens-1">
  <DisplayName></DisplayName>
  <Properties/>
  <Identifier ref="messageid"/>
  <Rate>1pm</Rate>
  <UseEffectiveCount>false</UseEffectiveCount>
</PromptTokenLimit>

Verweis auf untergeordnetes Element

In diesem Abschnitt werden die untergeordneten Elemente von <PromptTokenLimit> beschrieben.

<DisplayName>

Wird zusätzlich zum Attribut name verwendet, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen, natürlicher klingenden Namen zu versehen.

Das Element <DisplayName> ist für alle Richtlinien gleich.

Standardwert –
Erforderlich? Optional. Wenn Sie <DisplayName> weglassen, wird der Wert des Attributs name der Richtlinie verwendet.
Typ String
Übergeordnetes Element <PolicyElement>
Untergeordnete Elemente Keine

Das <DisplayName>-Element verwendet die folgende Syntax:

Syntax

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Beispiel

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

Das <DisplayName>-Element hat keine Attribute oder untergeordneten Elemente.

<Identifier>

Hiermit können Sie auswählen, wie die Anfragen gruppiert werden sollen, damit die Richtlinie „PromptTokenLimit“ auf Grundlage des Clients angewendet werden kann. Sie können Anfragen beispielsweise nach Entwickler-ID gruppieren. In diesem Fall werden die Anfragen jedes Entwicklers auf sein eigenes PromptTokenLimit angerechnet und nicht auf alle Anfragen an den Proxy.

Wenn Sie das Element <Identifier> leer lassen, wird für alle Anfragen an diesen API-Proxy eine Ratenbegrenzung erzwungen.

Standardwert –
Erforderlich? Optional
Typ String
Übergeordnetes Element <PromptTokenLimit>
Untergeordnete Elemente Keine

Syntax

<PromptTokenLimit
  continueOnError="[false|true]"
  enabled="[true|false]"
  name="POLICY_NAME"
>
  <Identifier ref="FLOW_VARIABLE"/>
</PromptTokenLimit>

Beispiel 1

Im folgenden Beispiel wird die Richtlinie „PromptTokenLimit“ pro Entwickler-ID angewendet:

<PromptTokenLimit name="PTL-limitTokens-1">
  <Identifier ref="developer.id"/>
  <Rate>42pm</Rate/>
  <UseEffectiveCount>true</UseEffectiveCount>
</PromptTokenLimit>
      

In der folgenden Tabelle werden die Attribute von <Identifier> beschrieben:

Attribut Beschreibung Standard Präsenz
ref Gibt die Variable an, nach der eingehende Anfragen von PromptTokenLimit gruppiert werden. Sie können jede beliebige Ablaufvariable verwenden, um einen eindeutigen Client anzugeben, wie diejenigen, die mit der VerifyAPIKey-Richtlinie verfügbar sind. Sie können auch benutzerdefinierte Variablen mithilfe der JavaScript-Richtlinie oder der AssignMessage-Richtlinie festlegen. – Erforderlich

<Rate>

Gibt die Rate an, mit der Tokennutzungsspitzen durch Festlegung der Anzahl der Tokens pro Minute oder pro Sekunde eingeschränkt werden. Sie können dieses Element in Verbindung mit <Identifier> verwenden, um den Traffic zur Laufzeit reibungslos zu drosseln, indem Sie Werte vom Client akzeptieren. Verwenden Sie das Element <UseEffectiveCount>, um den von der Richtlinie verwendeten Algorithmus für die Ratenbegrenzung festzulegen.

Standardwert –
Erforderlich? Erforderlich
Typ Ganzzahl
Übergeordnetes Element <PromptTokenLimit>
Untergeordnete Elemente Keine

Syntax

Sie können Raten auf eine der folgenden Arten angeben:

  • Eine statische Rate, die Sie als Text des Elements <Rate> angeben.
  • Ein variabler Wert, der vom Client übergeben werden kann; Ermitteln Sie den Namen der Ablaufvariablen mithilfe des Attributs ref.
<PromptTokenLimit
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="POLICY_NAME"
>
  <Rate ref="FLOW_VARIABLE">RATE[pm|ps]</Rate>
</PromptTokenLimit>

Gültige Ratenwerte, die entweder als Variablenwert oder im Textkörper des Elements definiert sind, müssen dem folgenden Format entsprechen:

  • intps (Anzahl der Tokens pro Sekunde, geglättet in Intervallen von Millisekunden)
  • intpm (Anzahl der Tokens pro Minute, geglättet in Sekundenintervalle)

Der Wert von int muss eine positive Ganzzahl ungleich Null sein.

Beispiel 1

Im folgenden Beispiel wird die Rate auf fünf Tokens pro Sekunde festgelegt:

<PromptTokenLimit name="PTL-Static-5ps">
  <Rate>5ps</Rate>
  <UseEffectiveCount>false</UseEffectiveCount>
</PromptTokenLimit>
        

Die Richtlinie glättet die Rate auf ein Token alle 200 Millisekunden (1.000/5).

Beispiel 2

Im folgenden Beispiel wird die Rate auf 12 Tokens pro Minute festgelegt:

<PromptTokenLimit name="PTL-Static-12pm">
  <Rate>12pm</Rate>
  <UseEffectiveCount>false</UseEffectiveCount>
</PromptTokenLimit>

In dieser Beispielrichtlinie wird die Rate auf ein Token alle fünf Sekunden (60/12) geglättet.

In der folgenden Tabelle werden die Attribute von <Rate> beschrieben:

Attribut Beschreibung Präsenz Standard
ref Kennzeichnet eine Ablaufvariable, die die Rate angibt. Dies kann eine beliebige Ablaufvariable sein, z. B. ein HTTP-Abfrageparameter, Header oder Nachrichtentextinhalt oder ein Wert wie eine KVM. Weitere Informationen finden Sie unter Referenz zu Ablaufvariablen.

Sie können auch benutzerdefinierte Variablen mithilfe der JavaScript-Richtlinie oder der AssignMessage-Richtlinie verwenden.

Wenn Sie sowohl ref als auch den Text dieses Elements definieren, wird der Wert von ref angewendet und hat Vorrang, wenn die Ablaufvariable in der Anfrage festgelegt wird. Das gilt auch umgekehrt, wenn die in ref angegebene Variable nicht in der Anfrage festgelegt ist.

Beispiel:

<Rate ref="request.header.custom_rate">1pm</Rate>

Wenn der Client in diesem Beispiel keinen custom_rate-Header übergibt, beträgt die Rate für den API-Proxy 1 Token pro Minute für alle Clients. Wenn der Client einen custom_rate-Header mit dem Wert „10ps“ übergibt, wird für alle Clients auf dem Proxy bis zum Senden einer Anfrage ohne den custom_rate-Header eine 10-Sekunden-Pause eingelegt.

Mit <Identifier> können Sie Anfragen gruppieren, um benutzerdefinierte Raten für verschiedene Clienttypen zu erzwingen.

Wenn Sie einen Wert für ref angeben, die Rate aber nicht im Text des Elements <Rate> festlegen und der Client keinen Wert übergibt, löst die PromptTokenLimit-Richtlinie einen Fehler aus.

Optional –
In der folgenden Tabelle werden die Attribute von Rate beschrieben, die das Verhalten der Traffic-Drosselung definieren:
Attribut Beschreibung
messagesPerPeriod Gibt die Anzahl der Tokens an, die innerhalb eines definierten Zeitraums zulässig sind. Wenn eine Richtlinie beispielsweise für „10ps“ (10 Tokens pro Sekunde) konfiguriert ist, wäre der Wert für messagesPerPeriod 10.
periodInMicroseconds Definiert den Zeitraum in Mikrosekunden, für den messagesPerPeriod berechnet wird. Bei einer Konfiguration mit „10ps“ wäre dieser Wert 1.000.000, was einer Sekunde entspricht.
maxBurstMessageCount Stellt die maximale Anzahl von Tokens dar, die sofort oder in einem kurzen Burst zu Beginn eines neuen Intervalls zulässig sind.

<UseEffectiveCount>

Mit diesem Element können Sie zwischen verschiedenen PromptTokenLimit-Algorithmen wählen, indem Sie den Wert auf true oder false setzen, wie unten erläutert:

wahr

Wenn der Wert auf true festgelegt ist, wird PromptTokenLimit in einer Region verteilt. Das bedeutet, dass die Anzahl der Anfragen zwischen den Message Processors (MPs) in einer Region synchronisiert wird. Außerdem wird ein Algorithmus zur Ratenbegrenzung mit „gleitendem Fenster“ verwendet. Dieser Algorithmus bietet ein konsistentes Ratenbegrenzungsverhalten und "glättet" nicht die Anzahl der eingehenden Anfragen, die an das Back-End gesendet werden können. Wenn eine Vielzahl von Anfragen in einem kurzen Zeitintervall gesendet wird, sind sie zulässig, solange sie die im Element <Rate> festgelegte Ratenbegrenzung nicht überschreiten. Beispiel:

<PromptTokenLimit name="Prompt-Token-Limit-1">
  <Rate>12pm</Rate>
  <Identifier ref="client_id" />
  <UseEffectiveCount>true</UseEffectiveCount>
</PromptTokenLimit>

false (Standardeinstellung)

Wenn der Wert auf false (Standardeinstellung) gesetzt ist, verwendet die PromptTokenLimit-Richtlinie einen Algorithmus des Typs Token-Bucket, der die Token-Spitzen glättet, indem die von Ihnen angegebene Ratenbegrenzung in kleinere Intervalle aufgeteilt wird. Ein Nachteil dieses Ansatzes ist, dass mehrere legitime Tokens, die innerhalb eines kurzen Zeitintervalls eingehen, möglicherweise abgelehnt werden.

Angenommen, Sie geben eine Rate von 30 pm (30 Tokens pro Minute) ein. Beim Testen könnten Sie denken, dass Sie 30 Tokens in einer Sekunde senden können, solange sie innerhalb einer Minute eingehen. Das ist jedoch nicht die Art und Weise, wie die Richtlinie die Einstellung erzwingt. Wenn Sie darüber nachdenken, könnten 30 Tokens innerhalb eines Zeitraums von einer Sekunde in einigen Umgebungen als Mini-Spitze betrachtet werden.

  • Pro-Minute-Raten werden in vollständige Anfragen geglättet, die in Intervallen von Sekunden zulässig sind.

    Beispiel: 30 Anfragen pro Minute werden so geglättet:
    60 Sekunden (1 Minute) / 30 Anfragen pro Minute = Intervalle von 2 Sekunden, d. h. alle 2 Sekunden ist 1 Token zulässig. Ein zweites Token innerhalb von 2 Sekunden führt zu einem Fehler. Auch ein 31. Token innerhalb einer Minute schlägt fehl.

  • Pro Sekunde-Raten werden in vollständige Anfragen geglättet, die in Intervallen von Millisekunden zulässig sind.

    Beispiel: 10 ps werden so geglättet:
    1.000 Millisekunden (1 Sekunde) / 10 ps = 100-Millisekunden-Intervalle oder 1 Token alle 100 Millisekunden. Ein zweites Token innerhalb von 100 ms führt zu einem Fehler. Außerdem schlägt ein elftes Token innerhalb einer Sekunde fehl.

Standardwert False
Erforderlich? Optional
Typ Boolescher Wert
Übergeordnetes Element <PromptTokenLimit>
Untergeordnete Elemente Keine

In der folgenden Tabelle werden die Attribute des <UseEffectiveCount> -Elements beschrieben:

Attribut Beschreibung Standard Präsenz
ref Gibt die Variable an, die den Wert von <UseEffectiveCount> enthält. Dies kann eine beliebige Ablaufvariable sein, z. B. der HTTP-Abfrageparameter, der Header oder der Nachrichteninhalt. Weitere Informationen finden Sie unter Referenz zu Ablaufvariablen. Sie können auch benutzerdefinierte Variablen mithilfe der JavaScript-Richtlinie oder der AssignMessage-Richtlinie festlegen. – Optional

<UserPromptSource>

Gibt die Quelle für das Abrufen des Texts für den Nutzer-Prompt an. Verwenden Sie eine Nachrichtenvorlage.

Die Nachrichtenvorlage sollte einen einzelnen Wert des Nutzer-Prompt-Texts enthalten.

Beispiel: {jsonPath('$.contents[-1].parts[-1].text',request.content,true)}.

Standardwert –
Erforderlich? Optional
Typ String
Übergeordnetes Element <PromptTokenLimit>
Untergeordnete Elemente Keine

Syntax

<PromptTokenLimit
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="POLICY_NAME">
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
</PromptTokenLimit>

Beispiel 1

<PromptTokenLimit name="Prompt-Token-Limit-1">
  <UserPromptSource>{jsonPath('$.contents[-1].parts[-1].text',request.content,true)}</UserPromptSource>
</PromptTokenLimit>

<IgnoreUnresolvedVariables>

Bestimmt, ob die Verarbeitung beendet wird, wenn eine nicht aufgelöste Variable erkannt wird.

Auf true festlegen, um nicht aufgelöste Variablen zu ignorieren und die Verarbeitung fortzusetzen. Andernfalls false. Der Standardwert ist false.

Standardwert False
Erforderlich? Optional
Typ Boolescher Wert
Übergeordnetes Element <PromptTokenLimit>
Untergeordnete Elemente Keine

Syntax

<PromptTokenLimit
    continueOnError="[false|true]"
    enabled="[true|false]"
    name="POLICY_NAME">
  <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
</PromptTokenLimit>

Beispiel

<PromptTokenLimit name="Prompt-Token-Limit-1">
  <Rate>10ps</Rate>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</PromptTokenLimit>

Ablaufvariablen

Wenn eine PromptTokenLimit-Richtlinie ausgeführt wird, werden die folgenden Ablaufvariablen ausgefüllt:

Variable Typ Berechtigung Beschreibung
ratelimit.POLICY_NAME.failed Boolesch Schreibgeschützt: Diese Variable ist true, wenn bei der Richtlinie ein interner Ausführungsfehler aufgetreten ist. Diese Variable sollte nicht verwendet werden, um zu prüfen, ob ein Ratenlimit überschritten wurde. Bei hoher Last kann es aufgrund des „Fail-Open“-Designs der Richtlinie auf true gesetzt werden.
ratelimit.POLICY_NAME.resolvedUserPrompt String Schreibgeschützt: Gibt den extrahierten Nutzer-Prompt zurück.
ratelimit.POLICY_NAME.userPromptSource String Schreibgeschützt: Gibt die Nachrichtenvorlage für den in der Richtlinie angegebenen Nutzer-Prompt zurück.
ratelimit.POLICY_NAME.userPromptTokenCount String Schreibgeschützt: Gibt die Anzahl der Tokens des extrahierten Nutzer-Prompts zurück.

Weitere Informationen finden Sie unter Referenz zu Ablaufvariablen.

Fehlerreferenz

In diesem Abschnitt werden die zurückgegebenen Fehlercodes und Fehlermeldungen beschrieben, die von Apigee festgelegt werden, wenn die Richtlinie einen Fehler auslöst. Möglicherweise werden auch Fehler bei der SpikeArrest-Richtlinie angezeigt. Diese Informationen sind wichtig, wenn Sie Fehlerregeln zur Verarbeitung von Fehlern entwickeln. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen und Fehler beheben.

Laufzeitfehler

Diese Fehler können bei Ausführung der Richtlinie auftreten.

Fehlercode HTTP-Status Apigee-Fehler Ursache Korrigieren
policies.prompttokenlimit.FailedToExtractUserPrompt 400 FALSE Der Nutzer-Prompt konnte nicht aus der API-Anfrage extrahiert werden.
policies.prompttokenlimit.PromptTokenLimitViolation 429 FALSE Verstoß gegen das Prompt-Tokenlimit.
policies.prompttokenlimit.FailedToCalculateUserPromptTokens 500 TRUE Für den Nutzer-Prompt können keine Tokens berechnet werden.

Bereitstellungsfehler

Diese Fehler können auftreten, wenn Sie einen Proxy mit dieser Richtlinie bereitstellen.

Fehlercode HTTP-Status Apigee-Fehler Ursache Beheben
policies.prompttokenlimit.MessageWeightNotSupported 500 FALSE „MessageWeight“ wird für die Richtlinie „PromptTokenLimit“ nicht unterstützt.

Fehlervariablen

Diese Variablen werden bei Laufzeitfehlern festgelegt. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen.

Variablen Definition Beispiel
ratelimit.policy_name.fault.name fault_name ist der Name des Fehlers, der in der obigen Tabelle Laufzeitfehler aufgeführt ist. Der Fehlername ist der letzte Teil des Fehlercodes. fault.name Matches "PromptTokenLimitViolation"
ratelimit.policy_name.failed policy_name ist der benutzerdefinierte Name der Richtlinie, die den Fehler ausgegeben hat. ratelimit.PTL-PromptTokenLimitPolicy.failed = true

Beispiel für eine Fehlerantwort

Im Folgenden sehen Sie ein Beispiel für eine Fehlerantwort:

{  
   "fault":{  
      "detail":{  
         "errorcode":"policies.prompttokenlimit.PromptTokenLimitViolation"
      },
      "faultstring":"Prompt Token Limit Violation. Allowed rate : MessageRate{capacity=10, period=Minutes}"
   }
}

Beispiel für eine Fehlerregel

Unten sehen Sie ein Beispiel für eine Fehlerregel zum Verarbeiten eines PromptTokenLimitViolation-Fehlers:

<FaultRules>
    <FaultRule name="Prompt Token Limit Errors">
        <Step>
            <Name>Assign-Message-1</Name>
        </Step>
        <Condition>(fault.name Matches "PromptTokenLimitViolation")</Condition>
    </FaultRule>
</FaultRules>

Der aktuelle HTTP-Statuscode für das Überschreiten eines von einer LLMTokenQuota- oder PromptTokenLimit-Richtlinie festgelegten Ratenlimits ist 429 (Too Many Requests).

Schemas

Jeder Richtlinientyp wird durch ein XML-Schema (.xsd) definiert. Zu Referenzzwecken sind Richtlinienschemas auf GitHub verfügbar.

Weitere Informationen