diff --git a/pom.xml b/pom.xml
index 9a18b21..aa990d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,19 +7,18 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.5
+ 3.3.6
com.example
spring-ai-demo
- 1.0.0
+ 1.1.0
spring-ai-demo
Spring AI Demo Project
17
- 0.8.1
@@ -35,27 +34,53 @@
spring-boot-starter-thymeleaf
-
- org.springframework.ai
- spring-ai-starter-model-openai
-
+
+
+
+
org.springframework.ai
spring-ai-starter-model-deepseek
+
+ org.springframework.ai
+ spring-ai-starter-model-zhipuai
+
+
+
org.springframework.ai
spring-ai-starter-vector-store-elasticsearch
+
co.elastic.clients
elasticsearch-java
- 8.13.3
+ 8.13.4
+
+ org.elasticsearch.client
+ elasticsearch-rest-client
+ 8.13.4
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+
@@ -93,6 +118,13 @@
pom
import
+
+ com.alibaba.cloud.ai
+ spring-ai-alibaba-bom
+ 1.0.0.2
+ pom
+ import
+
@@ -116,6 +148,14 @@
+
+ spring-milestones
+ Spring Milestones
+ https://repo.spring.io/milestone
+
+ false
+
+
spring-snapshots
Spring Snapshots
@@ -137,4 +177,4 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/main/java/com/example/springaidemo/controller/RagController.java b/src/main/java/com/example/springaidemo/controller/RagController.java
new file mode 100644
index 0000000..947fc77
--- /dev/null
+++ b/src/main/java/com/example/springaidemo/controller/RagController.java
@@ -0,0 +1,21 @@
+package com.example.springaidemo.controller;
+
+import com.example.springaidemo.service.VectorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/RagController")
+public class RagController {
+
+ @Autowired
+ private VectorService vectorService;
+
+ @RequestMapping("/storeVector")
+ public String storeVector() {
+ vectorService.storeVector();
+ return "success";
+ }
+
+}
diff --git a/src/main/java/com/example/springaidemo/service/VectorService.java b/src/main/java/com/example/springaidemo/service/VectorService.java
index 764cd1b..7534bb0 100644
--- a/src/main/java/com/example/springaidemo/service/VectorService.java
+++ b/src/main/java/com/example/springaidemo/service/VectorService.java
@@ -1,12 +1,29 @@
package com.example.springaidemo.service;
+import org.springframework.ai.document.Document;
+import org.springframework.ai.vectorstore.SearchRequest;
import org.springframework.ai.vectorstore.VectorStore;
+import org.springframework.ai.vectorstore.elasticsearch.ElasticsearchVectorStore;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.List;
+
+@Service
public class VectorService {
- @Autowired
- private VectorStore vectorStore;
+ @Autowired VectorStore vectorStore;
+ public void storeVector(){
+ List documents = List.of(
+ new Document("Spring AI rocks!! Spring AI rocks!! Spring AI rocks!! Spring AI rocks!! Spring AI rocks!!"),
+ new Document("The World is Big and Salvation Lurks Around the Corner"),
+ new Document("You walk forward facing the past and you turn back toward the future."));
+// Add the documents to Elasticsearch
+ vectorStore.add(documents);
+
+// Retrieve documents similar to a query
+ List results = this.vectorStore.similaritySearch(SearchRequest.builder().query("Spring").topK(5).build());
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5bd8389..1fa879e 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,6 +8,8 @@ spring:
ai:
deepseek:
api-key: sk-3043bb4777404970a22c7544dd30aaa2
+ zhipuai:
+ api-key: 73f440ddeafc47ba94ed66e35fbd63d7.VmlulRZ4BMWexncF
openai:
api-key: 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
# 如果您有代理服务,可以修改为代理地址
@@ -23,7 +25,7 @@ spring:
read-timeout: 60000 # 60秒读取超时
vectorstore:
elasticsearch:
- initialize-schema: true
+ initialize-schema: false
index-name: custom-index
dimensions: 1536
similarity: cosine
@@ -34,7 +36,7 @@ spring:
# model: ${OLLAMA_MODEL:llama2}
server:
- port: 8080
+ port: 8009
logging:
level: