perf: improve AI prompt cache reuse

This commit is contained in:
shen
2026-09-19 19:21:41 -07:00
parent 7306dc0f85
commit 1a10ca88e0
9 changed files with 318 additions and 124 deletions
@@ -57,7 +57,11 @@ void main() {
() => MockClient((request) async {
final body = jsonDecode(request.body) as Map<String, dynamic>;
final messages = body['messages'] as List<dynamic>;
prompts.add((messages.single as Map<String, dynamic>)['content']);
expect(messages, hasLength(2));
expect(messages.first['role'], 'system');
expect(messages.last['role'], 'user');
prompts.add(messages.first['content'] as String);
prompts.add(messages.last['content'] as String);
return http.Response(
jsonEncode({
'choices': [
@@ -73,7 +77,8 @@ void main() {
);
expect(variant, isNotNull);
expect(prompts, hasLength(1));
expect(prompts, hasLength(2));
final fullPrompt = prompts.join('\n');
for (final field in [
'schemaVersion',
'variantId',
@@ -81,10 +86,10 @@ void main() {
'prompt',
'expectedAnswer',
]) {
expect(prompts.single, contains(field));
expect(fullPrompt, contains(field));
}
for (final field in ['stimulus', 'acceptedAnswers', 'forbiddenPhrases']) {
expect(prompts.single, isNot(contains(field)));
expect(fullPrompt, isNot(contains(field)));
}
},
);