Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01B38FGKKam5SCGgwgduVAh3
40 lines
2.4 KiB
Bash
Executable File
40 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Writes docs/output/12-api-facts.txt: the public API of every Spring AI class this repository
|
|
# relies on, read from the jars the build resolves (not from documentation).
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
mkdir -p docs/output target
|
|
mvn -B -q dependency:build-classpath -Dmdep.outputFile=target/classpath.txt >/dev/null
|
|
CP="$(cat target/classpath.txt)"
|
|
OUT=docs/output/12-api-facts.txt
|
|
jar_of() { tr ':' '\n' < target/classpath.txt | grep "/$1-[0-9]" | head -1; }
|
|
jp() { echo "## $1"; javap -cp "$CP" -public "$1" | grep -v '^Compiled' | sed 's/java\.util\.//g; s/java\.lang\.//g'; echo; }
|
|
|
|
{
|
|
echo "# Spring AI API facts, read with javap from the jars this build resolves"
|
|
echo
|
|
echo "spring-ai.version: $(grep -m1 -o '<spring-ai.version>[^<]*' pom.xml | sed 's/.*>//')"
|
|
echo
|
|
echo "## classes in org/springframework/ai/rag (top level, from spring-ai-rag)"
|
|
unzip -Z1 "$(jar_of spring-ai-rag)" | grep '\.class$' | grep -v '\$' | sed 's|org/springframework/ai/rag/||; s|\.class||' | sort
|
|
echo
|
|
echo "## classes anywhere in spring-ai-rag whose name contains \"rerank\": $(unzip -Z1 "$(jar_of spring-ai-rag)" | grep -ic rerank || true)"
|
|
echo
|
|
echo "## classes in any jar on this project's classpath whose name contains \"SemanticSearchCache\" or \"SemanticCache\": $(for j in $(tr ':' '\n' < target/classpath.txt); do unzip -Z1 "$j" 2>/dev/null; done | grep -Eic 'SemanticSearchCache|SemanticCache' || true)"
|
|
echo
|
|
jp org.springframework.ai.transformer.splitter.TokenTextSplitter
|
|
jp 'org.springframework.ai.transformer.splitter.TokenTextSplitter$Builder'
|
|
jp org.springframework.ai.reader.pdf.PagePdfDocumentReader
|
|
jp 'org.springframework.ai.reader.pdf.config.PdfDocumentReaderConfig$Builder'
|
|
jp org.springframework.ai.rag.postretrieval.document.DocumentPostProcessor
|
|
jp org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever
|
|
jp 'org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever$Builder'
|
|
jp 'org.springframework.ai.rag.generation.augmentation.ContextualQueryAugmenter$Builder'
|
|
jp 'org.springframework.ai.rag.advisor.RetrievalAugmentationAdvisor$Builder'
|
|
jp 'org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor$Builder'
|
|
jp org.springframework.ai.chat.evaluation.FactCheckingEvaluator
|
|
jp org.springframework.ai.vectorstore.VectorStore
|
|
jp 'org.springframework.ai.vectorstore.SearchRequest$Builder'
|
|
} > "$OUT"
|
|
echo "wrote $OUT"
|