The identifier to rate limit, like a user ID or an IP address
Ratelimit options
Optional
requestOptional
tokenOptional
handleCalled when an agent is about to execute an action, with the action and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Optional
handleCalled when an agent finishes execution, before it exits. with the final output and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Optional
handleCalled at the end of a Chain run, with the outputs and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Optional
kwargs: { Optional
inputs?: Record<string, unknown>Optional
handleRun when the chain starts running.
This method is called multiple times during a chain execution.
To ensure it only runs once, it checks and updates a _checked
state.
Serialized chain
Chain input values
Optional
handleCalled at the start of a Chat Model run, with the prompt(s) and the run ID.
Optional
parentRunId: stringOptional
extraParams: Record<string, unknown>Optional
tags: string[]Optional
metadata: Record<string, unknown>Optional
runName: stringOptional
handleRun when the LLM ends running.
If the includeOutputTokens
is set to true, the number of tokens
in the LLM completion are counted for rate limiting.
LLM result output
Optional
_parentRunId: stringOptional
_tags: string[]Optional
handleLLMErrorOptional
handleLLMNewCalled when an LLM/ChatModel in streaming
mode produces a new token
idx.prompt is the index of the prompt that produced the token (if there are multiple prompts) idx.completion is the index of the completion that produced the token (if multiple completions per prompt are requested)
Optional
parentRunId: stringOptional
tags: string[]Optional
fields: HandleLLMNewTokenCallbackFieldsRun when the LLM starts running.
Serialized LLM
Prompts passed to the LLM
Optional
_parentRunId: stringOptional
_extraParams: Record<string, unknown>Optional
_tags: string[]Optional
_metadata: Record<string, unknown>Optional
_name: stringOptional
handleOptional
handleOptional
handleOptional
parentRunId: stringOptional
tags: string[]Optional
metadata: Record<string, unknown>Optional
name: stringOptional
handleOptional
handleOptional
handleOptional
handleCalled at the start of a Tool run, with the tool name and input and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Optional
metadata: Record<string, unknown>Optional
runName: stringCreates a new UpstashRatelimitHandler object with the same ratelimit configurations but with a new identifier if it's provided.
Also resets the state of the handler.
Optional
identifier: stringOptional new identifier to use for the new handler instance
New UpstashRatelimitHandler instance
Static
fromCalled when an agent is about to execute an action, with the action and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Called when an agent finishes execution, before it exits. with the final output and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Called at the end of a Chain run, with the outputs and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Optional
kwargs: { Optional
inputs?: Record<string, unknown>Called at the start of a Chain run, with the chain name and inputs and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Optional
metadata: Record<string, unknown>Optional
runType: stringOptional
runName: stringCalled at the start of a Chat Model run, with the prompt(s) and the run ID.
Optional
parentRunId: stringOptional
extraParams: Record<string, unknown>Optional
tags: string[]Optional
metadata: Record<string, unknown>Optional
runName: stringCalled when an LLM/ChatModel in streaming
mode produces a new token
Optional
parentRunId: stringOptional
tags: string[]Optional
fields: HandleLLMNewTokenCallbackFieldsCalled at the start of an LLM or Chat Model run, with the prompt(s) and the run ID.
Optional
parentRunId: stringOptional
extraParams: Record<string, unknown>Optional
tags: string[]Optional
metadata: Record<string, unknown>Optional
runName: stringOptional
parentRunId: stringOptional
tags: string[]Optional
metadata: Record<string, unknown>Optional
name: stringCalled at the start of a Tool run, with the tool name and input and the run ID.
Optional
parentRunId: stringOptional
tags: string[]Optional
metadata: Record<string, unknown>Optional
runName: string
Callback to handle rate limiting based on the number of requests or the number of tokens in the input.
It uses Upstash Ratelimit to track the rate limit which utilizes Upstash Redis to track the state.
Should not be passed to the chain when initializing the chain. This is because the handler has a state which should be fresh every time invoke is called. Instead, initialize and pass a handler every time you invoke.