Skip to content

Commit b499994

Browse files
committed
Requested changes
1 parent da477bf commit b499994

File tree

2 files changed

+33
-20
lines changed

2 files changed

+33
-20
lines changed

sample-code/spring-app/src/main/java/com/sap/ai/sdk/app/controllers/GroundingController.java

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.sap.ai.sdk.grounding.model.Chunk;
1313
import com.sap.ai.sdk.grounding.model.Collection;
1414
import com.sap.ai.sdk.grounding.model.CollectionRequest;
15+
import com.sap.ai.sdk.grounding.model.CollectionsListResponse;
1516
import com.sap.ai.sdk.grounding.model.DataRepository;
1617
import com.sap.ai.sdk.grounding.model.DataRepositoryType;
1718
import com.sap.ai.sdk.grounding.model.DocumentCreateRequest;
@@ -24,6 +25,7 @@
2425
import com.sap.ai.sdk.grounding.model.RetrievalSearchInput;
2526
import com.sap.ai.sdk.grounding.model.SearchConfiguration;
2627
import com.sap.ai.sdk.grounding.model.TextOnlyBaseChunk;
28+
import com.sap.cloud.sdk.services.openapi.core.OpenApiResponse;
2729
import java.time.format.TextStyle;
2830
import java.util.List;
2931
import java.util.Locale;
@@ -49,6 +51,7 @@ class GroundingController {
4951
private static final RetrievalApi CLIENT_RETRIEVAL = new GroundingClient().retrieval();
5052
private static final VectorApi CLIENT_VECTOR = new GroundingClient().vector();
5153
private static final String RESOURCE_GROUP = "ai-sdk-java-e2e";
54+
private static final String COLLECTION_TITLE = "ai-sdk-java-e2e-test";
5255

5356
/** Retrieve (up to 10) grounding pipeline entities. */
5457
@GetMapping("/pipelines/list")
@@ -136,7 +139,8 @@ Object getDocumentsByCollectionId(
136139
String createCollection(
137140
@Nullable @RequestParam(value = "format", required = false) final String format) {
138141
final var embeddingConfig = EmbeddingConfig.create().modelName(TEXT_EMBEDDING_ADA_002.name());
139-
final var request = CollectionRequest.create().embeddingConfig(embeddingConfig).title("e2e");
142+
final var request =
143+
CollectionRequest.create().embeddingConfig(embeddingConfig).title(COLLECTION_TITLE);
140144
final var documents = CLIENT_VECTOR.createCollection(RESOURCE_GROUP, request);
141145
final Map<String, List<String>> headers = documents.getHeaders();
142146

@@ -212,4 +216,29 @@ Object getDocumentChunksById(
212216
final var ids = document.getChunks().stream().map(TextOnlyBaseChunk::getContent).toList();
213217
return "The following document ids are available: %s.".formatted(ids);
214218
}
219+
220+
/** Delete all collections. */
221+
@GetMapping("/vector/collection/clear")
222+
Object deleteCollections(
223+
@Nullable @RequestParam(value = "format", required = false) final String format) {
224+
final var collections = this.getAllCollections("json");
225+
final var collectionsList = ((CollectionsListResponse) collections).getResources();
226+
var statusCode = 0;
227+
final var deletions = new java.util.ArrayList<>(List.of());
228+
229+
for (final var collection : collectionsList) {
230+
if (COLLECTION_TITLE.equals(collection.getTitle())) {
231+
final var deletion = this.deleteDocuments(collection.getId(), "json");
232+
if (deletion instanceof OpenApiResponse) {
233+
final var status = ((OpenApiResponse) deletion).getStatusCode();
234+
deletions.add(deletion);
235+
statusCode = Math.max(status, statusCode);
236+
}
237+
}
238+
}
239+
if ("json".equals(format)) {
240+
return deletions;
241+
}
242+
return statusCode >= 400 ? "Failed to delete collections" : "Deletion successful";
243+
}
215244
}

sample-code/spring-app/src/test/java/com/sap/ai/sdk/app/controllers/GroundingTest.java

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ void testRepositoriesGetAll() {
5757
void testCreateDeleteCollection() {
5858
final var controller = new GroundingController();
5959

60-
// (0) DELETE OLD DOCUMENTS
61-
this.deleteOldDocuments();
60+
// (0) DELETE OLD COLLECTIONS
61+
controller.deleteCollections(JSON_FORMAT);
6262

6363
// (1) CREATE COLLECTION
6464
final var collectionId = controller.createCollection(JSON_FORMAT);
@@ -89,7 +89,7 @@ void testCreateDeleteCollection() {
8989
final var dayOfWeek = now().getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH);
9090
this.assertDocumentSearchResult((RetievalSearchResults) search, dayOfWeek);
9191

92-
// (5) DELETE COLLECTION
92+
// (5) CLEAN UP
9393
Object deletion = controller.deleteDocuments(collectionUuid, JSON_FORMAT);
9494
assertThat(deletion).isInstanceOf(OpenApiResponse.class);
9595
assertThat(((OpenApiResponse) deletion).getStatusCode()).isEqualTo(202);
@@ -146,20 +146,4 @@ void testGetDocumentById(UUID collectionId, UUID documentId) {
146146
assertThat(chunk.getMetadata()).isNotNull().isNotEmpty();
147147
}
148148
}
149-
150-
void deleteOldDocuments() {
151-
final var controller = new GroundingController();
152-
153-
final var result = controller.getAllCollections(JSON_FORMAT);
154-
assertThat(result).isInstanceOf(CollectionsListResponse.class);
155-
final var collectionsList = ((CollectionsListResponse) result).getResources();
156-
157-
for (final var collection : collectionsList) {
158-
if ("e2e".equals(collection.getTitle())) {
159-
final var deletion = controller.deleteDocuments(collection.getId(), JSON_FORMAT);
160-
assertThat(deletion).isInstanceOf(OpenApiResponse.class);
161-
assertThat(((OpenApiResponse) deletion).getStatusCode()).isEqualTo(202);
162-
}
163-
}
164-
}
165149
}

0 commit comments

Comments
 (0)