Go: add volcengine (#14409)

### What problem does this PR solve?

1. Refactor server_main
2. Add volcengine

### Type of change

- [x] Refactoring

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
Jin Hai
2026-04-28 12:12:58 +08:00
committed by GitHub
parent 2d522ccb36
commit 819257f257
9 changed files with 175 additions and 55 deletions

View File

@@ -18,6 +18,7 @@ package main
import (
"context"
"errors"
"flag"
"fmt"
"net/http"
@@ -38,15 +39,6 @@ import (
"ragflow/internal/utility"
)
// AdminServer admin server
type AdminServer struct {
router *admin.Router
handler *admin.Handler
service *admin.Service
engine *gin.Engine
port string
}
func main() {
var configPath string
flag.StringVar(&configPath, "config", "", "Path to configuration file")
@@ -161,7 +153,7 @@ func main() {
go func() {
logger.Info(fmt.Sprintf("Admin Go Version: %s", utility.GetRAGFlowVersion()))
logger.Info(fmt.Sprintf("Starting RAGFlow admin server on port: %d", cfg.Admin.Port))
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
logger.Fatal("Failed to start server", zap.Error(err))
}
}()

View File

@@ -2,6 +2,7 @@ package main
import (
"context"
"errors"
"flag"
"fmt"
"net/http"
@@ -65,23 +66,22 @@ func main() {
}
// Override port with command line argument if provided
config := server.GetConfig()
if portFlag > 0 {
config := server.GetConfig()
config.Server.Port = portFlag
logger.Info("Port overridden by command line argument", zap.Int("port", portFlag))
}
if config.Server.Port == 0 {
logger.Fatal("Server port is not configured. Please specify via --port flag or config file.")
}
// Load model providers configuration
if err := server.LoadModelProviders(""); err != nil {
logger.Fatal("Failed to load model providers", zap.Error(err))
}
logger.Info("Model providers loaded", zap.Int("count", len(server.GetModelProviders())))
config := server.GetConfig()
if config.Server.Port == 0 {
logger.Fatal("Server port is not configured. Please specify via --port flag or config file.")
}
// Reinitialize logger with configured level if different
if config.Log.Level != "" && config.Log.Level != "info" {
if err := logger.Init(config.Log.Level); err != nil {
@@ -232,15 +232,15 @@ func startServer(config *server.Config) {
)
logger.Info(fmt.Sprintf("RAGFlow Go Version: %s", utility.GetRAGFlowVersion()))
logger.Info(fmt.Sprintf("Server starting on port: %d", config.Server.Port))
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
logger.Fatal("Failed to start server", zap.Error(err))
}
}()
// Get local IP address for heartbeat reporting
localIP := utility.GetLocalIP()
if localIP == "" {
localIP = "127.0.0.1"
localIP, err := utility.GetLocalIP()
if err != nil {
logger.Fatal("fail to get local ip address")
}
// Initialize and start heartbeat reporter to admin server
@@ -251,7 +251,7 @@ func startServer(config *server.Config) {
localIP,
config.Server.Port,
)
if err := heartbeatService.InitHTTPClient(); err != nil {
if err = heartbeatService.InitHTTPClient(); err != nil {
logger.Warn("Failed to initialize heartbeat service", zap.Error(err))
} else {
// Start heartbeat reporter with 30 seconds interval
@@ -280,7 +280,7 @@ func startServer(config *server.Config) {
defer cancel()
// Shutdown server
if err := srv.Shutdown(ctx); err != nil {
if err = srv.Shutdown(ctx); err != nil {
logger.Fatal("Server forced to shutdown", zap.Error(err))
}
}