Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
import com.sap.ai.sdk.grounding.model.DocumentKeyValueListPair;
import com.sap.ai.sdk.grounding.model.DocumentResponse;
import com.sap.ai.sdk.grounding.model.Documents;
import com.sap.ai.sdk.grounding.model.GetPipelines;
import com.sap.ai.sdk.grounding.model.KeyValueListPair;
import com.sap.ai.sdk.grounding.model.Pipelines;
import com.sap.cloud.sdk.cloudplatform.connectivity.DefaultHttpDestination;
import com.sap.cloud.sdk.cloudplatform.connectivity.HttpDestination;
import java.util.UUID;
Expand All @@ -35,7 +35,7 @@ public class GroundingClientTest {
void testPipelines() {
final PipelinesApi api = new GroundingClient(SERVICE).pipelines();

final Pipelines allPipelines = api.getAllPipelines("reosurceGroup");
final GetPipelines allPipelines = api.getAllPipelines("reosurceGroup");
assertThat(allPipelines).isNotNull();
assertThat(allPipelines.getResources()).isEmpty();
}
Expand All @@ -61,7 +61,7 @@ void testVector() {
});

final UUID collectionId = collections.getResources().get(0).getId();
final Documents documents = api.getAllDocuments("reosurceGroup", collectionId);
final Documents documents = api.getDocumentsByCollectionId("reosurceGroup", collectionId);
assertThat(documents).isNotNull();
final DocumentKeyValueListPair documentMeta =
DocumentKeyValueListPair.create()
Expand All @@ -80,7 +80,7 @@ void testVector() {

final UUID documentId = documents.getResources().get(0).getId();
final DocumentResponse document =
api.getDocumentById("reosurceGroup", collectionId, documentId);
api.getDocumentByIdForCollection("reosurceGroup", collectionId, documentId);
assertThat(document).isNotNull();
assertThat(document.getId()).isEqualTo(documentId);
assertThat(document.getMetadata()).isNotNull().containsExactly(documentMeta);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,9 @@
import com.sap.ai.sdk.grounding.model.DocumentWithoutChunks;
import com.sap.ai.sdk.grounding.model.EmbeddingConfig;
import com.sap.ai.sdk.grounding.model.KeyValueListPair;
import com.sap.ai.sdk.grounding.model.Pipeline;
import com.sap.ai.sdk.grounding.model.RetrievalSearchConfiguration;
import com.sap.ai.sdk.grounding.model.RetrievalSearchFilter;
import com.sap.ai.sdk.grounding.model.RetrievalSearchInput;
import com.sap.ai.sdk.grounding.model.SearchConfiguration;
import com.sap.ai.sdk.grounding.model.SearchInput;
import com.sap.ai.sdk.grounding.model.TextOnlyBaseChunk;
import com.sap.cloud.sdk.services.openapi.core.OpenApiResponse;
import java.time.format.TextStyle;
Expand Down Expand Up @@ -64,7 +63,8 @@ Object getAllPipelines(
if ("json".equals(format)) {
return pipelines;
}
final var ids = pipelines.getResources().stream().map(Pipeline::getId).collect(joining(", "));
final var ids = List.of();
// pipelines.getResources().stream().map(getPipeline::getId).collect(joining(", "));
return "Found pipelines with ids: " + ids;
}

Expand Down Expand Up @@ -92,8 +92,8 @@ Object searchInDocuments(
.id("question")
.dataRepositoryType(DataRepositoryType.VECTOR)
.dataRepositories(List.of("*"))
.searchConfiguration(SearchConfiguration.create().maxChunkCount(10));
final var q = RetrievalSearchInput.create().query("When was the last upload?").filters(filter);
.searchConfiguration(RetrievalSearchConfiguration.create().maxChunkCount(10));
final var q = SearchInput.create().query("When was the last upload?").filters(filter);
final var results = CLIENT_RETRIEVAL.search(RESOURCE_GROUP, q);

if ("json".equals(format)) {
Expand All @@ -102,7 +102,7 @@ Object searchInDocuments(
final var messages =
results.getResults().stream()
.flatMap(resultsInner1 -> resultsInner1.getResults().stream())
.flatMap(result -> result.getDataRepository().getDocuments().stream())
.flatMap(result -> result.getDocuments().stream())
.flatMap(dataRepositorySearchResult -> dataRepositorySearchResult.getChunks().stream())
.map(Chunk::getContent)
.toList();
Expand All @@ -127,7 +127,7 @@ Object getAllCollections(
Object getDocumentsByCollectionId(
@Nonnull @PathVariable("id") final UUID collectionId,
@Nullable @RequestParam(value = "format", required = false) final String format) {
final var documents = CLIENT_VECTOR.getAllDocuments(RESOURCE_GROUP, collectionId);
final var documents = CLIENT_VECTOR.getDocumentsByCollectionId(RESOURCE_GROUP, collectionId);
if ("json".equals(format)) {
return documents;
}
Expand Down Expand Up @@ -162,7 +162,8 @@ Object createDocument(
final var docMeta = DocumentKeyValueListPair.create().key("purpose").value("testing");
final var doc = BaseDocument.create().chunks(chunk).metadata(docMeta);
final var request = DocumentCreateRequest.create().documents(doc);
final var response = CLIENT_VECTOR.createDocuments(RESOURCE_GROUP, collectionId, request);
final var response =
CLIENT_VECTOR.createCollectionDocuments(RESOURCE_GROUP, collectionId, request);

if ("json".equals(format)) {
return response;
Expand All @@ -184,12 +185,12 @@ Object deleteCollection(
final var doc = BaseDocument.create().chunks(chunk).metadata(docMeta);
final var request = DocumentCreateRequest.create().documents(doc);

final var documents = CLIENT_VECTOR.getAllDocuments(RESOURCE_GROUP, collectionId);
final var documents = CLIENT_VECTOR.getDocumentsByCollectionId(RESOURCE_GROUP, collectionId);
final var ids = documents.getResources().stream().map(DocumentWithoutChunks::getId).toList();
log.info("Deleting collection {} with {} documents: {}", collectionId, ids.size(), ids);

for (final var documentId : ids) {
final var del = CLIENT_VECTOR.deleteDocumentById(RESOURCE_GROUP, collectionId, documentId);
final var del = CLIENT_VECTOR.deleteCollectionById(RESOURCE_GROUP, collectionId, documentId);
if (del.getStatusCode() >= 400) {
final var msg = "Document {} could not be deleted, status code [{}], headers: {}";
log.error(msg, documentId, del.getStatusCode(), del.getHeaders());
Expand All @@ -209,7 +210,8 @@ Object getDocumentChunksById(
@Nonnull @PathVariable("collectionId") final UUID collectionId,
@Nonnull @PathVariable("documentId") final UUID documentId,
@Nullable @RequestParam(value = "format", required = false) final String format) {
final var document = CLIENT_VECTOR.getDocumentById(RESOURCE_GROUP, collectionId, documentId);
final var document =
CLIENT_VECTOR.getDocumentByIdForCollection(RESOURCE_GROUP, collectionId, documentId);
if ("json".equals(format)) {
return document;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@

import com.sap.ai.sdk.grounding.model.CollectionsListResponse;
import com.sap.ai.sdk.grounding.model.DataRepositories;
import com.sap.ai.sdk.grounding.model.DataRepositorySearchResults;
import com.sap.ai.sdk.grounding.model.DocumentResponse;
import com.sap.ai.sdk.grounding.model.Documents;
import com.sap.ai.sdk.grounding.model.DocumentsListResponse;
import com.sap.ai.sdk.grounding.model.Pipelines;
import com.sap.ai.sdk.grounding.model.RetievalSearchResults;
import com.sap.ai.sdk.grounding.model.GetPipelines;
import com.sap.ai.sdk.grounding.model.SearchResults;
import com.sap.cloud.sdk.services.openapi.core.OpenApiResponse;
import java.time.format.TextStyle;
import java.util.Locale;
Expand All @@ -29,9 +30,9 @@ void testPipelinesGetAll() {
final var controller = new GroundingController();

final var result = controller.getAllPipelines(JSON_FORMAT);
assertThat(result).isInstanceOf(Pipelines.class);
final var pipelinesList = ((Pipelines) result).getResources();
final var pipelinesCount = ((Pipelines) result).getCount();
assertThat(result).isInstanceOf(GetPipelines.class);
final var pipelinesList = ((GetPipelines) result).getResources();
final var pipelinesCount = ((GetPipelines) result).getCount();

// we don't have testable data yet, but the endpoint works without errors
assertThat(pipelinesCount).isEqualTo(0);
Expand Down Expand Up @@ -87,9 +88,9 @@ void testCreateDeleteCollection() {

// (4) SEARCH FOR DOCUMENTS
Object search = controller.searchInDocuments(JSON_FORMAT);
assertThat(search).isInstanceOf(RetievalSearchResults.class);
assertThat(search).isInstanceOf(SearchResults.class);
final var dayOfWeek = now().getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH);
this.assertDocumentSearchResult((RetievalSearchResults) search, dayOfWeek);
this.assertDocumentSearchResult((DataRepositorySearchResults) search, dayOfWeek);

// (5) CLEAN UP
Object deletion = controller.deleteCollection(collectionUuid, JSON_FORMAT);
Expand All @@ -101,7 +102,7 @@ void testCreateDeleteCollection() {
.hasMessageContaining("404 Not Found");
}

private void assertDocumentSearchResult(RetievalSearchResults search, String dayOfWeek) {
private void assertDocumentSearchResult(DataRepositorySearchResults search, String dayOfWeek) {
assertThat(search.getResults()).isNotEmpty();
for (final var resultsByFilter : search.getResults()) {
assertThat(resultsByFilter.getFilterId()).isEqualTo("question");
Expand Down