Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an alternative implementation to #374, which uses the
Usage
struct (renamed fromCost
in the base branch of this PR) to store the request count, and checks for limits to be exceeded.Relative to that PR, I changed
execution_limits
andExecutionLimits
tousage_limits
andUsageLimits
respectively. But I think everything else is mostly the same.@samuelcolvin if you don't want to rename
Cost
toUsage
, I would still suggest we use the approach in this PR, just change the names back.This could use more tests before merging, I wouldn't say I'm confident it is working properly in all cases yet. But I'm also not confident enough in the approach to really want to put a lot more effort into testing yet. (Though I'll note I did already add one simple test, and updated the FunctionModel and TestModel to track token counts in the usage.)