This is an automated email from the ASF dual-hosted git repository.

tomsun28 pushed a commit to branch 2.0.0
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/2.0.0 by this push:
     new 35e373ee37 fix spring-ai
35e373ee37 is described below

commit 35e373ee37ff93239d1090d07aa2c4ab0b313da3
Author: tomsun28 <[email protected]>
AuthorDate: Thu Jun 4 22:25:12 2026 +0800

    fix spring-ai
    
    Signed-off-by: tomsun28 <[email protected]>
---
 hertzbeat-ai/pom.xml                               | 13 +++++++-
 .../org/apache/hertzbeat/ai/config/LlmConfig.java  | 37 +++++++++++-----------
 mcp-servers/mcp-log-server/pom.xml                 |  4 +--
 3 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/hertzbeat-ai/pom.xml b/hertzbeat-ai/pom.xml
index 2b270c5bf9..7697f6fb32 100644
--- a/hertzbeat-ai/pom.xml
+++ b/hertzbeat-ai/pom.xml
@@ -25,7 +25,7 @@
        </parent>
        <artifactId>hertzbeat-ai</artifactId>
        <properties>
-               <spring-ai.version>1.1.1</spring-ai.version>
+               <spring-ai.version>2.0.0-M8</spring-ai.version>
                <java.version>21</java.version>
        </properties>
 
@@ -79,6 +79,17 @@
                </dependency>
 
        </dependencies>
+       <repositories>
+               <repository>
+                       <id>spring-milestones</id>
+                       <name>Spring Milestones</name>
+                       <url>https://repo.spring.io/milestone</url>
+                       <snapshots>
+                               <enabled>false</enabled>
+                       </snapshots>
+               </repository>
+       </repositories>
+
        <dependencyManagement>
                <dependencies>
                        <dependency>
diff --git 
a/hertzbeat-ai/src/main/java/org/apache/hertzbeat/ai/config/LlmConfig.java 
b/hertzbeat-ai/src/main/java/org/apache/hertzbeat/ai/config/LlmConfig.java
index b145344610..70fae64081 100644
--- a/hertzbeat-ai/src/main/java/org/apache/hertzbeat/ai/config/LlmConfig.java
+++ b/hertzbeat-ai/src/main/java/org/apache/hertzbeat/ai/config/LlmConfig.java
@@ -18,6 +18,8 @@
 
 package org.apache.hertzbeat.ai.config;
 
+import com.openai.client.OpenAIClient;
+import com.openai.client.okhttp.OpenAIOkHttpClient;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.hertzbeat.common.support.event.AiProviderConfigChangeEvent;
 import org.apache.hertzbeat.common.entity.dto.ModelProviderConfig;
@@ -27,7 +29,6 @@ import org.apache.hertzbeat.common.util.JsonUtil;
 import org.springframework.ai.chat.client.ChatClient;
 import org.springframework.ai.openai.OpenAiChatModel;
 import org.springframework.ai.openai.OpenAiChatOptions;
-import org.springframework.ai.openai.api.OpenAiApi;
 import org.springframework.beans.factory.support.DefaultListableBeanFactory;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ConfigurableApplicationContext;
@@ -44,7 +45,7 @@ import org.springframework.context.event.EventListener;
 public class LlmConfig {
 
     private final GeneralConfigDao generalConfigDao;
-    
+
     private ApplicationContext applicationContext;
 
     public LlmConfig(GeneralConfigDao generalConfigDao, ApplicationContext 
applicationContext) {
@@ -88,7 +89,7 @@ public class LlmConfig {
                 modelProviderConfig.setBaseUrl("https://api.openai.com/v1";);
             }
         }
-        
+
         if (modelProviderConfig.getModel() == null) {
             if ("openai".equals(modelProviderConfig.getCode())) {
                 modelProviderConfig.setModel("gpt-5");
@@ -101,23 +102,23 @@ public class LlmConfig {
             }
         }
 
-        OpenAiApi.Builder builder = new OpenAiApi.Builder();
-        builder.baseUrl(modelProviderConfig.getBaseUrl());
-        builder.apiKey(modelProviderConfig.getApiKey());
-        builder.completionsPath("/chat/completions");
-        
+        OpenAIClient openAiClient = OpenAIOkHttpClient.builder()
+                .baseUrl(modelProviderConfig.getBaseUrl())
+                .apiKey(modelProviderConfig.getApiKey())
+                .build();
+
         // Create Chat Options
         OpenAiChatOptions openAiChatOptions = OpenAiChatOptions.builder()
                 .model(modelProviderConfig.getModel())
                 .temperature(0.3)
                 .build();
-        
+
         // Create Chat Model
         OpenAiChatModel openAiChatModel = OpenAiChatModel.builder()
-                .openAiApi(builder.build())
-                .defaultOptions(openAiChatOptions)
+                .openAiClient(openAiClient)
+                .options(openAiChatOptions)
                 .build();
-        
+
         // Create and return ChatClient
         return ChatClient.create(openAiChatModel);
     }
@@ -129,25 +130,25 @@ public class LlmConfig {
     @EventListener(AiProviderConfigChangeEvent.class)
     public void onAiProviderConfigChange(AiProviderConfigChangeEvent event) {
         log.info("Provider configuration change event received, refreshing 
ChatClient bean");
-        
+
         try {
             ConfigurableApplicationContext configurableContext = 
(ConfigurableApplicationContext) applicationContext;
             DefaultListableBeanFactory beanFactory = 
(DefaultListableBeanFactory) configurableContext.getBeanFactory();
-            
+
             // Remove the existing ChatClient bean
             if (beanFactory.containsSingleton("openAiChatClient")) {
                 beanFactory.destroySingleton("openAiChatClient");
                 log.info("Existing ChatClient bean destroyed");
             }
-                        
+
             // Create new ChatClient with updated configuration
             ChatClient newChatClient = createChatClient();
-            
+
             // Register the new ChatClient bean
             beanFactory.registerSingleton("openAiChatClient", newChatClient);
-            
+
             log.info("ChatClient bean refreshed successfully with new AI 
provider configuration");
-            
+
         } catch (Exception e) {
             log.error("Failed to refresh ChatClient bean after configuration 
change", e);
         }
diff --git a/mcp-servers/mcp-log-server/pom.xml 
b/mcp-servers/mcp-log-server/pom.xml
index 03771183ef..0aab7e2c16 100644
--- a/mcp-servers/mcp-log-server/pom.xml
+++ b/mcp-servers/mcp-log-server/pom.xml
@@ -31,7 +31,7 @@
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <spring-ai.version>1.0.0-M6</spring-ai.version>
+        <spring-ai.version>2.0.0-M8</spring-ai.version>
     </properties>
 
     <dependencyManagement>
@@ -56,7 +56,7 @@
     <dependencies>
         <dependency>
             <groupId>org.springframework.ai</groupId>
-            
<artifactId>spring-ai-mcp-server-webflux-spring-boot-starter</artifactId>
+            <artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
             <version>${spring-ai.version}</version>
         </dependency>
         <!-- json path parser-->


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to