[router] add postgres databases data connector (#12218)

This commit is contained in:
rongfu.leng
2025-11-10 16:51:50 -08:00
committed by GitHub
parent 012bfc4fdc
commit 2fe4e69fca
12 changed files with 989 additions and 86 deletions
+12
View File
@@ -6,6 +6,7 @@ from sglang_router.sglang_router_rs import (
HistoryBackendType,
PolicyType,
PyOracleConfig,
PyPostgresConfig,
)
from sglang_router.sglang_router_rs import Router as _Router
@@ -53,6 +54,8 @@ def history_backend_from_str(backend_str: Optional[str]) -> HistoryBackendType:
return getattr(HistoryBackendType, "None")
elif backend_lower == "oracle":
return HistoryBackendType.Oracle
elif backend_lower == "postgres":
return HistoryBackendType.Postgres
else:
raise ValueError(f"Unknown history backend: {backend_str}")
@@ -187,6 +190,15 @@ class Router:
args_dict["oracle_config"] = oracle_config
args_dict["history_backend"] = history_backend
# Convert Postgres config if needed
postgres_config = None
if history_backend == HistoryBackendType.Postgres:
postgres_config = PyPostgresConfig(
db_url=args_dict.get("postgres_db_url"),
pool_max=args_dict.get("postgres_pool_max", 16),
)
args_dict["postgres_config"] = postgres_config
# Remove fields that shouldn't be passed to Rust Router constructor
fields_to_remove = [
"mini_lb",
@@ -544,7 +544,7 @@ class RouterArgs:
f"--{prefix}history-backend",
type=str,
default=RouterArgs.history_backend,
choices=["memory", "none", "oracle"],
choices=["memory", "none", "oracle", "postgres"],
help="History storage backend for conversations and responses (default: memory)",
)
# Oracle configuration