From 368f7bdfba935aa83c079da851c14b3ea409ca68 Mon Sep 17 00:00:00 2001 From: Mark Pollack Date: Wed, 15 May 2024 09:55:39 +0200 Subject: [PATCH] Remove filter on external knowledge. * Update question so that evaulator passes fix formatting --- .../ai/openai/chat/chatbot/OpenAiDefaultChatBotIT.java | 3 ++- .../ai/chat/prompt/transformer/QuestionContextAugmentor.java | 5 +---- .../ai/chat/prompt/transformer/VectorStoreRetriever.java | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/chatbot/OpenAiDefaultChatBotIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/chatbot/OpenAiDefaultChatBotIT.java index f6ae162bd..c22085a21 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/chatbot/OpenAiDefaultChatBotIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/chatbot/OpenAiDefaultChatBotIT.java @@ -26,6 +26,7 @@ import org.springframework.ai.chat.chatbot.ChatBot; import org.springframework.ai.chat.prompt.transformer.TransformerContentType; import org.springframework.ai.document.Document; import org.springframework.ai.openai.OpenAiChatOptions; +import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.qdrant.QdrantContainer; @@ -91,7 +92,7 @@ public class OpenAiDefaultChatBotIT { void simpleChat() { loadData(); - var prompt = new Prompt(new UserMessage("What bike is good for city commuting?")); + var prompt = new Prompt(new UserMessage("What reliable road bike?")); var chatBotResponse = this.chatBot.call(new PromptContext(prompt)); String answer = chatBotResponse.getChatResponse().getResult().getOutput().getContent(); assertTrue(answer.contains("Celerity"), "Response does not include 'Celerity'"); diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/QuestionContextAugmentor.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/QuestionContextAugmentor.java index 7a99d9eb8..12e4aada2 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/QuestionContextAugmentor.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/QuestionContextAugmentor.java @@ -61,10 +61,7 @@ public class QuestionContextAugmentor implements PromptTransformer { } protected String doCreateContext(List data) { - return data.stream() - .filter(content -> content.getMetadata().containsKey(TransformerContentType.EXTERNAL_KNOWLEDGE)) - .map(Content::getContent) - .collect(Collectors.joining(System.lineSeparator())); + return data.stream().map(Content::getContent).collect(Collectors.joining(System.lineSeparator())); } private Map doCreateContextMap(Prompt prompt, String context) { diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/VectorStoreRetriever.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/VectorStoreRetriever.java index 92608b3d9..8a9e58b1c 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/VectorStoreRetriever.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/prompt/transformer/VectorStoreRetriever.java @@ -23,6 +23,7 @@ import org.springframework.ai.chat.messages.MessageType; import org.springframework.ai.document.Document; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; +import org.springframework.ai.vectorstore.filter.Filter; import java.util.List; import java.util.Objects; @@ -60,8 +61,7 @@ public class VectorStoreRetriever implements PromptTransformer { .map(m -> m.getContent()) .collect(Collectors.joining(System.lineSeparator())); - List documents = vectorStore.similaritySearch(searchRequest.withQuery(userMessage) - .withFilterExpression(TransformerContentType.EXTERNAL_KNOWLEDGE + "=='true'")); + List documents = vectorStore.similaritySearch(searchRequest.withQuery(userMessage)); logger.info("Retrieved {} documents for user message {}", documents.size(), userMessage); for (Document document : documents) {