put method

Future<void> put(
  1. String prompt,
  2. String response
)

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,
    ),
  ]);
}