@@ -190,6 +190,13 @@ const NOVA_DEFAULT_PARAMS: ConverseInferenceParams = {
190
190
temperature : 0.7 ,
191
191
topP : 0.9 ,
192
192
} ,
193
+ // There are no additional costs for cache writes with Amazon Nova models
194
+ promptCachingConfig : {
195
+ autoCacheFields : {
196
+ system : true ,
197
+ messages : true ,
198
+ } ,
199
+ } ,
193
200
} ;
194
201
195
202
const DEEPSEEK_DEFAULT_PARAMS : ConverseInferenceParams = {
@@ -211,17 +218,42 @@ const PALMYRA_DEFAULT_PARAMS: ConverseInferenceParams = {
211
218
const USECASE_DEFAULT_PARAMS : UsecaseConverseInferenceParams = {
212
219
'/chat' : {
213
220
promptCachingConfig : {
214
- autoCacheFields : [ 'system' , 'messages' ] ,
221
+ autoCacheFields : {
222
+ system : true ,
223
+ messages : true ,
224
+ } ,
215
225
} ,
216
226
} ,
217
227
'/rag' : {
218
228
inferenceConfig : {
219
229
temperature : 0.0 ,
220
230
} ,
231
+ promptCachingConfig : {
232
+ autoCacheFields : {
233
+ system : false ,
234
+ } ,
235
+ } ,
221
236
} ,
222
237
'/diagram' : {
223
238
promptCachingConfig : {
224
- autoCacheFields : [ 'system' ] ,
239
+ autoCacheFields : {
240
+ system : true ,
241
+ } ,
242
+ } ,
243
+ } ,
244
+ '/use-case-builder' : {
245
+ promptCachingConfig : {
246
+ autoCacheFields : {
247
+ messages : false ,
248
+ } ,
249
+ } ,
250
+ } ,
251
+ '/title' : {
252
+ promptCachingConfig : {
253
+ autoCacheFields : {
254
+ system : false ,
255
+ messages : false ,
256
+ } ,
225
257
} ,
226
258
} ,
227
259
} ;
@@ -263,6 +295,11 @@ const createGuardrailStreamConfig = ():
263
295
const idTransformationRules = [
264
296
// Chat history -> Chat
265
297
{ pattern : / ^ \/ c h a t \/ .+ / , replacement : '/chat' } ,
298
+ // Use case builder (/new and /execute/*)
299
+ {
300
+ pattern : / ^ \/ u s e - c a s e - b u i l d e r \/ .+ / ,
301
+ replacement : '/use-case-builder' ,
302
+ } ,
266
303
] ;
267
304
268
305
// ID conversion
@@ -273,6 +310,23 @@ function normalizeId(id: string): string {
273
310
return ret ;
274
311
}
275
312
313
+ const mergeConverseInferenceParams = (
314
+ a : ConverseInferenceParams ,
315
+ b : ConverseInferenceParams
316
+ ) =>
317
+ ( {
318
+ inferenceConfig : {
319
+ ...a . inferenceConfig ,
320
+ ...b . inferenceConfig ,
321
+ } ,
322
+ promptCachingConfig : {
323
+ autoCacheFields : {
324
+ ...a . promptCachingConfig ?. autoCacheFields ,
325
+ ...b . promptCachingConfig ?. autoCacheFields ,
326
+ } ,
327
+ } ,
328
+ } ) as ConverseInferenceParams ;
329
+
276
330
// API call, extract string from output, etc.
277
331
278
332
const createConverseCommandInput = (
@@ -351,14 +405,17 @@ const createConverseCommandInput = (
351
405
352
406
// Merge model's default params with use-case specific ones
353
407
const usecaseParams = usecaseConverseInferenceParams [ normalizeId ( id ) ] || { } ;
354
- const params = { ...defaultConverseInferenceParams , ...usecaseParams } ;
408
+ const params = mergeConverseInferenceParams (
409
+ defaultConverseInferenceParams ,
410
+ usecaseParams
411
+ ) ;
355
412
356
413
// Apply prompt caching
357
- const autoCacheFields = params . promptCachingConfig ?. autoCacheFields || [ ] ;
358
- const conversationWithCache = autoCacheFields . includes ( 'messages' )
414
+ const autoCacheFields = params . promptCachingConfig ?. autoCacheFields || { } ;
415
+ const conversationWithCache = autoCacheFields [ 'messages' ]
359
416
? applyAutoCacheToMessages ( conversation , model . modelId )
360
417
: conversation ;
361
- const systemContextWithCache = autoCacheFields . includes ( 'system' )
418
+ const systemContextWithCache = autoCacheFields [ 'system' ]
362
419
? applyAutoCacheToSystem ( systemContext , model . modelId )
363
420
: systemContext ;
364
421
@@ -377,7 +434,7 @@ const createConverseCommandInput = (
377
434
model . modelParameters ?. reasoningConfig ?. type === 'enabled'
378
435
) {
379
436
converseCommandInput . inferenceConfig = {
380
- ...( params . inferenceConfig || { } ) ,
437
+ ...params . inferenceConfig ,
381
438
temperature : 1 , // reasoning requires temperature to be 1
382
439
topP : undefined , // reasoning does not require topP
383
440
maxTokens :
0 commit comments