diff --git a/pom.xml b/pom.xml
index 68623a0..5b77481 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,12 +27,12 @@
spring-boot-starter-web
com.alibaba.cloud.ai
spring-ai-alibaba-starter
1.0.0-M3.3
- -->
+
-
+
org.springframework.boot
diff --git a/src/main/java/com/xs/ai/SpringAiDemoApplication.java b/src/main/java/com/xs/ai/SpringAiDemoApplication.java
index 6b52452..8164cc3 100644
--- a/src/main/java/com/xs/ai/SpringAiDemoApplication.java
+++ b/src/main/java/com/xs/ai/SpringAiDemoApplication.java
@@ -29,7 +29,7 @@ public class SpringAiDemoApplication {
// In the real world, ingesting documents would often happen separately, on a CI
// server or similar.
@Bean
- CommandLineRunner ingestTermOfServiceToVectorStore(EmbeddingModel embeddingModel, VectorStore vectorStore,
+ CommandLineRunner ingestTermOfServiceToVectorStore(VectorStore vectorStore,
@Value("classpath:rag/terms-of-service.txt") Resource termsOfServiceDocs) {
return args -> {
diff --git a/src/main/java/com/xs/ai/controller/OpenAiController.java b/src/main/java/com/xs/ai/controller/OpenAiController.java
index 8e79916..c0f962a 100644
--- a/src/main/java/com/xs/ai/controller/OpenAiController.java
+++ b/src/main/java/com/xs/ai/controller/OpenAiController.java
@@ -46,14 +46,17 @@ public class OpenAiController {
""")
.defaultAdvisors(
new PromptChatMemoryAdvisor(chatMemory),
- new QuestionAnswerAdvisor(vectorStore, SearchRequest.query("预定航班")), // RAG
+ //new QuestionAnswerAdvisor(vectorStore, SearchRequest.query("预定航班")), // RAG
+ //每一次对话拦截后,搜索附加上后再给大模型
+ //new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()), // RAG
new LoggingAdvisor())
.defaultFunctions("getBookingDetails", "changeBooking", "cancelBooking") // FUNCTION CALLING
.build();
}
-
+ @Autowired
+ VectorStore vectorStore;
@CrossOrigin
@GetMapping(value = "/ai/generateStreamAsString", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
@@ -62,6 +65,7 @@ public class OpenAiController {
//return chatClient.stream(prompt);
Flux content = chatClient.prompt()
.system(s -> s.param("current_date", LocalDate.now().toString()))
+ .advisors(new QuestionAnswerAdvisor(vectorStore, SearchRequest.query(message)))
//.advisors(a -> a.param(CHAT_MEMORY_CONVERSATION_ID_KEY, chatId).param(CHAT_MEMORY_RETRIEVE_SIZE_KEY, 100))
.advisors(a -> a.param(CHAT_MEMORY_RETRIEVE_SIZE_KEY, 100))
.user(message)
diff --git a/src/main/java/com/xs/ai/services/CustomerSupportAssistant.java b/src/main/java/com/xs/ai/services/CustomerSupportAssistant.java
index a5f8769..bbd4885 100644
--- a/src/main/java/com/xs/ai/services/CustomerSupportAssistant.java
+++ b/src/main/java/com/xs/ai/services/CustomerSupportAssistant.java
@@ -12,7 +12,8 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */
+ *//*
+
package com.xs.ai.services;
@@ -30,9 +31,11 @@ import java.time.LocalDate;
import static org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor.CHAT_MEMORY_CONVERSATION_ID_KEY;
import static org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor.CHAT_MEMORY_RETRIEVE_SIZE_KEY;
+*/
/**
* * @author Christian Tzolov
- */
+ *//*
+
@Service
public class CustomerSupportAssistant {
@@ -58,13 +61,13 @@ public class CustomerSupportAssistant {
.defaultAdvisors(
new PromptChatMemoryAdvisor(chatMemory), // Chat Memory
// new VectorStoreChatMemoryAdvisor(vectorStore)),
-
+
new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()), // RAG
// new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()
// .withFilterExpression("'documentType' == 'terms-of-service' && region in ['EU', 'US']")),
-
+
new LoggingAdvisor())
-
+
.defaultFunctions("getBookingDetails", "changeBooking", "cancelBooking") // FUNCTION CALLING
.build();
@@ -81,4 +84,4 @@ public class CustomerSupportAssistant {
.content();
}
-}
\ No newline at end of file
+}*/
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 5a42f29..113a31f 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,4 +1,5 @@
-spring.ai.dashscope.api-key= ${ALI_AI_KEY}
-spring.ai.dashscope.chat.options.model=deepseek-v3
+spring.ai.dashscope.api-key=sk-6f67708d074d4d3fbdea96071209b60f
+#spring.ai.dashscope.chat.options.model=deepseek-r1
+spring.ai.dashscope.chat.options.model=qwen-max
diff --git a/src/main/resources/rag/terms-of-service.txt b/src/main/resources/rag/terms-of-service.txt
index 3e73bc8..ccfc7b2 100644
--- a/src/main/resources/rag/terms-of-service.txt
+++ b/src/main/resources/rag/terms-of-service.txt
@@ -10,4 +10,6 @@
3. 取消预订
- 最晚在航班起飞前 48 小时取消。
- 取消费用:经济舱 75 美元,豪华经济舱 50 美元,商务舱 25 美元。
-- 退款将在 7 个工作日内处理。
\ No newline at end of file
+- 退款将在 7 个工作日内处理。
+4. 查询航班
+- 航班最早是7点,最晚是22点,请注意出行时间
\ No newline at end of file