LlamaEmbeddingInput constructor

LlamaEmbeddingInput(
  1. List<LlamaContentPart> parts
)

Creates an embedding input from existing public content parts.

Implementation

factory LlamaEmbeddingInput(List<LlamaContentPart> parts) {
  if (parts.isEmpty) {
    throw LlamaArgumentException(
      'Embedding input requires at least one part.',
    );
  }
  final kinds = <LlamaEmbeddingModality>[
    for (final part in parts)
      switch (part) {
        LlamaTextContent() => LlamaEmbeddingModality.text,
        LlamaImageContent() => LlamaEmbeddingModality.image,
        LlamaAudioContent() => LlamaEmbeddingModality.audio,
        _ => throw LlamaUnsupportedException(
          'Embedding input supports only text, image and audio; '
          '${part.runtimeType} is unavailable in the embedding input contract.',
        ),
      },
  ];
  return LlamaEmbeddingInput._(
    List<LlamaContentPart>.unmodifiable(parts),
    List<LlamaEmbeddingModality>.unmodifiable(kinds),
  );
}