# Spring AI API facts, read with javap from the jars this build resolves

spring-ai.version: 2.0.1

## classes in org/springframework/ai/rag (top level, from spring-ai-rag)
Query
advisor/RetrievalAugmentationAdvisor
advisor/package-info
generation/augmentation/ContextualQueryAugmenter
generation/augmentation/QueryAugmenter
generation/augmentation/package-info
generation/package-info
package-info
postretrieval/document/DocumentPostProcessor
postretrieval/document/package-info
postretrieval/package-info
preretrieval/package-info
preretrieval/query/expansion/MultiQueryExpander
preretrieval/query/expansion/QueryExpander
preretrieval/query/expansion/package-info
preretrieval/query/transformation/CompressionQueryTransformer
preretrieval/query/transformation/QueryTransformer
preretrieval/query/transformation/RewriteQueryTransformer
preretrieval/query/transformation/TranslationQueryTransformer
preretrieval/query/transformation/package-info
retrieval/join/ConcatenationDocumentJoiner
retrieval/join/DocumentJoiner
retrieval/join/package-info
retrieval/search/DocumentRetriever
retrieval/search/VectorStoreDocumentRetriever
retrieval/search/package-info
util/PromptAssert
util/package-info

## classes anywhere in spring-ai-rag whose name contains "rerank": 0

## classes in any jar on this project's classpath whose name contains "SemanticSearchCache" or "SemanticCache": 0

## org.springframework.ai.transformer.splitter.TokenTextSplitter
public class org.springframework.ai.transformer.splitter.TokenTextSplitter extends org.springframework.ai.transformer.splitter.TextSplitter {
  public org.springframework.ai.transformer.splitter.TokenTextSplitter();
  public org.springframework.ai.transformer.splitter.TokenTextSplitter(boolean);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter(com.knuddels.jtokkit.api.EncodingType);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter(com.knuddels.jtokkit.api.EncodingType, boolean);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter(int, int, int, int, boolean, List<Character>);
  public static org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder builder();
}

## org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder
public final class org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder {
  public org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder withEncodingType(com.knuddels.jtokkit.api.EncodingType);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder withChunkSize(int);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder withMinChunkSizeChars(int);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder withMinChunkLengthToEmbed(int);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder withMaxNumChunks(int);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder withKeepSeparator(boolean);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder withPunctuationMarks(List<Character>);
  public org.springframework.ai.transformer.splitter.TokenTextSplitter build();
}

## org.springframework.ai.reader.pdf.PagePdfDocumentReader
public class org.springframework.ai.reader.pdf.PagePdfDocumentReader implements org.springframework.ai.document.DocumentReader {
  public static final String METADATA_START_PAGE_NUMBER;
  public static final String METADATA_END_PAGE_NUMBER;
  public static final String METADATA_FILE_NAME;
  public org.springframework.ai.reader.pdf.PagePdfDocumentReader(String);
  public org.springframework.ai.reader.pdf.PagePdfDocumentReader(org.springframework.core.io.Resource);
  public org.springframework.ai.reader.pdf.PagePdfDocumentReader(String, org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig);
  public org.springframework.ai.reader.pdf.PagePdfDocumentReader(org.springframework.core.io.Resource, org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig);
  public List<org.springframework.ai.document.Document> get();
  public Object get();
}

## org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder
public final class org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder {
  public org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder withPageExtractedTextFormatter(org.springframework.ai.reader.ExtractedTextFormatter);
  public org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder withPagesPerDocument(int);
  public org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder withPageTopMargin(int);
  public org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder withPageBottomMargin(int);
  public org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder withReversedParagraphPosition(boolean);
  public org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder addPageRange(int, int);
  public org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig build();
}

## org.springframework.ai.rag.postretrieval.document.DocumentPostProcessor
public interface org.springframework.ai.rag.postretrieval.document.DocumentPostProcessor extends function.BiFunction<org.springframework.ai.rag.Query, List<org.springframework.ai.document.Document>, List<org.springframework.ai.document.Document>> {
  public abstract List<org.springframework.ai.document.Document> process(org.springframework.ai.rag.Query, List<org.springframework.ai.document.Document>);
  public default List<org.springframework.ai.document.Document> apply(org.springframework.ai.rag.Query, List<org.springframework.ai.document.Document>);
  public default Object apply(Object, Object);
}

## org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever
public final class org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever implements org.springframework.ai.rag.retrieval.search.DocumentRetriever {
  public static final String FILTER_EXPRESSION;
  public org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever(org.springframework.ai.vectorstore.VectorStore, Double, Integer, function.Supplier<org.springframework.ai.vectorstore.filter.Filter$Expression>);
  public List<org.springframework.ai.document.Document> retrieve(org.springframework.ai.rag.Query);
  public static org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder builder();
}

## org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder
public final class org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder {
  public org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder vectorStore(org.springframework.ai.vectorstore.VectorStore);
  public org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder similarityThreshold(Double);
  public org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder topK(Integer);
  public org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder filterExpression(org.springframework.ai.vectorstore.filter.Filter$Expression);
  public org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder filterExpression(function.Supplier<org.springframework.ai.vectorstore.filter.Filter$Expression>);
  public org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever build();
}

## org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder
public final class org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder {
  public org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder();
  public org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder promptTemplate(org.springframework.ai.chat.prompt.PromptTemplate);
  public org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder emptyContextPromptTemplate(org.springframework.ai.chat.prompt.PromptTemplate);
  public org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder allowEmptyContext(Boolean);
  public org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder documentFormatter(function.Function<List<org.springframework.ai.document.Document>, String>);
  public org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter build();
}

## org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder
public final class org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder {
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder queryTransformers(List<org.springframework.ai.rag.preretrieval.query.transformation.QueryTransformer>);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder queryTransformers(org.springframework.ai.rag.preretrieval.query.transformation.QueryTransformer...);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder queryExpander(org.springframework.ai.rag.preretrieval.query.expansion.QueryExpander);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder documentRetriever(org.springframework.ai.rag.retrieval.search.DocumentRetriever);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder documentJoiner(org.springframework.ai.rag.retrieval.join.DocumentJoiner);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder documentPostProcessors(List<org.springframework.ai.rag.postretrieval.document.DocumentPostProcessor>);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder documentPostProcessors(org.springframework.ai.rag.postretrieval.document.DocumentPostProcessor...);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder queryAugmenter(org.springframework.ai.rag.generation.augmentation.QueryAugmenter);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder taskExecutor(org.springframework.core.task.TaskExecutor);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder scheduler(reactor.core.scheduler.Scheduler);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder order(Integer);
  public org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor build();
}

## org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder
public final class org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder {
  public org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder promptTemplate(org.springframework.ai.chat.prompt.PromptTemplate);
  public org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder searchRequest(org.springframework.ai.vectorstore.SearchRequest);
  public org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder protectFromBlocking(boolean);
  public org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder scheduler(reactor.core.scheduler.Scheduler);
  public org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder order(int);
  public org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor build();
}

## org.springframework.ai.chat.evaluation.FactCheckingEvaluator
public class org.springframework.ai.chat.evaluation.FactCheckingEvaluator implements org.springframework.ai.evaluation.Evaluator {
  public static org.springframework.ai.chat.evaluation.FactCheckingEvaluator forBespokeMinicheck(org.springframework.ai.chat.client.ChatClient$Builder);
  public org.springframework.ai.evaluation.EvaluationResponse evaluate(org.springframework.ai.evaluation.EvaluationRequest);
  public static org.springframework.ai.chat.evaluation.FactCheckingEvaluator$Builder builder(org.springframework.ai.chat.client.ChatClient$Builder);
}

## org.springframework.ai.vectorstore.VectorStore
public interface org.springframework.ai.vectorstore.VectorStore extends org.springframework.ai.document.DocumentWriter,org.springframework.ai.vectorstore.VectorStoreRetriever {
  public default String getName();
  public abstract void add(List<org.springframework.ai.document.Document>);
  public default void accept(List<org.springframework.ai.document.Document>);
  public abstract void delete(List<String>);
  public abstract void delete(org.springframework.ai.vectorstore.filter.Filter$Expression);
  public default void delete(String);
  public default <T> Optional<T> getNativeClient();
  public default void accept(Object);
}

## org.springframework.ai.vectorstore.SearchRequest$Builder
public final class org.springframework.ai.vectorstore.SearchRequest$Builder {
  public org.springframework.ai.vectorstore.SearchRequest$Builder();
  public org.springframework.ai.vectorstore.SearchRequest$Builder query(String);
  public org.springframework.ai.vectorstore.SearchRequest$Builder topK(int);
  public org.springframework.ai.vectorstore.SearchRequest$Builder similarityThreshold(double);
  public org.springframework.ai.vectorstore.SearchRequest$Builder similarityThresholdAll();
  public org.springframework.ai.vectorstore.SearchRequest$Builder filterExpression(org.springframework.ai.vectorstore.filter.Filter$Expression);
  public org.springframework.ai.vectorstore.SearchRequest$Builder filterExpression(String);
  public org.springframework.ai.vectorstore.SearchRequest build();
}

