pydantic_ai.usage
RequestUsage dataclass
基类:UsageBase
与单个请求关联的 LLM 使用情况。
这是 genai_prices.types.AbstractUsage
的一个实现,因此它可以用于使用 genai-prices 计算请求的价格。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
|
incr
incr(incr_usage: RequestUsage) -> None
就地增加使用量。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
incr_usage
|
RequestUsage
|
要增加的使用量。 |
必需 |
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
104 105 106 107 108 109 110 |
|
__add__
__add__(other: RequestUsage) -> RequestUsage
将两个 RequestUsage 对象相加。
提供此功能是为了方便地对响应中多个部分的使用信息进行求和。
警告: 这不能用于对多个请求进行求和,否则会破坏某些价格计算。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
112 113 114 115 116 117 118 119 120 121 |
|
RunUsage dataclass
基类:UsageBase
与代理(agent)运行关联的 LLM 使用情况。
计算请求使用量的责任在于模型;Pydantic AI 只是将所有请求的使用信息进行汇总。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
|
cache_audio_read_tokens class-attribute
instance-attribute
cache_audio_read_tokens: int = 0
从缓存中读取的音频总词元(token)数。
output_tokens class-attribute
instance-attribute
output_tokens: int = 0
文本输出/补全(completion)的总词元(token)数。
details class-attribute
instance-attribute
模型返回的任何额外详情。
incr
incr(incr_usage: RunUsage | RequestUsage) -> None
就地增加使用量。
参数
名称 | 类型 | 描述 | 默认值 |
---|---|---|---|
incr_usage
|
RunUsage | RequestUsage
|
要增加的使用量。 |
必需 |
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
158 159 160 161 162 163 164 165 166 167 |
|
__add__
__add__(other: RunUsage | RequestUsage) -> RunUsage
将两个 RunUsage 对象相加。
提供此功能是为了方便地对多次运行的使用信息进行求和。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
169 170 171 172 173 174 175 176 |
|
Usage dataclass
deprecated
基类:RunUsage
已弃用
Usage
已被弃用,请改用 RunUsage
RunUsage
的已弃用别名。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
197 198 199 200 |
|
UsageLimits dataclass
对模型使用量的限制。
请求次数由 pydantic_ai 跟踪,并且在每次向模型发出请求之前都会检查请求限制。词元(token)计数在模型的响应中提供,并且在每次响应之后检查词元限制。
每个限制都可以设置为 None
来禁用该限制。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 |
|
request_limit class-attribute
instance-attribute
request_limit: int | None = request_limit
允许向模型发出的最大请求数。
tool_calls_limit class-attribute
instance-attribute
tool_calls_limit: int | None = tool_calls_limit
允许执行的成功工具调用的最大数量。
input_tokens_limit class-attribute
instance-attribute
input_tokens_limit: int | None = (
input_tokens_limit or request_tokens_limit
)
允许的最大输入/提示(prompt)词元(token)数。
output_tokens_limit class-attribute
instance-attribute
output_tokens_limit: int | None = (
output_tokens_limit or response_tokens_limit
)
允许的最大输出/响应词元(token)数。
total_tokens_limit class-attribute
instance-attribute
total_tokens_limit: int | None = total_tokens_limit
请求和响应中允许的词元(token)总数上限。
count_tokens_before_request class-attribute
instance-attribute
count_tokens_before_request: bool = (
count_tokens_before_request
)
如果为 True,则在将请求发送到模型之前执行一次词元(token)计数,以便提前强制执行 request_tokens_limit
。这可能会产生额外的开销(因为在发出实际请求之前会调用模型的 count_tokens
API),默认情况下是禁用的。
has_token_limits
has_token_limits() -> bool
如果此实例对词元(token)计数设置了任何限制,则返回 True
。
如果此方法返回 False
,那么 check_tokens
方法将永远不会引发错误。
这很有用,因为如果我们有词元(token)限制,我们需要在收到每个流式消息后检查它们。如果没有限制,我们可以在流式响应迭代器中跳过该处理过程。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
297 298 299 300 301 302 303 304 305 306 307 |
|
check_before_request
check_before_request(usage: RunUsage) -> None
如果下一个请求将超过任何限制,则会引发 UsageLimitExceeded
异常。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 |
|
check_tokens
check_tokens(usage: RunUsage) -> None
如果使用量超过任何词元(token)限制,则会引发 UsageLimitExceeded
异常。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 |
|
check_before_tool_call
check_before_tool_call(usage: RunUsage) -> None
如果下一次工具调用将超过工具调用限制,则会引发 UsageLimitExceeded
异常。
源代码位于 pydantic_ai_slim/pydantic_ai/usage.py
343 344 345 346 347 348 349 |
|