Commit 9be019e
committed
fix(models): gate Gemini cache creation on cacheable prefix tokens
`_create_new_cache_with_contents` gated on `cacheable_contents_token_count`
(the previous prompt's full `prompt_token_count`) but `caches.create` only
receives the prefix `contents[:cache_contents_count]`. On long conversations
the full count clears Gemini's 4096-token minimum while the cached prefix is
below it, so `caches.create` fails with 400 INVALID_ARGUMENT.
Gate on the prefix that is actually cached: `_estimate_cacheable_prefix_tokens`
scales the accurate full-prompt count by the prefix's estimated share of the
request (reusing `_estimate_request_tokens`, now accepting an optional
`cache_contents_count`). When the prefix spans the whole request the factor is
1.0 and behavior is unchanged.
Fixes #58471 parent f8e9195 commit 9be019e
2 files changed
Lines changed: 125 additions & 18 deletions
File tree
- src/google/adk/models
- tests/unittests/agents
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
320 | 320 | | |
321 | 321 | | |
322 | 322 | | |
323 | | - | |
324 | | - | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
325 | 334 | | |
326 | | - | |
327 | | - | |
| 335 | + | |
| 336 | + | |
328 | 337 | | |
329 | 338 | | |
330 | 339 | | |
| |||
336 | 345 | | |
337 | 346 | | |
338 | 347 | | |
339 | | - | |
340 | | - | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
341 | 354 | | |
342 | 355 | | |
343 | 356 | | |
344 | 357 | | |
345 | 358 | | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
346 | 362 | | |
347 | 363 | | |
348 | 364 | | |
| |||
360 | 376 | | |
361 | 377 | | |
362 | 378 | | |
363 | | - | |
364 | | - | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
365 | 384 | | |
366 | 385 | | |
367 | 386 | | |
368 | 387 | | |
369 | 388 | | |
370 | 389 | | |
371 | 390 | | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
372 | 427 | | |
373 | 428 | | |
374 | 429 | | |
| |||
Lines changed: 62 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
46 | 56 | | |
47 | 57 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
| 58 | + | |
| 59 | + | |
53 | 60 | | |
54 | 61 | | |
55 | 62 | | |
| |||
202 | 209 | | |
203 | 210 | | |
204 | 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 | + | |
205 | 249 | | |
206 | 250 | | |
207 | 251 | | |
| |||
904 | 948 | | |
905 | 949 | | |
906 | 950 | | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
907 | 955 | | |
908 | | - | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
909 | 959 | | |
910 | 960 | | |
911 | 961 | | |
| |||
916 | 966 | | |
917 | 967 | | |
918 | 968 | | |
919 | | - | |
| 969 | + | |
920 | 970 | | |
921 | | - | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
922 | 974 | | |
923 | 975 | | |
924 | 976 | | |
| |||
0 commit comments