From 9fbfa1a20f285c599bd5472f8c785f0fe067203c Mon Sep 17 00:00:00 2001 From: Andrea Terzani Date: Thu, 26 Jun 2025 12:42:43 +0200 Subject: [PATCH] Aggiorna le dipendenze di Spring AI e rimuove la configurazione obsoleta di VectorStore. Modifica la configurazione di sicurezza per consentire l'accesso a Swagger e aggiorna le credenziali nel file di configurazione. --- pom.xml | 38 ++++--------- .../olympus/apollo/config/ApolloConfig.java | 16 +----- .../apollo/config/VectorStoreConfig.java | 54 ------------------- .../controllers/SearchDocController.java | 14 ----- .../feign/services/REModuleService.java | 8 +-- .../security/config/SecurityConfig.java | 10 ++-- .../apollo/services/DeletionService.java | 4 +- src/main/resources/application.yml | 8 +-- 8 files changed, 21 insertions(+), 131 deletions(-) delete mode 100644 src/main/java/com/olympus/apollo/config/VectorStoreConfig.java diff --git a/pom.xml b/pom.xml index 930fa58..30d0872 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 21 - 1.0.0-M6 + 1.0.0 2023.0.3 21 21 @@ -69,32 +69,6 @@ spring-boot-starter-data-rest - - - org.springframework.ai - spring-ai-openai-spring-boot-starter - - - - - org.springframework.ai - spring-ai-azure-openai-spring-boot-starter - - - - org.springframework.ai - spring-ai-azure-store - - - - org.springframework.ai - spring-ai-chroma-store - - org.springframework.cloud spring-cloud-starter-netflix-eureka-client @@ -109,6 +83,16 @@ spring-cloud-starter-loadbalancer + + org.springframework.ai + spring-ai-starter-model-azure-openai + + + + org.springframework.ai + spring-ai-starter-vector-store-chroma + + org.springframework.ai spring-ai-tika-document-reader diff --git a/src/main/java/com/olympus/apollo/config/ApolloConfig.java b/src/main/java/com/olympus/apollo/config/ApolloConfig.java index 159706f..e87845f 100644 --- a/src/main/java/com/olympus/apollo/config/ApolloConfig.java +++ b/src/main/java/com/olympus/apollo/config/ApolloConfig.java @@ -2,9 +2,6 @@ package com.olympus.apollo.config; import org.springframework.ai.azure.openai.AzureOpenAiEmbeddingModel; import org.springframework.ai.embedding.EmbeddingModel; -import org.springframework.ai.openai.OpenAiEmbeddingModel; -import org.springframework.ai.vectorstore.VectorStore; -import org.springframework.ai.vectorstore.azure.AzureVectorStore; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @@ -12,26 +9,15 @@ import org.springframework.context.annotation.Primary; @Configuration public class ApolloConfig { - private final OpenAiEmbeddingModel openAiEmbeddingModel; private final AzureOpenAiEmbeddingModel azureOpenAiEmbeddingModel; - // Autowiring beans from both libraries - public ApolloConfig(OpenAiEmbeddingModel myServiceLib1, - AzureOpenAiEmbeddingModel azureOpenAiEmbeddingModel) { - this.openAiEmbeddingModel = myServiceLib1; + public ApolloConfig( AzureOpenAiEmbeddingModel azureOpenAiEmbeddingModel) { this.azureOpenAiEmbeddingModel = azureOpenAiEmbeddingModel; } - // Re-declaring and marking one as primary - @Bean - public EmbeddingModel primaryMyService() { - return openAiEmbeddingModel; // Choose the one you want as primary - } - - // Optionally declare the other bean without primary @Bean @Primary public EmbeddingModel secondaryMyService() { diff --git a/src/main/java/com/olympus/apollo/config/VectorStoreConfig.java b/src/main/java/com/olympus/apollo/config/VectorStoreConfig.java deleted file mode 100644 index f6907fd..0000000 --- a/src/main/java/com/olympus/apollo/config/VectorStoreConfig.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.olympus.apollo.config; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.ai.embedding.EmbeddingModel; -import org.springframework.ai.vectorstore.VectorStore; -import org.springframework.ai.vectorstore.azure.AzureVectorStore; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import com.azure.core.credential.AzureKeyCredential; -import com.azure.search.documents.indexes.SearchIndexClient; -import com.azure.search.documents.indexes.SearchIndexClientBuilder; - -@Configuration -public class VectorStoreConfig { - - - @Value("${spring.ai.vectorstore.azure.api-key}") - private String azureKey; - @Value("${spring.ai.vectorstore.azure.url}") - private String azureEndpoint; - @Value("${spring.ai.vectorstore.azure.initialize-schema}") - private boolean initSchema; - - @Bean - public SearchIndexClient searchIndexClient() { - return new SearchIndexClientBuilder().endpoint(azureEndpoint) - .credential(new AzureKeyCredential(azureKey)) - .buildClient(); - } - - @Bean - public VectorStore azureVectorStore(SearchIndexClient searchIndexClient, @Qualifier("azureOpenAiEmbeddingModel") EmbeddingModel embeddingModel) { - List fields = new ArrayList<>(); - - fields.add(AzureVectorStore.MetadataField.text("KsApplicationName")); - fields.add(AzureVectorStore.MetadataField.text("KsProjectName")); - fields.add(AzureVectorStore.MetadataField.text("KsDoctype")); - fields.add(AzureVectorStore.MetadataField.text("KsDocSource")); - fields.add(AzureVectorStore.MetadataField.text("KsFileSource")); - fields.add(AzureVectorStore.MetadataField.text("KsDocumentId")); - - //return new AzureVectorStore(searchIndexClient, embeddingModel,initSchema, fields); - return null; - } -} - - - - diff --git a/src/main/java/com/olympus/apollo/controllers/SearchDocController.java b/src/main/java/com/olympus/apollo/controllers/SearchDocController.java index a724397..0b74a09 100644 --- a/src/main/java/com/olympus/apollo/controllers/SearchDocController.java +++ b/src/main/java/com/olympus/apollo/controllers/SearchDocController.java @@ -20,7 +20,6 @@ import ch.qos.logback.classic.Logger; @RestController @RequestMapping("/api/vsearch") - public class SearchDocController { @Autowired @@ -31,19 +30,6 @@ public class SearchDocController { @PostMapping("/doc_search") public List vectorSearch(@RequestBody VectorSearchRequest vectorSearchRequest) { - // SearchRequest request = SearchRequest.defaults() - // .withQuery(vectorSearchRequest.getQuery()) - // .withTopK(vectorSearchRequest.getTopK()) - // .withSimilarityThreshold(vectorSearchRequest.getThreshold()); - - // List docs = this.vectorStore.similaritySearch(request); - // logger.info("Number of VDB retrieved documents: " + docs.size()); - - // List results = new ArrayList<>(); - // for(Document doc : docs){ - // results.add(doc.getContent()); - // } - Builder request_builder = SearchRequest.builder() .query(vectorSearchRequest.getQuery()) .topK(vectorSearchRequest.getTopK()) diff --git a/src/main/java/com/olympus/apollo/feign/services/REModuleService.java b/src/main/java/com/olympus/apollo/feign/services/REModuleService.java index 49cd8d6..be61a61 100644 --- a/src/main/java/com/olympus/apollo/feign/services/REModuleService.java +++ b/src/main/java/com/olympus/apollo/feign/services/REModuleService.java @@ -34,13 +34,7 @@ public class REModuleService { commonReverseEngRequest.setCommitSha(gitInfo.getCommitId()); gitInfo.getCodeTypes().forEach(codeType -> { - /*if(codeType.getType().equalsIgnoreCase("java")){ - commonReverseEngRequest.setApplicationType(codeType.getType()); - System.out.println("value is :"+javaREModule.revApplication(commonReverseEngRequest)); - } - if(codeType.getType().equalsIgnoreCase("jsp")) { - System.out.println("JSP Parser Module"); - }*/ + commonReverseEngRequest.setApplicationType(codeType.getType()); javaREModule.revApplication(commonReverseEngRequest); }); diff --git a/src/main/java/com/olympus/apollo/security/config/SecurityConfig.java b/src/main/java/com/olympus/apollo/security/config/SecurityConfig.java index fa22199..c709868 100644 --- a/src/main/java/com/olympus/apollo/security/config/SecurityConfig.java +++ b/src/main/java/com/olympus/apollo/security/config/SecurityConfig.java @@ -66,7 +66,7 @@ public class SecurityConfig { http .csrf().disable() .authorizeHttpRequests(auth -> auth - .requestMatchers("/api/auth/**", "/login").permitAll() + .requestMatchers("/api/auth/**", "/login","/swagger-ui/**", "/v3/api-docs/**", "/swagger-ui.html", "/swagger-resources/**", "/webjars/**").permitAll() .anyRequest().authenticated() ) .authenticationProvider(authenticationProvider()) @@ -77,11 +77,11 @@ public class SecurityConfig { @Bean public AuthenticationManager authManager(HttpSecurity http) throws Exception { - return http.getSharedObject(AuthenticationManagerBuilder.class) + AuthenticationManagerBuilder builder = http.getSharedObject(AuthenticationManagerBuilder.class); + builder .userDetailsService(userDetailsService) - .passwordEncoder(passwordEncoder()) - .and() - .build(); + .passwordEncoder(passwordEncoder()); + return builder.build(); } diff --git a/src/main/java/com/olympus/apollo/services/DeletionService.java b/src/main/java/com/olympus/apollo/services/DeletionService.java index 9e19ded..070fad4 100644 --- a/src/main/java/com/olympus/apollo/services/DeletionService.java +++ b/src/main/java/com/olympus/apollo/services/DeletionService.java @@ -96,9 +96,7 @@ public class DeletionService { ksDocumentRepository.save(ksDocument); logger.info("KSDocument with id {} deleted from VectorStore successfully.", deletionRequest.getKsDocumentId()); - // }else{ - // logger.warn("KSDocument with id {} does not exist.", deletionRequest.getKsDocumentId()); - // } + } catch (Exception e) { logger.error("An error occurred while deleting records: ", e+" "+Thread.currentThread().getName()); throw new RuntimeException("An error occurred while deleting records", e); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b7b1e82..b1b0840 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -26,15 +26,11 @@ spring: openai: api-key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" vectorstore: - azure: - api-key: "jxKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" - url: "https://search-olympus.search.windows.net" - initialize-schema: true chroma: client: - host: "http://108.142.74.161" + host: "http://128.251.239.194" port: "8000" - key-token: "tKAJfN1Yv5lP7pKorJHGfHMQhNEcM9uu" + key-token: "BxZWXFXC4UMSxamf5xP5SioGIg3FPfP7" initialize-schema: "true" collection-name: "olympus" data: