Pre-Retrieval: * Consolidated naming and documentation

Retrieval: * Consolidated naming and documentation * Introduced DocumentJoiner sub-module and CompositionDocumentJoiner operator

Post-Retrieval: * Introduced main interfaces for sub-modules. Implementation waiting for missing features in Document APIs

Orchestration: * Introduced QueryRouter sub-module and AllDocumentRetrieversQueryRouter operator

Generation: * Consolidated naming and documentation

Advisor: * Introduced BaseAdvisor to reduce boilerplate when implementing Advisors * Extended RetrievalAugmentationAdvisor to include the new sub-modules

Relates to #gh-1603

Comment From: markpollack

I had to add

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>context-propagation</artifactId>
    <scope>test</scope>
</dependency>

to the spring-ai-integration-test to avoid classdef not found . I would have thought it would come transitively.

Comment From: markpollack

This test didn't pass in the maven build in the terminal, but does in the IDE.

[ERROR] org.springframework.ai.integration.tests.client.advisor.RetrievalAugmentationAdvisorIT.ragWithTranslation -- Time elapsed: 2.402 s <<< FAILURE!
java.lang.AssertionError: 

Expecting actual:
  "Anacletus og Birbas eventyr finder sted i de skotske højland."
to contain:
  "Highlands"
 (ignoring case)
    at org.springframework.ai.integration.tests.client.advisor.RetrievalAugmentationAdvisorIT.ragWithTranslation(RetrievalAugmentationAdvisorIT.java:131)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

seems like the model sometimes doesn't follow instructions?

Comment From: markpollack

merged in d759fb294bac1a811283d4a620fa0d15c66409d8 Will see how well the CI handles the test.