001package org.nasdanika.ai.cli; 002 003import org.nasdanika.ai.ChunkingEmbeddings; 004import org.nasdanika.ai.Embeddings; 005 006import io.opentelemetry.api.trace.Span; 007import picocli.CommandLine.Option; 008 009public abstract class ChunkingEmbeddingsArgGroup<T> { 010 011 @Option( 012 names = "--chunk-size", 013 description = "Chunk size in tokens") 014 protected int chunkSize; 015 016 @Option( 017 names = "--chunks-overlap", 018 description = "Chunks overlap in tokens") 019 protected int chunksOverlap; 020 021 public abstract ChunkingEmbeddings<T> createChunkingEmbeddings(Embeddings target); 022 023 public void setSpanAttributes(Span span) { 024 span.setAttribute("chunk.size", chunkSize); 025 span.setAttribute("chunk.overlap", chunksOverlap); 026 } 027 028}