diff --git a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java index 2752554..d39645c 100644 --- a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java +++ b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java @@ -441,18 +441,12 @@ public class ScenarioExecutionService { AzureOpenAiChatOptions.Builder optionsBuilder = AzureOpenAiChatOptions.builder() .deploymentName(aiModel.getModel()); - // Aggiungi maxTokens solo se non è nullo - if (aiModel.getMaxTokens() != null) { + if (aiModel.isLegacy() ) { + logger.info("Using legacy Azure OpenAI model: " + aiModel.getModel()); + optionsBuilder.temperature(aiModel.getTemperature().doubleValue()); optionsBuilder.maxTokens(aiModel.getMaxTokens()); - logger.info("Setting maxTokens: " + aiModel.getMaxTokens()); - } - - // Aggiungi temperature solo se non è nullo - if (aiModel.getTemperature() != null) { - optionsBuilder.temperature(Double.valueOf(aiModel.getTemperature())); - logger.info("Setting temperature: " + aiModel.getTemperature()); - } - + } + AzureOpenAiChatOptions openAIChatOptions = optionsBuilder.build(); diff --git a/src/main/java/com/olympus/hermione/tools/DocumentationTool.java b/src/main/java/com/olympus/hermione/tools/DocumentationTool.java index 49daa01..a5b1790 100644 --- a/src/main/java/com/olympus/hermione/tools/DocumentationTool.java +++ b/src/main/java/com/olympus/hermione/tools/DocumentationTool.java @@ -13,52 +13,107 @@ import org.springframework.ai.vectorstore.VectorStore; public class DocumentationTool { - Logger logger = Logger.getLogger(DocumentationTool.class.getName()); - - private String application; - private String project; - private VectorStore vectorStore; + private static final Logger logger = Logger.getLogger(DocumentationTool.class.getName()); + private static final int DEFAULT_TOP_K = 5; + private static final double DEFAULT_SIMILARITY_THRESHOLD = 0.7; + private final String application; + private final String project; + private final VectorStore vectorStore; + /** + * Costruttore per DocumentationTool. + * + * @param application Nome dell'applicazione + * @param project Nome del progetto + * @param vectorStore Vector store contenente i documenti + */ public DocumentationTool(String application, String project, VectorStore vectorStore) { this.application = application; this.project = project; this.vectorStore = vectorStore; } - @Tool(description = "Find any functional information about the application. Can be used to answeer any questron with a specific focus on the application") + /** + * @param query The user's question or information request regarding the application. + * @return A formatted response containing the most relevant documentation excerpts. + * + *
+ * This method is intended for integration with conversational AI systems (such as ChatGPT), + * enabling them to provide accurate and context-aware answers about the application's functionality. + *
+ */ + @Tool(description = "Retrieves functional information about the application based on the provided query.\r\n" + // + " * It performs a semantic search over the application's documentation and returns the most relevant results.") public String getDocumentation(String query) { + logRequestDetails(query); + + String filterExpression = buildFilterExpression(); + logger.info("[TOOL]LLM DocumentationTool Getting documentation for filterExpression: " + filterExpression); + SearchRequest request = buildSearchRequest(query, filterExpression); + List