Add rag module: Spring AI 2.0 RAG with pgvector, chunking, reranking and a faithfulness check
Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01B38FGKKam5SCGgwgduVAh3
This commit is contained in:
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user