Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1a8985b29 | ||
|
|
9073c52b5c |
+31
-34
@@ -1,5 +1,6 @@
|
||||
val wiremockVersion = "3.12.0"
|
||||
val postgresqlVersion = "42.7.11"
|
||||
val springAiVersion by extra("2.0.0")
|
||||
|
||||
plugins {
|
||||
java
|
||||
@@ -37,45 +38,41 @@ repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
extra["springAiVersion"] = "2.0.0"
|
||||
|
||||
|
||||
dependencies {
|
||||
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
||||
implementation("org.springframework.boot:spring-boot-starter-session-jdbc")
|
||||
// implementation("org.springframework.boot:spring-boot-starter-security")
|
||||
implementation("org.springframework.boot:spring-boot-starter-validation")
|
||||
implementation("org.springframework.boot:spring-boot-starter-webmvc")
|
||||
implementation("org.springframework.ai:spring-ai-starter-model-openai")
|
||||
implementation("org.postgresql:postgresql:$postgresqlVersion")
|
||||
implementation("org.springframework.ai:spring-ai-starter-vector-store-pgvector")
|
||||
|
||||
|
||||
|
||||
compileOnly("org.projectlombok:lombok")
|
||||
|
||||
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
||||
|
||||
runtimeOnly("org.postgresql:postgresql")
|
||||
|
||||
annotationProcessor("org.projectlombok:lombok")
|
||||
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-data-jpa-test")
|
||||
// testImplementation("org.springframework.boot:spring-boot-starter-security-test")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-validation-test")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-webmvc-test")
|
||||
testImplementation("org.wiremock:wiremock-standalone:$wiremockVersion")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-session-jdbc-test")
|
||||
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
}
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom("org.springframework.ai:spring-ai-bom:${property("springAiVersion")}")
|
||||
mavenBom("org.springframework.ai:spring-ai-bom:$springAiVersion")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Spring Boot Starters
|
||||
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
||||
implementation("org.springframework.boot:spring-boot-starter-session-jdbc")
|
||||
implementation("org.springframework.boot:spring-boot-starter-validation")
|
||||
implementation("org.springframework.boot:spring-boot-starter-webmvc")
|
||||
|
||||
// Spring AI Starters (versions managed by spring-ai-bom)
|
||||
implementation("org.springframework.ai:spring-ai-starter-model-openai")
|
||||
implementation("org.springframework.ai:spring-ai-starter-vector-store-pgvector")
|
||||
|
||||
// Database
|
||||
implementation("org.postgresql:postgresql:$postgresqlVersion")
|
||||
|
||||
// Tooling & Code Generation
|
||||
compileOnly("org.projectlombok:lombok")
|
||||
annotationProcessor("org.projectlombok:lombok")
|
||||
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
||||
|
||||
// Testing
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-data-jpa-test")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-validation-test")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-webmvc-test")
|
||||
testImplementation("org.springframework.boot:spring-boot-starter-session-jdbc-test")
|
||||
testImplementation("org.wiremock:wiremock-standalone:$wiremockVersion")
|
||||
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile> {
|
||||
options.compilerArgs.add("-parameters")
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.springframework.ai.vectorstore.filter.FilterExpressionBuilder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.vaessl.app.shared.ServiceItem;
|
||||
import com.vaessl.app.shared.ServiceType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* Embeds {@link ServiceItem}s into the shared vector store and prunes entries that no longer exist
|
||||
@@ -18,14 +19,11 @@ import com.vaessl.app.shared.ServiceType;
|
||||
* singleton bean shared across concurrent sync runs; callers own the per-sync ID accumulator.
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class EmbeddingService {
|
||||
|
||||
private final VectorStore vectorStore;
|
||||
|
||||
public EmbeddingService(VectorStore vectorStore) {
|
||||
this.vectorStore = vectorStore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Embeds and upserts {@code items} into the vector store, appending each item's ID to
|
||||
* {@code currentItemIds} so the caller can later prune stale entries via
|
||||
|
||||
Reference in New Issue
Block a user