Spaces:
Runtime error
Runtime error
DeWitt Gibson
commited on
Commit
·
93db655
1
Parent(s):
0ed66a5
Action fix
Browse files- src/llmguardian/__init__.py +4 -3
- src/llmguardian/agency/__init__.py +2 -2
- src/llmguardian/agency/action_validator.py +2 -1
- src/llmguardian/agency/executor.py +2 -1
- src/llmguardian/agency/permission_manager.py +2 -1
- src/llmguardian/agency/scope_limiter.py +2 -1
- src/llmguardian/api/__init__.py +1 -1
- src/llmguardian/api/app.py +1 -0
- src/llmguardian/api/models.py +4 -3
- src/llmguardian/api/routes.py +4 -2
- src/llmguardian/api/security.py +4 -3
- src/llmguardian/cli/cli_interface.py +9 -8
- src/llmguardian/core/__init__.py +9 -9
- src/llmguardian/core/config.py +9 -7
- src/llmguardian/core/events.py +4 -3
- src/llmguardian/core/exceptions.py +3 -3
- src/llmguardian/core/logger.py +2 -2
- src/llmguardian/core/monitoring.py +6 -5
- src/llmguardian/core/rate_limiter.py +10 -8
- src/llmguardian/core/scanners/prompt_injection_scanner.py +6 -5
- src/llmguardian/core/security.py +4 -2
- src/llmguardian/core/validation.py +3 -2
- src/llmguardian/dashboard/app.py +11 -10
- src/llmguardian/data/leak_detector.py +5 -4
- src/llmguardian/data/poison_detector.py +8 -6
- src/llmguardian/data/privacy_guard.py +9 -7
- src/llmguardian/defenders/__init__.py +2 -2
- src/llmguardian/defenders/content_filter.py +3 -2
- src/llmguardian/defenders/context_validator.py +4 -3
- src/llmguardian/defenders/input_sanitizer.py +3 -2
- src/llmguardian/defenders/output_validator.py +3 -2
- src/llmguardian/defenders/test_context_validator.py +4 -2
- src/llmguardian/defenders/token_validator.py +6 -4
- src/llmguardian/monitors/__init__.py +3 -3
- src/llmguardian/monitors/audit_monitor.py +5 -4
- src/llmguardian/monitors/behavior_monitor.py +3 -2
- src/llmguardian/monitors/performance_monitor.py +5 -4
- src/llmguardian/monitors/threat_detector.py +5 -4
- src/llmguardian/monitors/usage_monitor.py +6 -4
- src/llmguardian/scanners/prompt_injection_scanner.py +3 -3
- src/llmguardian/vectors/__init__.py +1 -1
- src/llmguardian/vectors/embedding_validator.py +6 -4
- src/llmguardian/vectors/retrieval_guard.py +8 -6
- src/llmguardian/vectors/storage_validator.py +8 -6
- src/llmguardian/vectors/vector_scanner.py +7 -5
- tests/conftest.py +6 -4
- tests/data/test_privacy_guard.py +7 -5
- tests/unit/test_prompt_injection_scanner.py +3 -2
- tests/utils/test_utils.py +2 -1
src/llmguardian/__init__.py
CHANGED
|
@@ -7,13 +7,14 @@ __version__ = "1.4.0"
|
|
| 7 |
__author__ = "dewitt4"
|
| 8 |
__license__ = "Apache-2.0"
|
| 9 |
|
| 10 |
-
from typing import
|
| 11 |
|
| 12 |
-
# Package level imports
|
| 13 |
-
from .scanners.prompt_injection_scanner import PromptInjectionScanner
|
| 14 |
from .core.config import Config
|
| 15 |
from .core.logger import setup_logging
|
| 16 |
|
|
|
|
|
|
|
|
|
|
| 17 |
# Initialize logging
|
| 18 |
setup_logging()
|
| 19 |
|
|
|
|
| 7 |
__author__ = "dewitt4"
|
| 8 |
__license__ = "Apache-2.0"
|
| 9 |
|
| 10 |
+
from typing import Dict, List, Optional
|
| 11 |
|
|
|
|
|
|
|
| 12 |
from .core.config import Config
|
| 13 |
from .core.logger import setup_logging
|
| 14 |
|
| 15 |
+
# Package level imports
|
| 16 |
+
from .scanners.prompt_injection_scanner import PromptInjectionScanner
|
| 17 |
+
|
| 18 |
# Initialize logging
|
| 19 |
setup_logging()
|
| 20 |
|
src/llmguardian/agency/__init__.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
# src/llmguardian/agency/__init__.py
|
| 2 |
-
from .permission_manager import PermissionManager
|
| 3 |
from .action_validator import ActionValidator
|
| 4 |
-
from .scope_limiter import ScopeLimiter
|
| 5 |
from .executor import SafeExecutor
|
|
|
|
|
|
|
|
|
| 1 |
# src/llmguardian/agency/__init__.py
|
|
|
|
| 2 |
from .action_validator import ActionValidator
|
|
|
|
| 3 |
from .executor import SafeExecutor
|
| 4 |
+
from .permission_manager import PermissionManager
|
| 5 |
+
from .scope_limiter import ScopeLimiter
|
src/llmguardian/agency/action_validator.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
| 1 |
# src/llmguardian/agency/action_validator.py
|
| 2 |
-
from typing import Dict, List, Optional
|
| 3 |
from dataclasses import dataclass
|
| 4 |
from enum import Enum
|
|
|
|
|
|
|
| 5 |
from ..core.logger import SecurityLogger
|
| 6 |
|
| 7 |
|
|
|
|
| 1 |
# src/llmguardian/agency/action_validator.py
|
|
|
|
| 2 |
from dataclasses import dataclass
|
| 3 |
from enum import Enum
|
| 4 |
+
from typing import Dict, List, Optional
|
| 5 |
+
|
| 6 |
from ..core.logger import SecurityLogger
|
| 7 |
|
| 8 |
|
src/llmguardian/agency/executor.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
# src/llmguardian/agency/executor.py
|
| 2 |
-
from typing import Dict, Any, Optional
|
| 3 |
from dataclasses import dataclass
|
|
|
|
|
|
|
| 4 |
from ..core.logger import SecurityLogger
|
| 5 |
from .action_validator import Action, ActionValidator
|
| 6 |
from .permission_manager import PermissionManager
|
|
|
|
| 1 |
# src/llmguardian/agency/executor.py
|
|
|
|
| 2 |
from dataclasses import dataclass
|
| 3 |
+
from typing import Any, Dict, Optional
|
| 4 |
+
|
| 5 |
from ..core.logger import SecurityLogger
|
| 6 |
from .action_validator import Action, ActionValidator
|
| 7 |
from .permission_manager import PermissionManager
|
src/llmguardian/agency/permission_manager.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
| 1 |
# src/llmguardian/agency/permission_manager.py
|
| 2 |
-
from typing import Dict, List, Optional, Set
|
| 3 |
from dataclasses import dataclass
|
| 4 |
from enum import Enum
|
|
|
|
|
|
|
| 5 |
from ..core.logger import SecurityLogger
|
| 6 |
|
| 7 |
|
|
|
|
| 1 |
# src/llmguardian/agency/permission_manager.py
|
|
|
|
| 2 |
from dataclasses import dataclass
|
| 3 |
from enum import Enum
|
| 4 |
+
from typing import Dict, List, Optional, Set
|
| 5 |
+
|
| 6 |
from ..core.logger import SecurityLogger
|
| 7 |
|
| 8 |
|
src/llmguardian/agency/scope_limiter.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
| 1 |
# src/llmguardian/agency/scope_limiter.py
|
| 2 |
-
from typing import Dict, List, Optional, Set
|
| 3 |
from dataclasses import dataclass
|
| 4 |
from enum import Enum
|
|
|
|
|
|
|
| 5 |
from ..core.logger import SecurityLogger
|
| 6 |
|
| 7 |
|
|
|
|
| 1 |
# src/llmguardian/agency/scope_limiter.py
|
|
|
|
| 2 |
from dataclasses import dataclass
|
| 3 |
from enum import Enum
|
| 4 |
+
from typing import Dict, List, Optional, Set
|
| 5 |
+
|
| 6 |
from ..core.logger import SecurityLogger
|
| 7 |
|
| 8 |
|
src/llmguardian/api/__init__.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
# src/llmguardian/api/__init__.py
|
| 2 |
-
from .routes import router
|
| 3 |
from .models import SecurityRequest, SecurityResponse
|
|
|
|
| 4 |
from .security import SecurityMiddleware
|
|
|
|
| 1 |
# src/llmguardian/api/__init__.py
|
|
|
|
| 2 |
from .models import SecurityRequest, SecurityResponse
|
| 3 |
+
from .routes import router
|
| 4 |
from .security import SecurityMiddleware
|
src/llmguardian/api/app.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
# src/llmguardian/api/app.py
|
| 2 |
from fastapi import FastAPI
|
| 3 |
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
| 4 |
from .routes import router
|
| 5 |
from .security import SecurityMiddleware
|
| 6 |
|
|
|
|
| 1 |
# src/llmguardian/api/app.py
|
| 2 |
from fastapi import FastAPI
|
| 3 |
from fastapi.middleware.cors import CORSMiddleware
|
| 4 |
+
|
| 5 |
from .routes import router
|
| 6 |
from .security import SecurityMiddleware
|
| 7 |
|
src/llmguardian/api/models.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
| 1 |
# src/llmguardian/api/models.py
|
| 2 |
-
from pydantic import BaseModel
|
| 3 |
-
from typing import List, Optional, Dict, Any
|
| 4 |
-
from enum import Enum
|
| 5 |
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
| 7 |
|
| 8 |
class SecurityLevel(str, Enum):
|
|
|
|
| 1 |
# src/llmguardian/api/models.py
|
|
|
|
|
|
|
|
|
|
| 2 |
from datetime import datetime
|
| 3 |
+
from enum import Enum
|
| 4 |
+
from typing import Any, Dict, List, Optional
|
| 5 |
+
|
| 6 |
+
from pydantic import BaseModel
|
| 7 |
|
| 8 |
|
| 9 |
class SecurityLevel(str, Enum):
|
src/llmguardian/api/routes.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
| 1 |
# src/llmguardian/api/routes.py
|
| 2 |
-
from fastapi import APIRouter, Depends, HTTPException
|
| 3 |
from typing import List
|
| 4 |
-
|
|
|
|
|
|
|
| 5 |
from ..data.privacy_guard import PrivacyGuard
|
| 6 |
from ..vectors.vector_scanner import VectorScanner
|
|
|
|
| 7 |
from .security import verify_token
|
| 8 |
|
| 9 |
router = APIRouter()
|
|
|
|
| 1 |
# src/llmguardian/api/routes.py
|
|
|
|
| 2 |
from typing import List
|
| 3 |
+
|
| 4 |
+
from fastapi import APIRouter, Depends, HTTPException
|
| 5 |
+
|
| 6 |
from ..data.privacy_guard import PrivacyGuard
|
| 7 |
from ..vectors.vector_scanner import VectorScanner
|
| 8 |
+
from .models import PrivacyRequest, SecurityRequest, SecurityResponse, VectorRequest
|
| 9 |
from .security import verify_token
|
| 10 |
|
| 11 |
router = APIRouter()
|
src/llmguardian/api/security.py
CHANGED
|
@@ -1,10 +1,11 @@
|
|
| 1 |
# src/llmguardian/api/security.py
|
| 2 |
-
from fastapi import HTTPException, Security
|
| 3 |
-
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
|
| 4 |
-
import jwt
|
| 5 |
from datetime import datetime, timedelta
|
| 6 |
from typing import Optional
|
| 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
security = HTTPBearer()
|
| 9 |
|
| 10 |
|
|
|
|
| 1 |
# src/llmguardian/api/security.py
|
|
|
|
|
|
|
|
|
|
| 2 |
from datetime import datetime, timedelta
|
| 3 |
from typing import Optional
|
| 4 |
|
| 5 |
+
import jwt
|
| 6 |
+
from fastapi import HTTPException, Security
|
| 7 |
+
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
| 8 |
+
|
| 9 |
security = HTTPBearer()
|
| 10 |
|
| 11 |
|
src/llmguardian/cli/cli_interface.py
CHANGED
|
@@ -3,21 +3,22 @@ LLMGuardian CLI Interface
|
|
| 3 |
Command-line interface for the LLMGuardian security tool.
|
| 4 |
"""
|
| 5 |
|
| 6 |
-
import click
|
| 7 |
import json
|
| 8 |
import logging
|
| 9 |
-
from typing import Optional, Dict
|
| 10 |
from pathlib import Path
|
| 11 |
-
from
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
from rich import print as rprint
|
| 15 |
-
from rich.logging import RichHandler
|
| 16 |
from prompt_injection_scanner import (
|
| 17 |
-
PromptInjectionScanner,
|
| 18 |
InjectionPattern,
|
| 19 |
InjectionType,
|
|
|
|
| 20 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
# Set up logging with rich
|
| 23 |
logging.basicConfig(
|
|
|
|
| 3 |
Command-line interface for the LLMGuardian security tool.
|
| 4 |
"""
|
| 5 |
|
|
|
|
| 6 |
import json
|
| 7 |
import logging
|
|
|
|
| 8 |
from pathlib import Path
|
| 9 |
+
from typing import Dict, Optional
|
| 10 |
+
|
| 11 |
+
import click
|
|
|
|
|
|
|
| 12 |
from prompt_injection_scanner import (
|
|
|
|
| 13 |
InjectionPattern,
|
| 14 |
InjectionType,
|
| 15 |
+
PromptInjectionScanner,
|
| 16 |
)
|
| 17 |
+
from rich import print as rprint
|
| 18 |
+
from rich.console import Console
|
| 19 |
+
from rich.logging import RichHandler
|
| 20 |
+
from rich.panel import Panel
|
| 21 |
+
from rich.table import Table
|
| 22 |
|
| 23 |
# Set up logging with rich
|
| 24 |
logging.basicConfig(
|
src/llmguardian/core/__init__.py
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
core/__init__.py - Core module initialization for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
from typing import Dict, Any, Optional
|
| 6 |
import logging
|
| 7 |
from pathlib import Path
|
|
|
|
| 8 |
|
| 9 |
# Version information
|
| 10 |
__version__ = "1.0.0"
|
|
@@ -12,29 +12,29 @@ __author__ = "dewitt4"
|
|
| 12 |
__license__ = "Apache-2.0"
|
| 13 |
|
| 14 |
# Core components
|
| 15 |
-
from .config import
|
| 16 |
from .exceptions import (
|
| 17 |
-
LLMGuardianError,
|
| 18 |
-
SecurityError,
|
| 19 |
-
ValidationError,
|
| 20 |
ConfigurationError,
|
|
|
|
| 21 |
PromptInjectionError,
|
| 22 |
RateLimitError,
|
|
|
|
|
|
|
| 23 |
)
|
| 24 |
-
from .logger import
|
| 25 |
from .rate_limiter import (
|
| 26 |
-
RateLimiter,
|
| 27 |
RateLimit,
|
|
|
|
| 28 |
RateLimitType,
|
| 29 |
TokenBucket,
|
| 30 |
create_rate_limiter,
|
| 31 |
)
|
| 32 |
from .security import (
|
| 33 |
-
SecurityService,
|
| 34 |
SecurityContext,
|
| 35 |
-
SecurityPolicy,
|
| 36 |
SecurityMetrics,
|
| 37 |
SecurityMonitor,
|
|
|
|
|
|
|
| 38 |
)
|
| 39 |
|
| 40 |
# Initialize logging
|
|
|
|
| 2 |
core/__init__.py - Core module initialization for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
import logging
|
| 6 |
from pathlib import Path
|
| 7 |
+
from typing import Any, Dict, Optional
|
| 8 |
|
| 9 |
# Version information
|
| 10 |
__version__ = "1.0.0"
|
|
|
|
| 12 |
__license__ = "Apache-2.0"
|
| 13 |
|
| 14 |
# Core components
|
| 15 |
+
from .config import APIConfig, Config, LoggingConfig, MonitoringConfig, SecurityConfig
|
| 16 |
from .exceptions import (
|
|
|
|
|
|
|
|
|
|
| 17 |
ConfigurationError,
|
| 18 |
+
LLMGuardianError,
|
| 19 |
PromptInjectionError,
|
| 20 |
RateLimitError,
|
| 21 |
+
SecurityError,
|
| 22 |
+
ValidationError,
|
| 23 |
)
|
| 24 |
+
from .logger import AuditLogger, SecurityLogger
|
| 25 |
from .rate_limiter import (
|
|
|
|
| 26 |
RateLimit,
|
| 27 |
+
RateLimiter,
|
| 28 |
RateLimitType,
|
| 29 |
TokenBucket,
|
| 30 |
create_rate_limiter,
|
| 31 |
)
|
| 32 |
from .security import (
|
|
|
|
| 33 |
SecurityContext,
|
|
|
|
| 34 |
SecurityMetrics,
|
| 35 |
SecurityMonitor,
|
| 36 |
+
SecurityPolicy,
|
| 37 |
+
SecurityService,
|
| 38 |
)
|
| 39 |
|
| 40 |
# Initialize logging
|
src/llmguardian/core/config.py
CHANGED
|
@@ -2,19 +2,21 @@
|
|
| 2 |
core/config.py - Configuration management for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import os
|
| 6 |
-
import yaml
|
| 7 |
import json
|
| 8 |
-
from pathlib import Path
|
| 9 |
-
from typing import Dict, Any, Optional, List
|
| 10 |
-
from dataclasses import dataclass, asdict, field
|
| 11 |
import logging
|
| 12 |
-
|
| 13 |
import threading
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
from .exceptions import (
|
| 15 |
ConfigLoadError,
|
| 16 |
-
ConfigValidationError,
|
| 17 |
ConfigurationNotFoundError,
|
|
|
|
| 18 |
)
|
| 19 |
from .logger import SecurityLogger
|
| 20 |
|
|
|
|
| 2 |
core/config.py - Configuration management for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
| 5 |
import json
|
|
|
|
|
|
|
|
|
|
| 6 |
import logging
|
| 7 |
+
import os
|
| 8 |
import threading
|
| 9 |
+
from dataclasses import asdict, dataclass, field
|
| 10 |
+
from enum import Enum
|
| 11 |
+
from pathlib import Path
|
| 12 |
+
from typing import Any, Dict, List, Optional
|
| 13 |
+
|
| 14 |
+
import yaml
|
| 15 |
+
|
| 16 |
from .exceptions import (
|
| 17 |
ConfigLoadError,
|
|
|
|
| 18 |
ConfigurationNotFoundError,
|
| 19 |
+
ConfigValidationError,
|
| 20 |
)
|
| 21 |
from .logger import SecurityLogger
|
| 22 |
|
src/llmguardian/core/events.py
CHANGED
|
@@ -2,13 +2,14 @@
|
|
| 2 |
core/events.py - Event handling system for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
from typing import Dict, List, Callable, Any, Optional
|
| 6 |
-
from datetime import datetime
|
| 7 |
import threading
|
| 8 |
from dataclasses import dataclass
|
|
|
|
| 9 |
from enum import Enum
|
| 10 |
-
from
|
|
|
|
| 11 |
from .exceptions import LLMGuardianError
|
|
|
|
| 12 |
|
| 13 |
|
| 14 |
class EventType(Enum):
|
|
|
|
| 2 |
core/events.py - Event handling system for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
| 5 |
import threading
|
| 6 |
from dataclasses import dataclass
|
| 7 |
+
from datetime import datetime
|
| 8 |
from enum import Enum
|
| 9 |
+
from typing import Any, Callable, Dict, List, Optional
|
| 10 |
+
|
| 11 |
from .exceptions import LLMGuardianError
|
| 12 |
+
from .logger import SecurityLogger
|
| 13 |
|
| 14 |
|
| 15 |
class EventType(Enum):
|
src/llmguardian/core/exceptions.py
CHANGED
|
@@ -2,11 +2,11 @@
|
|
| 2 |
core/exceptions.py - Custom exceptions for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
from typing import Dict, Any, Optional
|
| 6 |
-
from dataclasses import dataclass
|
| 7 |
-
import traceback
|
| 8 |
import logging
|
|
|
|
|
|
|
| 9 |
from datetime import datetime
|
|
|
|
| 10 |
|
| 11 |
|
| 12 |
@dataclass
|
|
|
|
| 2 |
core/exceptions.py - Custom exceptions for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
|
|
|
| 5 |
import logging
|
| 6 |
+
import traceback
|
| 7 |
+
from dataclasses import dataclass
|
| 8 |
from datetime import datetime
|
| 9 |
+
from typing import Any, Dict, Optional
|
| 10 |
|
| 11 |
|
| 12 |
@dataclass
|
src/llmguardian/core/logger.py
CHANGED
|
@@ -2,12 +2,12 @@
|
|
| 2 |
core/logger.py - Logging configuration for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
import logging
|
| 6 |
import logging.handlers
|
| 7 |
-
import json
|
| 8 |
from datetime import datetime
|
| 9 |
from pathlib import Path
|
| 10 |
-
from typing import
|
| 11 |
|
| 12 |
|
| 13 |
class SecurityLogger:
|
|
|
|
| 2 |
core/logger.py - Logging configuration for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import json
|
| 6 |
import logging
|
| 7 |
import logging.handlers
|
|
|
|
| 8 |
from datetime import datetime
|
| 9 |
from pathlib import Path
|
| 10 |
+
from typing import Any, Dict, Optional
|
| 11 |
|
| 12 |
|
| 13 |
class SecurityLogger:
|
src/llmguardian/core/monitoring.py
CHANGED
|
@@ -2,14 +2,15 @@
|
|
| 2 |
core/monitoring.py - Monitoring system for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
from dataclasses import dataclass
|
| 8 |
import threading
|
| 9 |
import time
|
| 10 |
-
import json
|
| 11 |
from collections import deque
|
| 12 |
-
import
|
|
|
|
|
|
|
|
|
|
| 13 |
from .logger import SecurityLogger
|
| 14 |
|
| 15 |
|
|
|
|
| 2 |
core/monitoring.py - Monitoring system for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import json
|
| 6 |
+
import statistics
|
|
|
|
| 7 |
import threading
|
| 8 |
import time
|
|
|
|
| 9 |
from collections import deque
|
| 10 |
+
from dataclasses import dataclass
|
| 11 |
+
from datetime import datetime, timedelta
|
| 12 |
+
from typing import Any, Dict, List, Optional
|
| 13 |
+
|
| 14 |
from .logger import SecurityLogger
|
| 15 |
|
| 16 |
|
src/llmguardian/core/rate_limiter.py
CHANGED
|
@@ -2,18 +2,20 @@
|
|
| 2 |
core/rate_limiter.py - Rate limiting implementation for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import
|
| 6 |
import os
|
| 7 |
-
import psutil
|
| 8 |
-
from datetime import datetime, timedelta
|
| 9 |
-
from typing import Dict, Optional, List, Tuple, Any
|
| 10 |
import threading
|
|
|
|
| 11 |
from dataclasses import dataclass
|
|
|
|
| 12 |
from enum import Enum
|
| 13 |
-
import
|
| 14 |
-
|
| 15 |
-
|
|
|
|
| 16 |
from .events import EventManager, EventType
|
|
|
|
|
|
|
| 17 |
|
| 18 |
|
| 19 |
class RateLimitType(Enum):
|
|
@@ -327,8 +329,8 @@ def create_rate_limiter(
|
|
| 327 |
|
| 328 |
if __name__ == "__main__":
|
| 329 |
# Example usage
|
| 330 |
-
from .logger import setup_logging
|
| 331 |
from .events import create_event_manager
|
|
|
|
| 332 |
|
| 333 |
security_logger, _ = setup_logging()
|
| 334 |
event_manager = create_event_manager(security_logger)
|
|
|
|
| 2 |
core/rate_limiter.py - Rate limiting implementation for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import json
|
| 6 |
import os
|
|
|
|
|
|
|
|
|
|
| 7 |
import threading
|
| 8 |
+
import time
|
| 9 |
from dataclasses import dataclass
|
| 10 |
+
from datetime import datetime, timedelta
|
| 11 |
from enum import Enum
|
| 12 |
+
from typing import Any, Dict, List, Optional, Tuple
|
| 13 |
+
|
| 14 |
+
import psutil
|
| 15 |
+
|
| 16 |
from .events import EventManager, EventType
|
| 17 |
+
from .exceptions import RateLimitError
|
| 18 |
+
from .logger import SecurityLogger
|
| 19 |
|
| 20 |
|
| 21 |
class RateLimitType(Enum):
|
|
|
|
| 329 |
|
| 330 |
if __name__ == "__main__":
|
| 331 |
# Example usage
|
|
|
|
| 332 |
from .events import create_event_manager
|
| 333 |
+
from .logger import setup_logging
|
| 334 |
|
| 335 |
security_logger, _ = setup_logging()
|
| 336 |
event_manager = create_event_manager(security_logger)
|
src/llmguardian/core/scanners/prompt_injection_scanner.py
CHANGED
|
@@ -2,16 +2,17 @@
|
|
| 2 |
core/scanners/prompt_injection_scanner.py - Prompt injection detection for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import re
|
| 6 |
-
from dataclasses import dataclass
|
| 7 |
-
from enum import Enum
|
| 8 |
-
from typing import List, Optional, Dict, Set, Pattern
|
| 9 |
import json
|
| 10 |
import logging
|
|
|
|
|
|
|
| 11 |
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
from ..exceptions import PromptInjectionError
|
| 13 |
from ..logger import SecurityLogger
|
| 14 |
-
from ..config import Config
|
| 15 |
|
| 16 |
|
| 17 |
class InjectionType(Enum):
|
|
|
|
| 2 |
core/scanners/prompt_injection_scanner.py - Prompt injection detection for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
import json
|
| 6 |
import logging
|
| 7 |
+
import re
|
| 8 |
+
from dataclasses import dataclass
|
| 9 |
from datetime import datetime
|
| 10 |
+
from enum import Enum
|
| 11 |
+
from typing import Dict, List, Optional, Pattern, Set
|
| 12 |
+
|
| 13 |
+
from ..config import Config
|
| 14 |
from ..exceptions import PromptInjectionError
|
| 15 |
from ..logger import SecurityLogger
|
|
|
|
| 16 |
|
| 17 |
|
| 18 |
class InjectionType(Enum):
|
src/llmguardian/core/security.py
CHANGED
|
@@ -5,12 +5,14 @@ core/security.py - Core security services for LLMGuardian
|
|
| 5 |
import hashlib
|
| 6 |
import hmac
|
| 7 |
import secrets
|
| 8 |
-
from typing import Optional, Dict, Any, List
|
| 9 |
from dataclasses import dataclass
|
| 10 |
from datetime import datetime, timedelta
|
|
|
|
|
|
|
| 11 |
import jwt
|
|
|
|
| 12 |
from .config import Config
|
| 13 |
-
from .logger import
|
| 14 |
|
| 15 |
|
| 16 |
@dataclass
|
|
|
|
| 5 |
import hashlib
|
| 6 |
import hmac
|
| 7 |
import secrets
|
|
|
|
| 8 |
from dataclasses import dataclass
|
| 9 |
from datetime import datetime, timedelta
|
| 10 |
+
from typing import Any, Dict, List, Optional
|
| 11 |
+
|
| 12 |
import jwt
|
| 13 |
+
|
| 14 |
from .config import Config
|
| 15 |
+
from .logger import AuditLogger, SecurityLogger
|
| 16 |
|
| 17 |
|
| 18 |
@dataclass
|
src/llmguardian/core/validation.py
CHANGED
|
@@ -2,10 +2,11 @@
|
|
| 2 |
core/validation.py - Input/Output validation for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
import re
|
| 6 |
-
from typing import Dict, Any, List, Optional, Tuple
|
| 7 |
from dataclasses import dataclass
|
| 8 |
-
import
|
|
|
|
| 9 |
from .logger import SecurityLogger
|
| 10 |
|
| 11 |
|
|
|
|
| 2 |
core/validation.py - Input/Output validation for LLMGuardian
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import json
|
| 6 |
import re
|
|
|
|
| 7 |
from dataclasses import dataclass
|
| 8 |
+
from typing import Any, Dict, List, Optional, Tuple
|
| 9 |
+
|
| 10 |
from .logger import SecurityLogger
|
| 11 |
|
| 12 |
|
src/llmguardian/dashboard/app.py
CHANGED
|
@@ -1,26 +1,27 @@
|
|
| 1 |
# src/llmguardian/dashboard/app.py
|
| 2 |
|
| 3 |
-
import streamlit as st
|
| 4 |
-
import plotly.express as px
|
| 5 |
-
import plotly.graph_objects as go
|
| 6 |
-
import pandas as pd
|
| 7 |
-
import numpy as np
|
| 8 |
-
from datetime import datetime, timedelta
|
| 9 |
-
from typing import Dict, List, Any, Optional
|
| 10 |
-
import sys
|
| 11 |
import os
|
|
|
|
|
|
|
| 12 |
from pathlib import Path
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
# Add parent directory to path for imports
|
| 15 |
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 16 |
|
| 17 |
try:
|
| 18 |
from llmguardian.core.config import Config
|
|
|
|
| 19 |
from llmguardian.data.privacy_guard import PrivacyGuard
|
| 20 |
-
from llmguardian.monitors.usage_monitor import UsageMonitor
|
| 21 |
from llmguardian.monitors.threat_detector import ThreatDetector, ThreatLevel
|
|
|
|
| 22 |
from llmguardian.scanners.prompt_injection_scanner import PromptInjectionScanner
|
| 23 |
-
from llmguardian.core.logger import setup_logging
|
| 24 |
except ImportError:
|
| 25 |
# Fallback for demo mode
|
| 26 |
Config = None
|
|
|
|
| 1 |
# src/llmguardian/dashboard/app.py
|
| 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
import os
|
| 4 |
+
import sys
|
| 5 |
+
from datetime import datetime, timedelta
|
| 6 |
from pathlib import Path
|
| 7 |
+
from typing import Any, Dict, List, Optional
|
| 8 |
+
|
| 9 |
+
import numpy as np
|
| 10 |
+
import pandas as pd
|
| 11 |
+
import plotly.express as px
|
| 12 |
+
import plotly.graph_objects as go
|
| 13 |
+
import streamlit as st
|
| 14 |
|
| 15 |
# Add parent directory to path for imports
|
| 16 |
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
| 17 |
|
| 18 |
try:
|
| 19 |
from llmguardian.core.config import Config
|
| 20 |
+
from llmguardian.core.logger import setup_logging
|
| 21 |
from llmguardian.data.privacy_guard import PrivacyGuard
|
|
|
|
| 22 |
from llmguardian.monitors.threat_detector import ThreatDetector, ThreatLevel
|
| 23 |
+
from llmguardian.monitors.usage_monitor import UsageMonitor
|
| 24 |
from llmguardian.scanners.prompt_injection_scanner import PromptInjectionScanner
|
|
|
|
| 25 |
except ImportError:
|
| 26 |
# Fallback for demo mode
|
| 27 |
Config = None
|
src/llmguardian/data/leak_detector.py
CHANGED
|
@@ -2,15 +2,16 @@
|
|
| 2 |
data/leak_detector.py - Data leakage detection and prevention
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
import re
|
| 6 |
-
from
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime
|
| 9 |
from enum import Enum
|
| 10 |
-
import
|
| 11 |
-
|
| 12 |
-
from ..core.logger import SecurityLogger
|
| 13 |
from ..core.exceptions import SecurityError
|
|
|
|
| 14 |
|
| 15 |
|
| 16 |
class LeakageType(Enum):
|
|
|
|
| 2 |
data/leak_detector.py - Data leakage detection and prevention
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import hashlib
|
| 6 |
import re
|
| 7 |
+
from collections import defaultdict
|
| 8 |
from dataclasses import dataclass
|
| 9 |
from datetime import datetime
|
| 10 |
from enum import Enum
|
| 11 |
+
from typing import Any, Dict, List, Optional, Set
|
| 12 |
+
|
|
|
|
| 13 |
from ..core.exceptions import SecurityError
|
| 14 |
+
from ..core.logger import SecurityLogger
|
| 15 |
|
| 16 |
|
| 17 |
class LeakageType(Enum):
|
src/llmguardian/data/poison_detector.py
CHANGED
|
@@ -2,16 +2,18 @@
|
|
| 2 |
data/poison_detector.py - Detection and prevention of data poisoning attacks
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import
|
| 6 |
-
|
|
|
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime
|
| 9 |
from enum import Enum
|
| 10 |
-
from
|
| 11 |
-
|
| 12 |
-
import
|
| 13 |
-
|
| 14 |
from ..core.exceptions import SecurityError
|
|
|
|
| 15 |
|
| 16 |
|
| 17 |
class PoisonType(Enum):
|
|
|
|
| 2 |
data/poison_detector.py - Detection and prevention of data poisoning attacks
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import hashlib
|
| 6 |
+
import json
|
| 7 |
+
from collections import defaultdict
|
| 8 |
from dataclasses import dataclass
|
| 9 |
from datetime import datetime
|
| 10 |
from enum import Enum
|
| 11 |
+
from typing import Any, Dict, List, Optional, Set, Tuple
|
| 12 |
+
|
| 13 |
+
import numpy as np
|
| 14 |
+
|
| 15 |
from ..core.exceptions import SecurityError
|
| 16 |
+
from ..core.logger import SecurityLogger
|
| 17 |
|
| 18 |
|
| 19 |
class PoisonType(Enum):
|
src/llmguardian/data/privacy_guard.py
CHANGED
|
@@ -2,19 +2,21 @@
|
|
| 2 |
data/privacy_guard.py - Privacy protection and enforcement
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
# Add these imports at the top
|
| 6 |
-
from typing import Dict, List, Optional, Any, Set, Union
|
| 7 |
-
from dataclasses import dataclass, field
|
| 8 |
-
from datetime import datetime
|
| 9 |
-
from enum import Enum
|
| 10 |
-
import re
|
| 11 |
import hashlib
|
| 12 |
import json
|
|
|
|
| 13 |
import threading
|
| 14 |
import time
|
| 15 |
from collections import defaultdict
|
| 16 |
-
from
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
from ..core.exceptions import SecurityError
|
|
|
|
| 18 |
|
| 19 |
|
| 20 |
class PrivacyLevel(Enum):
|
|
|
|
| 2 |
data/privacy_guard.py - Privacy protection and enforcement
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
import hashlib
|
| 6 |
import json
|
| 7 |
+
import re
|
| 8 |
import threading
|
| 9 |
import time
|
| 10 |
from collections import defaultdict
|
| 11 |
+
from dataclasses import dataclass, field
|
| 12 |
+
from datetime import datetime
|
| 13 |
+
from enum import Enum
|
| 14 |
+
|
| 15 |
+
# Add these imports at the top
|
| 16 |
+
from typing import Any, Dict, List, Optional, Set, Union
|
| 17 |
+
|
| 18 |
from ..core.exceptions import SecurityError
|
| 19 |
+
from ..core.logger import SecurityLogger
|
| 20 |
|
| 21 |
|
| 22 |
class PrivacyLevel(Enum):
|
src/llmguardian/defenders/__init__.py
CHANGED
|
@@ -2,11 +2,11 @@
|
|
| 2 |
defenders/__init__.py - Security defenders initialization
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
| 5 |
from .input_sanitizer import InputSanitizer
|
| 6 |
from .output_validator import OutputValidator
|
| 7 |
from .token_validator import TokenValidator
|
| 8 |
-
from .content_filter import ContentFilter
|
| 9 |
-
from .context_validator import ContextValidator
|
| 10 |
|
| 11 |
__all__ = [
|
| 12 |
"InputSanitizer",
|
|
|
|
| 2 |
defenders/__init__.py - Security defenders initialization
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
from .content_filter import ContentFilter
|
| 6 |
+
from .context_validator import ContextValidator
|
| 7 |
from .input_sanitizer import InputSanitizer
|
| 8 |
from .output_validator import OutputValidator
|
| 9 |
from .token_validator import TokenValidator
|
|
|
|
|
|
|
| 10 |
|
| 11 |
__all__ = [
|
| 12 |
"InputSanitizer",
|
src/llmguardian/defenders/content_filter.py
CHANGED
|
@@ -3,11 +3,12 @@ defenders/content_filter.py - Content filtering and moderation
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import re
|
| 6 |
-
from typing import Dict, List, Optional, Any, Set
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from enum import Enum
|
| 9 |
-
from
|
|
|
|
| 10 |
from ..core.exceptions import ValidationError
|
|
|
|
| 11 |
|
| 12 |
|
| 13 |
class ContentCategory(Enum):
|
|
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import re
|
|
|
|
| 6 |
from dataclasses import dataclass
|
| 7 |
from enum import Enum
|
| 8 |
+
from typing import Any, Dict, List, Optional, Set
|
| 9 |
+
|
| 10 |
from ..core.exceptions import ValidationError
|
| 11 |
+
from ..core.logger import SecurityLogger
|
| 12 |
|
| 13 |
|
| 14 |
class ContentCategory(Enum):
|
src/llmguardian/defenders/context_validator.py
CHANGED
|
@@ -2,12 +2,13 @@
|
|
| 2 |
defenders/context_validator.py - Context validation for LLM interactions
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
|
| 6 |
from dataclasses import dataclass
|
| 7 |
from datetime import datetime
|
| 8 |
-
import
|
| 9 |
-
|
| 10 |
from ..core.exceptions import ValidationError
|
|
|
|
| 11 |
|
| 12 |
|
| 13 |
@dataclass
|
|
|
|
| 2 |
defenders/context_validator.py - Context validation for LLM interactions
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import hashlib
|
| 6 |
from dataclasses import dataclass
|
| 7 |
from datetime import datetime
|
| 8 |
+
from typing import Any, Dict, List, Optional
|
| 9 |
+
|
| 10 |
from ..core.exceptions import ValidationError
|
| 11 |
+
from ..core.logger import SecurityLogger
|
| 12 |
|
| 13 |
|
| 14 |
@dataclass
|
src/llmguardian/defenders/input_sanitizer.py
CHANGED
|
@@ -3,10 +3,11 @@ defenders/input_sanitizer.py - Input sanitization for LLM inputs
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import re
|
| 6 |
-
from typing import Dict, Any, List, Optional
|
| 7 |
from dataclasses import dataclass
|
| 8 |
-
from
|
|
|
|
| 9 |
from ..core.exceptions import ValidationError
|
|
|
|
| 10 |
|
| 11 |
|
| 12 |
@dataclass
|
|
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import re
|
|
|
|
| 6 |
from dataclasses import dataclass
|
| 7 |
+
from typing import Any, Dict, List, Optional
|
| 8 |
+
|
| 9 |
from ..core.exceptions import ValidationError
|
| 10 |
+
from ..core.logger import SecurityLogger
|
| 11 |
|
| 12 |
|
| 13 |
@dataclass
|
src/llmguardian/defenders/output_validator.py
CHANGED
|
@@ -3,10 +3,11 @@ defenders/output_validator.py - Output validation and sanitization
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import re
|
| 6 |
-
from typing import Dict, List, Optional, Set, Any
|
| 7 |
from dataclasses import dataclass
|
| 8 |
-
from
|
|
|
|
| 9 |
from ..core.exceptions import ValidationError
|
|
|
|
| 10 |
|
| 11 |
|
| 12 |
@dataclass
|
|
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import re
|
|
|
|
| 6 |
from dataclasses import dataclass
|
| 7 |
+
from typing import Any, Dict, List, Optional, Set
|
| 8 |
+
|
| 9 |
from ..core.exceptions import ValidationError
|
| 10 |
+
from ..core.logger import SecurityLogger
|
| 11 |
|
| 12 |
|
| 13 |
@dataclass
|
src/llmguardian/defenders/test_context_validator.py
CHANGED
|
@@ -2,10 +2,12 @@
|
|
| 2 |
tests/defenders/test_context_validator.py - Tests for context validation
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import pytest
|
| 6 |
from datetime import datetime, timedelta
|
| 7 |
-
|
|
|
|
|
|
|
| 8 |
from llmguardian.core.exceptions import ValidationError
|
|
|
|
| 9 |
|
| 10 |
|
| 11 |
@pytest.fixture
|
|
|
|
| 2 |
tests/defenders/test_context_validator.py - Tests for context validation
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
from datetime import datetime, timedelta
|
| 6 |
+
|
| 7 |
+
import pytest
|
| 8 |
+
|
| 9 |
from llmguardian.core.exceptions import ValidationError
|
| 10 |
+
from llmguardian.defenders.context_validator import ContextValidator, ValidationResult
|
| 11 |
|
| 12 |
|
| 13 |
@pytest.fixture
|
src/llmguardian/defenders/token_validator.py
CHANGED
|
@@ -2,13 +2,15 @@
|
|
| 2 |
defenders/token_validator.py - Token and credential validation
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
from typing import Dict, Optional, Any, List
|
| 6 |
-
from dataclasses import dataclass
|
| 7 |
import re
|
| 8 |
-
import
|
| 9 |
from datetime import datetime, timedelta
|
| 10 |
-
from
|
|
|
|
|
|
|
|
|
|
| 11 |
from ..core.exceptions import TokenValidationError
|
|
|
|
| 12 |
|
| 13 |
|
| 14 |
@dataclass
|
|
|
|
| 2 |
defenders/token_validator.py - Token and credential validation
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
| 5 |
import re
|
| 6 |
+
from dataclasses import dataclass
|
| 7 |
from datetime import datetime, timedelta
|
| 8 |
+
from typing import Any, Dict, List, Optional
|
| 9 |
+
|
| 10 |
+
import jwt
|
| 11 |
+
|
| 12 |
from ..core.exceptions import TokenValidationError
|
| 13 |
+
from ..core.logger import SecurityLogger
|
| 14 |
|
| 15 |
|
| 16 |
@dataclass
|
src/llmguardian/monitors/__init__.py
CHANGED
|
@@ -2,11 +2,11 @@
|
|
| 2 |
monitors/__init__.py - Monitoring system initialization
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
from .
|
| 6 |
from .behavior_monitor import BehaviorMonitor
|
| 7 |
-
from .threat_detector import ThreatDetector
|
| 8 |
from .performance_monitor import PerformanceMonitor
|
| 9 |
-
from .
|
|
|
|
| 10 |
|
| 11 |
__all__ = [
|
| 12 |
"UsageMonitor",
|
|
|
|
| 2 |
monitors/__init__.py - Monitoring system initialization
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
from .audit_monitor import AuditMonitor
|
| 6 |
from .behavior_monitor import BehaviorMonitor
|
|
|
|
| 7 |
from .performance_monitor import PerformanceMonitor
|
| 8 |
+
from .threat_detector import ThreatDetector
|
| 9 |
+
from .usage_monitor import UsageMonitor
|
| 10 |
|
| 11 |
__all__ = [
|
| 12 |
"UsageMonitor",
|
src/llmguardian/monitors/audit_monitor.py
CHANGED
|
@@ -3,15 +3,16 @@ monitors/audit_monitor.py - Audit trail and compliance monitoring
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import json
|
| 6 |
-
|
|
|
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime, timedelta
|
| 9 |
from enum import Enum
|
| 10 |
-
import threading
|
| 11 |
from pathlib import Path
|
| 12 |
-
from
|
| 13 |
-
|
| 14 |
from ..core.exceptions import MonitoringError
|
|
|
|
| 15 |
|
| 16 |
|
| 17 |
class AuditEventType(Enum):
|
|
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
import json
|
| 6 |
+
import threading
|
| 7 |
+
from collections import defaultdict
|
| 8 |
from dataclasses import dataclass
|
| 9 |
from datetime import datetime, timedelta
|
| 10 |
from enum import Enum
|
|
|
|
| 11 |
from pathlib import Path
|
| 12 |
+
from typing import Any, Dict, List, Optional, Set
|
| 13 |
+
|
| 14 |
from ..core.exceptions import MonitoringError
|
| 15 |
+
from ..core.logger import SecurityLogger
|
| 16 |
|
| 17 |
|
| 18 |
class AuditEventType(Enum):
|
src/llmguardian/monitors/behavior_monitor.py
CHANGED
|
@@ -2,11 +2,12 @@
|
|
| 2 |
monitors/behavior_monitor.py - LLM behavior monitoring
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
from typing import Dict, List, Optional, Any
|
| 6 |
from dataclasses import dataclass
|
| 7 |
from datetime import datetime
|
| 8 |
-
from
|
|
|
|
| 9 |
from ..core.exceptions import MonitoringError
|
|
|
|
| 10 |
|
| 11 |
|
| 12 |
@dataclass
|
|
|
|
| 2 |
monitors/behavior_monitor.py - LLM behavior monitoring
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
from dataclasses import dataclass
|
| 6 |
from datetime import datetime
|
| 7 |
+
from typing import Any, Dict, List, Optional
|
| 8 |
+
|
| 9 |
from ..core.exceptions import MonitoringError
|
| 10 |
+
from ..core.logger import SecurityLogger
|
| 11 |
|
| 12 |
|
| 13 |
@dataclass
|
src/llmguardian/monitors/performance_monitor.py
CHANGED
|
@@ -2,15 +2,16 @@
|
|
| 2 |
monitors/performance_monitor.py - LLM performance monitoring
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import time
|
| 6 |
import threading
|
| 7 |
-
|
|
|
|
| 8 |
from dataclasses import dataclass
|
| 9 |
from datetime import datetime, timedelta
|
| 10 |
from statistics import mean, median, stdev
|
| 11 |
-
from
|
| 12 |
-
|
| 13 |
from ..core.exceptions import MonitoringError
|
|
|
|
| 14 |
|
| 15 |
|
| 16 |
@dataclass
|
|
|
|
| 2 |
monitors/performance_monitor.py - LLM performance monitoring
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
import threading
|
| 6 |
+
import time
|
| 7 |
+
from collections import deque
|
| 8 |
from dataclasses import dataclass
|
| 9 |
from datetime import datetime, timedelta
|
| 10 |
from statistics import mean, median, stdev
|
| 11 |
+
from typing import Any, Dict, List, Optional
|
| 12 |
+
|
| 13 |
from ..core.exceptions import MonitoringError
|
| 14 |
+
from ..core.logger import SecurityLogger
|
| 15 |
|
| 16 |
|
| 17 |
@dataclass
|
src/llmguardian/monitors/threat_detector.py
CHANGED
|
@@ -2,14 +2,15 @@
|
|
| 2 |
monitors/threat_detector.py - Real-time threat detection for LLM applications
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
|
|
|
|
| 6 |
from dataclasses import dataclass
|
| 7 |
from datetime import datetime, timedelta
|
| 8 |
from enum import Enum
|
| 9 |
-
import
|
| 10 |
-
|
| 11 |
-
from ..core.logger import SecurityLogger
|
| 12 |
from ..core.exceptions import MonitoringError
|
|
|
|
| 13 |
|
| 14 |
|
| 15 |
class ThreatLevel(Enum):
|
|
|
|
| 2 |
monitors/threat_detector.py - Real-time threat detection for LLM applications
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import threading
|
| 6 |
+
from collections import defaultdict
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime, timedelta
|
| 9 |
from enum import Enum
|
| 10 |
+
from typing import Any, Dict, List, Optional, Set
|
| 11 |
+
|
|
|
|
| 12 |
from ..core.exceptions import MonitoringError
|
| 13 |
+
from ..core.logger import SecurityLogger
|
| 14 |
|
| 15 |
|
| 16 |
class ThreatLevel(Enum):
|
src/llmguardian/monitors/usage_monitor.py
CHANGED
|
@@ -2,14 +2,16 @@
|
|
| 2 |
monitors/usage_monitor.py - Resource usage monitoring
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import time
|
| 6 |
-
import psutil
|
| 7 |
import threading
|
| 8 |
-
|
| 9 |
from dataclasses import dataclass
|
| 10 |
from datetime import datetime
|
| 11 |
-
from
|
|
|
|
|
|
|
|
|
|
| 12 |
from ..core.exceptions import MonitoringError
|
|
|
|
| 13 |
|
| 14 |
|
| 15 |
@dataclass
|
|
|
|
| 2 |
monitors/usage_monitor.py - Resource usage monitoring
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
| 5 |
import threading
|
| 6 |
+
import time
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime
|
| 9 |
+
from typing import Dict, List, Optional
|
| 10 |
+
|
| 11 |
+
import psutil
|
| 12 |
+
|
| 13 |
from ..core.exceptions import MonitoringError
|
| 14 |
+
from ..core.logger import SecurityLogger
|
| 15 |
|
| 16 |
|
| 17 |
@dataclass
|
src/llmguardian/scanners/prompt_injection_scanner.py
CHANGED
|
@@ -3,12 +3,12 @@ LLMGuardian Prompt Injection Scanner
|
|
| 3 |
Core module for detecting and preventing prompt injection attacks in LLM applications.
|
| 4 |
"""
|
| 5 |
|
|
|
|
| 6 |
import re
|
|
|
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from enum import Enum
|
| 9 |
-
from typing import List, Optional,
|
| 10 |
-
import logging
|
| 11 |
-
from abc import ABC, abstractmethod
|
| 12 |
|
| 13 |
# Configure logging
|
| 14 |
logging.basicConfig(level=logging.INFO)
|
|
|
|
| 3 |
Core module for detecting and preventing prompt injection attacks in LLM applications.
|
| 4 |
"""
|
| 5 |
|
| 6 |
+
import logging
|
| 7 |
import re
|
| 8 |
+
from abc import ABC, abstractmethod
|
| 9 |
from dataclasses import dataclass
|
| 10 |
from enum import Enum
|
| 11 |
+
from typing import Dict, List, Optional, Tuple
|
|
|
|
|
|
|
| 12 |
|
| 13 |
# Configure logging
|
| 14 |
logging.basicConfig(level=logging.INFO)
|
src/llmguardian/vectors/__init__.py
CHANGED
|
@@ -3,8 +3,8 @@ vectors/__init__.py - Vector security initialization
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
from .embedding_validator import EmbeddingValidator
|
| 6 |
-
from .vector_scanner import VectorScanner
|
| 7 |
from .retrieval_guard import RetrievalGuard
|
| 8 |
from .storage_validator import StorageValidator
|
|
|
|
| 9 |
|
| 10 |
__all__ = ["EmbeddingValidator", "VectorScanner", "RetrievalGuard", "StorageValidator"]
|
|
|
|
| 3 |
"""
|
| 4 |
|
| 5 |
from .embedding_validator import EmbeddingValidator
|
|
|
|
| 6 |
from .retrieval_guard import RetrievalGuard
|
| 7 |
from .storage_validator import StorageValidator
|
| 8 |
+
from .vector_scanner import VectorScanner
|
| 9 |
|
| 10 |
__all__ = ["EmbeddingValidator", "VectorScanner", "RetrievalGuard", "StorageValidator"]
|
src/llmguardian/vectors/embedding_validator.py
CHANGED
|
@@ -2,13 +2,15 @@
|
|
| 2 |
vectors/embedding_validator.py - Embedding validation and security
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import
|
| 6 |
-
from typing import Dict, List, Optional, Any, Tuple
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime
|
| 9 |
-
import
|
| 10 |
-
|
|
|
|
|
|
|
| 11 |
from ..core.exceptions import ValidationError
|
|
|
|
| 12 |
|
| 13 |
|
| 14 |
@dataclass
|
|
|
|
| 2 |
vectors/embedding_validator.py - Embedding validation and security
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import hashlib
|
|
|
|
| 6 |
from dataclasses import dataclass
|
| 7 |
from datetime import datetime
|
| 8 |
+
from typing import Any, Dict, List, Optional, Tuple
|
| 9 |
+
|
| 10 |
+
import numpy as np
|
| 11 |
+
|
| 12 |
from ..core.exceptions import ValidationError
|
| 13 |
+
from ..core.logger import SecurityLogger
|
| 14 |
|
| 15 |
|
| 16 |
@dataclass
|
src/llmguardian/vectors/retrieval_guard.py
CHANGED
|
@@ -2,16 +2,18 @@
|
|
| 2 |
vectors/retrieval_guard.py - Security for Retrieval-Augmented Generation (RAG) operations
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import numpy as np
|
| 6 |
-
from typing import Dict, List, Optional, Any, Tuple, Set
|
| 7 |
-
from dataclasses import dataclass
|
| 8 |
-
from datetime import datetime
|
| 9 |
-
from enum import Enum
|
| 10 |
import hashlib
|
| 11 |
import re
|
| 12 |
from collections import defaultdict
|
| 13 |
-
from
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
from ..core.exceptions import SecurityError
|
|
|
|
| 15 |
|
| 16 |
|
| 17 |
class RetrievalRisk(Enum):
|
|
|
|
| 2 |
vectors/retrieval_guard.py - Security for Retrieval-Augmented Generation (RAG) operations
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
import hashlib
|
| 6 |
import re
|
| 7 |
from collections import defaultdict
|
| 8 |
+
from dataclasses import dataclass
|
| 9 |
+
from datetime import datetime
|
| 10 |
+
from enum import Enum
|
| 11 |
+
from typing import Any, Dict, List, Optional, Set, Tuple
|
| 12 |
+
|
| 13 |
+
import numpy as np
|
| 14 |
+
|
| 15 |
from ..core.exceptions import SecurityError
|
| 16 |
+
from ..core.logger import SecurityLogger
|
| 17 |
|
| 18 |
|
| 19 |
class RetrievalRisk(Enum):
|
src/llmguardian/vectors/storage_validator.py
CHANGED
|
@@ -2,16 +2,18 @@
|
|
| 2 |
vectors/storage_validator.py - Vector storage security validation
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import numpy as np
|
| 6 |
-
from typing import Dict, List, Optional, Any, Tuple, Set
|
| 7 |
-
from dataclasses import dataclass
|
| 8 |
-
from datetime import datetime
|
| 9 |
-
from enum import Enum
|
| 10 |
import hashlib
|
| 11 |
import json
|
| 12 |
from collections import defaultdict
|
| 13 |
-
from
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
from ..core.exceptions import SecurityError
|
|
|
|
| 15 |
|
| 16 |
|
| 17 |
class StorageRisk(Enum):
|
|
|
|
| 2 |
vectors/storage_validator.py - Vector storage security validation
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
import hashlib
|
| 6 |
import json
|
| 7 |
from collections import defaultdict
|
| 8 |
+
from dataclasses import dataclass
|
| 9 |
+
from datetime import datetime
|
| 10 |
+
from enum import Enum
|
| 11 |
+
from typing import Any, Dict, List, Optional, Set, Tuple
|
| 12 |
+
|
| 13 |
+
import numpy as np
|
| 14 |
+
|
| 15 |
from ..core.exceptions import SecurityError
|
| 16 |
+
from ..core.logger import SecurityLogger
|
| 17 |
|
| 18 |
|
| 19 |
class StorageRisk(Enum):
|
src/llmguardian/vectors/vector_scanner.py
CHANGED
|
@@ -2,15 +2,17 @@
|
|
| 2 |
vectors/vector_scanner.py - Security scanner for vector databases and operations
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import
|
| 6 |
-
from
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime
|
| 9 |
from enum import Enum
|
| 10 |
-
import
|
| 11 |
-
|
| 12 |
-
|
|
|
|
| 13 |
from ..core.exceptions import SecurityError
|
|
|
|
| 14 |
|
| 15 |
|
| 16 |
class VectorVulnerability(Enum):
|
|
|
|
| 2 |
vectors/vector_scanner.py - Security scanner for vector databases and operations
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import hashlib
|
| 6 |
+
from collections import defaultdict
|
| 7 |
from dataclasses import dataclass
|
| 8 |
from datetime import datetime
|
| 9 |
from enum import Enum
|
| 10 |
+
from typing import Any, Dict, List, Optional, Set
|
| 11 |
+
|
| 12 |
+
import numpy as np
|
| 13 |
+
|
| 14 |
from ..core.exceptions import SecurityError
|
| 15 |
+
from ..core.logger import SecurityLogger
|
| 16 |
|
| 17 |
|
| 18 |
class VectorVulnerability(Enum):
|
tests/conftest.py
CHANGED
|
@@ -2,13 +2,15 @@
|
|
| 2 |
tests/conftest.py - Pytest configuration and shared fixtures
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import pytest
|
| 6 |
-
import os
|
| 7 |
import json
|
|
|
|
| 8 |
from pathlib import Path
|
| 9 |
-
from typing import
|
| 10 |
-
|
|
|
|
|
|
|
| 11 |
from llmguardian.core.config import Config
|
|
|
|
| 12 |
|
| 13 |
|
| 14 |
@pytest.fixture(scope="session")
|
|
|
|
| 2 |
tests/conftest.py - Pytest configuration and shared fixtures
|
| 3 |
"""
|
| 4 |
|
|
|
|
|
|
|
| 5 |
import json
|
| 6 |
+
import os
|
| 7 |
from pathlib import Path
|
| 8 |
+
from typing import Any, Dict
|
| 9 |
+
|
| 10 |
+
import pytest
|
| 11 |
+
|
| 12 |
from llmguardian.core.config import Config
|
| 13 |
+
from llmguardian.core.logger import SecurityLogger
|
| 14 |
|
| 15 |
|
| 16 |
@pytest.fixture(scope="session")
|
tests/data/test_privacy_guard.py
CHANGED
|
@@ -2,17 +2,19 @@
|
|
| 2 |
tests/data/test_privacy_guard.py - Test cases for privacy protection functionality
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import pytest
|
| 6 |
from datetime import datetime
|
| 7 |
from unittest.mock import Mock, patch
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
from llmguardian.data.privacy_guard import (
|
| 9 |
-
PrivacyGuard,
|
| 10 |
-
PrivacyRule,
|
| 11 |
-
PrivacyLevel,
|
| 12 |
DataCategory,
|
| 13 |
PrivacyCheck,
|
|
|
|
|
|
|
|
|
|
| 14 |
)
|
| 15 |
-
from llmguardian.core.exceptions import SecurityError
|
| 16 |
|
| 17 |
|
| 18 |
@pytest.fixture
|
|
|
|
| 2 |
tests/data/test_privacy_guard.py - Test cases for privacy protection functionality
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
from datetime import datetime
|
| 6 |
from unittest.mock import Mock, patch
|
| 7 |
+
|
| 8 |
+
import pytest
|
| 9 |
+
|
| 10 |
+
from llmguardian.core.exceptions import SecurityError
|
| 11 |
from llmguardian.data.privacy_guard import (
|
|
|
|
|
|
|
|
|
|
| 12 |
DataCategory,
|
| 13 |
PrivacyCheck,
|
| 14 |
+
PrivacyGuard,
|
| 15 |
+
PrivacyLevel,
|
| 16 |
+
PrivacyRule,
|
| 17 |
)
|
|
|
|
| 18 |
|
| 19 |
|
| 20 |
@pytest.fixture
|
tests/unit/test_prompt_injection_scanner.py
CHANGED
|
@@ -2,12 +2,13 @@
|
|
| 2 |
Tests for the LLMGuardian Prompt Injection Scanner
|
| 3 |
"""
|
| 4 |
|
| 5 |
-
import pytest
|
| 6 |
from typing import List
|
|
|
|
|
|
|
| 7 |
from prompt_injection_scanner import (
|
| 8 |
-
PromptInjectionScanner,
|
| 9 |
InjectionPattern,
|
| 10 |
InjectionType,
|
|
|
|
| 11 |
ScanResult,
|
| 12 |
)
|
| 13 |
|
|
|
|
| 2 |
Tests for the LLMGuardian Prompt Injection Scanner
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
from typing import List
|
| 6 |
+
|
| 7 |
+
import pytest
|
| 8 |
from prompt_injection_scanner import (
|
|
|
|
| 9 |
InjectionPattern,
|
| 10 |
InjectionType,
|
| 11 |
+
PromptInjectionScanner,
|
| 12 |
ScanResult,
|
| 13 |
)
|
| 14 |
|
tests/utils/test_utils.py
CHANGED
|
@@ -4,7 +4,8 @@ tests/utils/test_utils.py - Testing utilities and helpers
|
|
| 4 |
|
| 5 |
import json
|
| 6 |
from pathlib import Path
|
| 7 |
-
from typing import
|
|
|
|
| 8 |
import numpy as np
|
| 9 |
|
| 10 |
|
|
|
|
| 4 |
|
| 5 |
import json
|
| 6 |
from pathlib import Path
|
| 7 |
+
from typing import Any, Dict, Optional
|
| 8 |
+
|
| 9 |
import numpy as np
|
| 10 |
|
| 11 |
|