From 0df0ba269dda634fbdf40f2d6361cbc47a06cb35 Mon Sep 17 00:00:00 2001 From: yangdx Date: Sat, 22 Mar 2025 01:51:39 +0800 Subject: [PATCH 1/2] Implemented version display in SiteHeader of webui - Updated API version to 1.2.0 - Stored versions in localStorage --- lightrag/api/__init__.py | 2 +- lightrag/api/lightrag_server.py | 17 ++++++++-- lightrag_webui/src/api/lightrag.ts | 4 +++ lightrag_webui/src/features/LoginPage.tsx | 4 +-- lightrag_webui/src/features/SiteHeader.tsx | 11 +++++- lightrag_webui/src/stores/state.ts | 39 ++++++++++++++++++---- 6 files changed, 63 insertions(+), 14 deletions(-) diff --git a/lightrag/api/__init__.py b/lightrag/api/__init__.py index 7eadf511..1eda991a 100644 --- a/lightrag/api/__init__.py +++ b/lightrag/api/__init__.py @@ -1 +1 @@ -__api_version__ = "1.0.5" +__api_version__ = "1.2.0" diff --git a/lightrag/api/lightrag_server.py b/lightrag/api/lightrag_server.py index 6c8d11f1..f36e4dc4 100644 --- a/lightrag/api/lightrag_server.py +++ b/lightrag/api/lightrag_server.py @@ -23,9 +23,9 @@ from lightrag.api.utils_api import ( get_default_host, display_splash_screen, ) -from lightrag import LightRAG -from lightrag.types import GPTKeywordExtractionFormat +from lightrag import LightRAG, __version__ as core_version from lightrag.api import __api_version__ +from lightrag.types import GPTKeywordExtractionFormat from lightrag.utils import EmbeddingFunc from lightrag.api.routers.document_routes import ( DocumentManager, @@ -364,9 +364,16 @@ def create_app(args): "token_type": "bearer", "auth_mode": "disabled", "message": "Authentication is disabled. Using guest access.", + "core_version": core_version, + "api_version": __api_version__, } - return {"auth_configured": True, "auth_mode": "enabled"} + return { + "auth_configured": True, + "auth_mode": "enabled", + "core_version": core_version, + "api_version": __api_version__, + } @app.post("/login", dependencies=[Depends(optional_api_key)]) async def login(form_data: OAuth2PasswordRequestForm = Depends()): @@ -383,6 +390,8 @@ def create_app(args): "token_type": "bearer", "auth_mode": "disabled", "message": "Authentication is disabled. Using guest access.", + "core_version": core_version, + "api_version": __api_version__, } if form_data.username != username or form_data.password != password: @@ -398,6 +407,8 @@ def create_app(args): "access_token": user_token, "token_type": "bearer", "auth_mode": "enabled", + "core_version": core_version, + "api_version": __api_version__, } @app.get("/health", dependencies=[Depends(optional_api_key)]) diff --git a/lightrag_webui/src/api/lightrag.ts b/lightrag_webui/src/api/lightrag.ts index 0406075a..19c7f385 100644 --- a/lightrag_webui/src/api/lightrag.ts +++ b/lightrag_webui/src/api/lightrag.ts @@ -132,6 +132,8 @@ export type AuthStatusResponse = { token_type?: string auth_mode?: 'enabled' | 'disabled' message?: string + core_version?: string + api_version?: string } export type LoginResponse = { @@ -139,6 +141,8 @@ export type LoginResponse = { token_type: string auth_mode?: 'enabled' | 'disabled' // Authentication mode identifier message?: string // Optional message + core_version?: string + api_version?: string } export const InvalidApiKeyError = 'Invalid API Key' diff --git a/lightrag_webui/src/features/LoginPage.tsx b/lightrag_webui/src/features/LoginPage.tsx index c5cccf5f..f8ca35f1 100644 --- a/lightrag_webui/src/features/LoginPage.tsx +++ b/lightrag_webui/src/features/LoginPage.tsx @@ -43,7 +43,7 @@ const LoginPage = () => { if (!status.auth_configured && status.access_token) { // If auth is not configured, use the guest token and redirect - login(status.access_token, true) + login(status.access_token, true, status.core_version, status.api_version) if (status.message) { toast.info(status.message) } @@ -87,7 +87,7 @@ const LoginPage = () => { // Check authentication mode const isGuestMode = response.auth_mode === 'disabled' - login(response.access_token, isGuestMode) + login(response.access_token, isGuestMode, response.core_version, response.api_version) if (isGuestMode) { // Show authentication disabled notification diff --git a/lightrag_webui/src/features/SiteHeader.tsx b/lightrag_webui/src/features/SiteHeader.tsx index c0b130fe..7a5af2b2 100644 --- a/lightrag_webui/src/features/SiteHeader.tsx +++ b/lightrag_webui/src/features/SiteHeader.tsx @@ -55,7 +55,11 @@ function TabsNavigation() { export default function SiteHeader() { const { t } = useTranslation() - const { isGuestMode } = useAuthStore() + const { isGuestMode, coreVersion, apiVersion } = useAuthStore() + + const versionDisplay = (coreVersion && apiVersion) + ? `${coreVersion}/${apiVersion}` + : null; const handleLogout = () => { navigationService.navigateToLogin(); @@ -67,6 +71,11 @@ export default function SiteHeader() {