feat: add actuator and Consul discovery to rag-service

This commit is contained in:
2026-02-18 20:02:33 +01:00
parent 450f8cadc8
commit cf87107156
2 changed files with 32 additions and 5 deletions

View File

@@ -6,12 +6,11 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.7</version> <version>3.5.7</version>
<relativePath/> <!-- lookup parent from repository --> <relativePath/>
</parent> </parent>
<groupId>com.balex</groupId> <groupId>com.balex</groupId>
<artifactId>rag</artifactId> <artifactId>rag</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>rag</name>
<description>Backend for queries to RAG</description> <description>Backend for queries to RAG</description>
<url/> <url/>
<licenses> <licenses>
@@ -29,6 +28,7 @@
<properties> <properties>
<java.version>25</java.version> <java.version>25</java.version>
<spring-ai.version>1.0.3</spring-ai.version> <spring-ai.version>1.0.3</spring-ai.version>
<spring-cloud.version>2025.0.0</spring-cloud.version>
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version> <lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
</properties> </properties>
<dependencies> <dependencies>
@@ -40,6 +40,16 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId> <artifactId>spring-boot-starter-validation</artifactId>
</dependency> </dependency>
<!-- Actuator for health checks and Consul registration -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Consul service discovery -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
@@ -160,6 +170,13 @@
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

View File

@@ -5,11 +5,21 @@ spring.ai.openai.base-url=${SPRING_AI_OPENAI_BASE_URL:https://api.groq.com/opena
spring.ai.openai.api-key=${SPRING_AI_OPENAI_API_KEY:} spring.ai.openai.api-key=${SPRING_AI_OPENAI_API_KEY:}
spring.ai.openai.chat.model=${SPRING_AI_OPENAI_CHAT_MODEL:llama-3.3-70b-versatile} spring.ai.openai.chat.model=${SPRING_AI_OPENAI_CHAT_MODEL:llama-3.3-70b-versatile}
# --- Embedding model: use local pgvector with a lightweight model --- # --- Embedding model: local ONNX (Groq has no embedding API) ---
# Groq does not provide an embedding endpoint, so we disable OpenAI embedding auto-config
# and rely on the pgvector store's existing embedding setup
spring.ai.openai.embedding.enabled=false spring.ai.openai.embedding.enabled=false
# --- Consul service discovery ---
spring.cloud.consul.host=${SPRING_CLOUD_CONSUL_HOST:localhost}
spring.cloud.consul.port=${SPRING_CLOUD_CONSUL_PORT:8500}
spring.cloud.consul.discovery.service-name=rag-service
spring.cloud.consul.discovery.instance-id=${spring.application.name}-${random.value}
spring.cloud.consul.discovery.prefer-ip-address=true
spring.cloud.consul.discovery.health-check-interval=10s
# --- Actuator ---
management.endpoints.web.exposure.include=health,info
management.endpoint.health.show-details=always
jwt.secret=${JWT_SECRET:ywfI6dBznYmHbokihB/OBzZz6E0Fj+6PiqrM8dQ5c3t0HeYarblCbOGM8vQtOt472AtQ+MsCH7OVIKHOzjrPsQ==} jwt.secret=${JWT_SECRET:ywfI6dBznYmHbokihB/OBzZz6E0Fj+6PiqrM8dQ5c3t0HeYarblCbOGM8vQtOt472AtQ+MsCH7OVIKHOzjrPsQ==}
jwt.expiration=103600000 jwt.expiration=103600000
spring.datasource.url=${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/ragdb} spring.datasource.url=${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/ragdb}