The identifier to rate limit, like a user ID or an IP address
Ratelimit options
OptionalrequestOptionaltokenOptionalhandleCalled when an agent is about to execute an action, with the action and the run ID.
OptionalparentRunId: stringOptionaltags: string[]OptionalhandleCalled when an agent finishes execution, before it exits. with the final output and the run ID.
OptionalparentRunId: stringOptionaltags: string[]OptionalhandleCalled at the end of a Chain run, with the outputs and the run ID.
OptionalparentRunId: stringOptionaltags: string[]Optionalkwargs: { Optionalinputs?: Record<string, unknown>OptionalhandleRun 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
OptionalhandleCalled at the start of a Chat Model run, with the prompt(s) and the run ID.
OptionalparentRunId: stringOptionalextraParams: Record<string, unknown>Optionaltags: string[]Optionalmetadata: Record<string, unknown>OptionalrunName: stringOptionalhandleRun 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[]OptionalhandleLLMErrorOptionalhandleLLMNewCalled 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)
OptionalparentRunId: stringOptionaltags: string[]Optionalfields: 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: stringOptionalhandleOptionalhandleOptionalhandleOptionalparentRunId: stringOptionaltags: string[]Optionalmetadata: Record<string, unknown>Optionalname: stringOptionalhandleOptionalhandleOptionalhandleOptionalhandleCalled at the start of a Tool run, with the tool name and input and the run ID.
OptionalparentRunId: stringOptionaltags: string[]Optionalmetadata: Record<string, unknown>OptionalrunName: 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.
Optionalidentifier: stringOptional new identifier to use for the new handler instance
New UpstashRatelimitHandler instance
StaticfromCalled when an agent is about to execute an action, with the action and the run ID.
OptionalparentRunId: stringOptionaltags: string[]Called when an agent finishes execution, before it exits. with the final output and the run ID.
OptionalparentRunId: stringOptionaltags: string[]Called at the end of a Chain run, with the outputs and the run ID.
OptionalparentRunId: stringOptionaltags: string[]Optionalkwargs: { Optionalinputs?: Record<string, unknown>Called at the start of a Chain run, with the chain name and inputs and the run ID.
OptionalparentRunId: stringOptionaltags: string[]Optionalmetadata: Record<string, unknown>OptionalrunType: stringOptionalrunName: stringCalled at the start of a Chat Model run, with the prompt(s) and the run ID.
OptionalparentRunId: stringOptionalextraParams: Record<string, unknown>Optionaltags: string[]Optionalmetadata: Record<string, unknown>OptionalrunName: stringCalled when an LLM/ChatModel in streaming mode produces a new token
OptionalparentRunId: stringOptionaltags: string[]Optionalfields: HandleLLMNewTokenCallbackFieldsCalled at the start of an LLM or Chat Model run, with the prompt(s) and the run ID.
OptionalparentRunId: stringOptionalextraParams: Record<string, unknown>Optionaltags: string[]Optionalmetadata: Record<string, unknown>OptionalrunName: stringOptionalparentRunId: stringOptionaltags: string[]Optionalmetadata: Record<string, unknown>Optionalname: stringCalled at the start of a Tool run, with the tool name and input and the run ID.
OptionalparentRunId: stringOptionaltags: string[]Optionalmetadata: Record<string, unknown>OptionalrunName: 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.