put method
Stores response as the answer to prompt.
An empty response is not stored: it would be served forever as a hit.
Implementation
Future<void> put(String prompt, String response) async {
if (response.isEmpty) return;
final vector = await embedder.embedOne(prompt);
await store.upsert([
Document(
_id(namespace, prompt),
metadata: {
'kind': 'semantic-cache',
'namespace': namespace,
'prompt': prompt,
'response': response,
'created_at': DateTime.now().millisecondsSinceEpoch,
},
vector: vector,
),
]);
}