open static method

Future<ConversationMemory> open({
  1. required DocumentStore store,
  2. required Embedder embedder,
  3. required String conversationId,
})

Opens (or starts) conversation conversationId.

Implementation

static Future<ConversationMemory> open({
  required DocumentStore store,
  required Embedder embedder,
  required String conversationId,
}) async {
  final bytes = utf8.encode(conversationId).length;
  if (bytes == 0 || bytes > 100) {
    throw ArgumentError.value(
      conversationId,
      'conversationId',
      'must be 1..=100 bytes of UTF-8',
    );
  }
  if (store.dimensions != embedder.dimensions) {
    throw ArgumentError(
      'the store holds ${store.dimensions}-dimensional vectors but the '
      'embedder produces ${embedder.dimensions}',
    );
  }
  final existing = await store.count(filter: _scopeOf(conversationId));
  return ConversationMemory._(store, embedder, conversationId, existing);
}