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}