unrealon 1.0.9__py3-none-any.whl → 1.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unrealon/__init__.py +23 -21
- unrealon-1.1.1.dist-info/METADATA +722 -0
- unrealon-1.1.1.dist-info/RECORD +82 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.1.dist-info}/WHEEL +1 -1
- unrealon-1.1.1.dist-info/entry_points.txt +9 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.1.dist-info/licenses}/LICENSE +1 -1
- unrealon_bridge/__init__.py +114 -0
- unrealon_bridge/cli.py +316 -0
- unrealon_bridge/client/__init__.py +93 -0
- unrealon_bridge/client/base.py +78 -0
- unrealon_bridge/client/commands.py +89 -0
- unrealon_bridge/client/connection.py +90 -0
- unrealon_bridge/client/events.py +65 -0
- unrealon_bridge/client/health.py +38 -0
- unrealon_bridge/client/html_parser.py +146 -0
- unrealon_bridge/client/logging.py +139 -0
- unrealon_bridge/client/proxy.py +70 -0
- unrealon_bridge/client/scheduler.py +450 -0
- unrealon_bridge/client/session.py +70 -0
- unrealon_bridge/configs/__init__.py +14 -0
- unrealon_bridge/configs/bridge_config.py +212 -0
- unrealon_bridge/configs/bridge_config.yaml +39 -0
- unrealon_bridge/models/__init__.py +138 -0
- unrealon_bridge/models/base.py +28 -0
- unrealon_bridge/models/command.py +41 -0
- unrealon_bridge/models/events.py +40 -0
- unrealon_bridge/models/html_parser.py +79 -0
- unrealon_bridge/models/logging.py +55 -0
- unrealon_bridge/models/parser.py +63 -0
- unrealon_bridge/models/proxy.py +41 -0
- unrealon_bridge/models/requests.py +95 -0
- unrealon_bridge/models/responses.py +88 -0
- unrealon_bridge/models/scheduler.py +592 -0
- unrealon_bridge/models/session.py +28 -0
- unrealon_bridge/server/__init__.py +91 -0
- unrealon_bridge/server/base.py +171 -0
- unrealon_bridge/server/handlers/__init__.py +23 -0
- unrealon_bridge/server/handlers/command.py +110 -0
- unrealon_bridge/server/handlers/html_parser.py +139 -0
- unrealon_bridge/server/handlers/logging.py +95 -0
- unrealon_bridge/server/handlers/parser.py +95 -0
- unrealon_bridge/server/handlers/proxy.py +75 -0
- unrealon_bridge/server/handlers/scheduler.py +545 -0
- unrealon_bridge/server/handlers/session.py +66 -0
- unrealon_browser/__init__.py +61 -18
- unrealon_browser/{src/cli → cli}/browser_cli.py +6 -13
- unrealon_browser/{src/cli → cli}/cookies_cli.py +5 -1
- unrealon_browser/{src/core → core}/browser_manager.py +2 -2
- unrealon_browser/{src/managers → managers}/captcha.py +1 -1
- unrealon_browser/{src/managers → managers}/cookies.py +1 -1
- unrealon_browser/managers/logger_bridge.py +231 -0
- unrealon_browser/{src/managers → managers}/profile.py +1 -1
- unrealon_driver/__init__.py +73 -19
- unrealon_driver/browser/__init__.py +8 -0
- unrealon_driver/browser/config.py +74 -0
- unrealon_driver/browser/manager.py +416 -0
- unrealon_driver/exceptions.py +28 -0
- unrealon_driver/parser/__init__.py +55 -0
- unrealon_driver/parser/cli_manager.py +141 -0
- unrealon_driver/parser/daemon_manager.py +227 -0
- unrealon_driver/parser/managers/__init__.py +46 -0
- unrealon_driver/parser/managers/browser.py +51 -0
- unrealon_driver/parser/managers/config.py +281 -0
- unrealon_driver/parser/managers/error.py +412 -0
- unrealon_driver/parser/managers/html.py +732 -0
- unrealon_driver/parser/managers/logging.py +609 -0
- unrealon_driver/parser/managers/result.py +321 -0
- unrealon_driver/parser/parser_manager.py +628 -0
- unrealon/sdk_config.py +0 -88
- unrealon-1.0.9.dist-info/METADATA +0 -810
- unrealon-1.0.9.dist-info/RECORD +0 -246
- unrealon_browser/pyproject.toml +0 -182
- unrealon_browser/src/__init__.py +0 -62
- unrealon_browser/src/managers/logger_bridge.py +0 -395
- unrealon_driver/README.md +0 -204
- unrealon_driver/pyproject.toml +0 -187
- unrealon_driver/src/__init__.py +0 -90
- unrealon_driver/src/cli/__init__.py +0 -10
- unrealon_driver/src/cli/main.py +0 -66
- unrealon_driver/src/cli/simple.py +0 -510
- unrealon_driver/src/config/__init__.py +0 -11
- unrealon_driver/src/config/auto_config.py +0 -478
- unrealon_driver/src/core/__init__.py +0 -18
- unrealon_driver/src/core/exceptions.py +0 -289
- unrealon_driver/src/core/parser.py +0 -638
- unrealon_driver/src/dto/__init__.py +0 -66
- unrealon_driver/src/dto/cli.py +0 -119
- unrealon_driver/src/dto/config.py +0 -18
- unrealon_driver/src/dto/events.py +0 -237
- unrealon_driver/src/dto/execution.py +0 -313
- unrealon_driver/src/dto/services.py +0 -311
- unrealon_driver/src/execution/__init__.py +0 -23
- unrealon_driver/src/execution/daemon_mode.py +0 -317
- unrealon_driver/src/execution/interactive_mode.py +0 -88
- unrealon_driver/src/execution/modes.py +0 -45
- unrealon_driver/src/execution/scheduled_mode.py +0 -209
- unrealon_driver/src/execution/test_mode.py +0 -250
- unrealon_driver/src/logging/__init__.py +0 -24
- unrealon_driver/src/logging/driver_logger.py +0 -512
- unrealon_driver/src/services/__init__.py +0 -24
- unrealon_driver/src/services/browser_service.py +0 -726
- unrealon_driver/src/services/llm/__init__.py +0 -15
- unrealon_driver/src/services/llm/browser_llm_service.py +0 -363
- unrealon_driver/src/services/llm/llm.py +0 -195
- unrealon_driver/src/services/logger_service.py +0 -232
- unrealon_driver/src/services/metrics_service.py +0 -185
- unrealon_driver/src/services/scheduler_service.py +0 -489
- unrealon_driver/src/services/websocket_service.py +0 -362
- unrealon_driver/src/utils/__init__.py +0 -16
- unrealon_driver/src/utils/service_factory.py +0 -317
- unrealon_driver/src/utils/time_formatter.py +0 -338
- unrealon_llm/README.md +0 -44
- unrealon_llm/__init__.py +0 -26
- unrealon_llm/pyproject.toml +0 -154
- unrealon_llm/src/__init__.py +0 -228
- unrealon_llm/src/cli/__init__.py +0 -0
- unrealon_llm/src/core/__init__.py +0 -11
- unrealon_llm/src/core/smart_client.py +0 -438
- unrealon_llm/src/dto/__init__.py +0 -155
- unrealon_llm/src/dto/models/__init__.py +0 -0
- unrealon_llm/src/dto/models/config.py +0 -343
- unrealon_llm/src/dto/models/core.py +0 -328
- unrealon_llm/src/dto/models/enums.py +0 -123
- unrealon_llm/src/dto/models/html_analysis.py +0 -345
- unrealon_llm/src/dto/models/statistics.py +0 -473
- unrealon_llm/src/dto/models/translation.py +0 -383
- unrealon_llm/src/dto/models/type_conversion.py +0 -462
- unrealon_llm/src/dto/schemas/__init__.py +0 -0
- unrealon_llm/src/exceptions.py +0 -392
- unrealon_llm/src/llm_config/__init__.py +0 -20
- unrealon_llm/src/llm_config/logging_config.py +0 -178
- unrealon_llm/src/llm_logging/__init__.py +0 -42
- unrealon_llm/src/llm_logging/llm_events.py +0 -107
- unrealon_llm/src/llm_logging/llm_logger.py +0 -466
- unrealon_llm/src/managers/__init__.py +0 -15
- unrealon_llm/src/managers/cache_manager.py +0 -67
- unrealon_llm/src/managers/cost_manager.py +0 -107
- unrealon_llm/src/managers/request_manager.py +0 -298
- unrealon_llm/src/modules/__init__.py +0 -0
- unrealon_llm/src/modules/html_processor/__init__.py +0 -25
- unrealon_llm/src/modules/html_processor/base_processor.py +0 -415
- unrealon_llm/src/modules/html_processor/details_processor.py +0 -85
- unrealon_llm/src/modules/html_processor/listing_processor.py +0 -91
- unrealon_llm/src/modules/html_processor/models/__init__.py +0 -20
- unrealon_llm/src/modules/html_processor/models/processing_models.py +0 -40
- unrealon_llm/src/modules/html_processor/models/universal_model.py +0 -56
- unrealon_llm/src/modules/html_processor/processor.py +0 -102
- unrealon_llm/src/modules/llm/__init__.py +0 -0
- unrealon_llm/src/modules/translator/__init__.py +0 -0
- unrealon_llm/src/provider.py +0 -116
- unrealon_llm/src/utils/__init__.py +0 -95
- unrealon_llm/src/utils/common.py +0 -64
- unrealon_llm/src/utils/data_extractor.py +0 -188
- unrealon_llm/src/utils/html_cleaner.py +0 -767
- unrealon_llm/src/utils/language_detector.py +0 -308
- unrealon_llm/src/utils/models_cache.py +0 -592
- unrealon_llm/src/utils/smart_counter.py +0 -229
- unrealon_llm/src/utils/token_counter.py +0 -189
- unrealon_sdk/README.md +0 -25
- unrealon_sdk/__init__.py +0 -30
- unrealon_sdk/pyproject.toml +0 -231
- unrealon_sdk/src/__init__.py +0 -150
- unrealon_sdk/src/cli/__init__.py +0 -12
- unrealon_sdk/src/cli/commands/__init__.py +0 -22
- unrealon_sdk/src/cli/commands/benchmark.py +0 -42
- unrealon_sdk/src/cli/commands/diagnostics.py +0 -573
- unrealon_sdk/src/cli/commands/health.py +0 -46
- unrealon_sdk/src/cli/commands/integration.py +0 -498
- unrealon_sdk/src/cli/commands/reports.py +0 -43
- unrealon_sdk/src/cli/commands/security.py +0 -36
- unrealon_sdk/src/cli/commands/server.py +0 -483
- unrealon_sdk/src/cli/commands/servers.py +0 -56
- unrealon_sdk/src/cli/commands/tests.py +0 -55
- unrealon_sdk/src/cli/main.py +0 -126
- unrealon_sdk/src/cli/utils/reporter.py +0 -519
- unrealon_sdk/src/clients/openapi.yaml +0 -3347
- unrealon_sdk/src/clients/python_http/__init__.py +0 -3
- unrealon_sdk/src/clients/python_http/api_config.py +0 -228
- unrealon_sdk/src/clients/python_http/models/BaseModel.py +0 -12
- unrealon_sdk/src/clients/python_http/models/BroadcastDeliveryStats.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastMessage.py +0 -17
- unrealon_sdk/src/clients/python_http/models/BroadcastMessageRequest.py +0 -35
- unrealon_sdk/src/clients/python_http/models/BroadcastPriority.py +0 -10
- unrealon_sdk/src/clients/python_http/models/BroadcastResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/BroadcastResultResponse.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastTarget.py +0 -11
- unrealon_sdk/src/clients/python_http/models/ConnectionStats.py +0 -27
- unrealon_sdk/src/clients/python_http/models/ConnectionsResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/DeveloperMessageResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ErrorResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/HTTPValidationError.py +0 -16
- unrealon_sdk/src/clients/python_http/models/HealthResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/HealthStatus.py +0 -33
- unrealon_sdk/src/clients/python_http/models/LogLevel.py +0 -10
- unrealon_sdk/src/clients/python_http/models/LoggingRequest.py +0 -27
- unrealon_sdk/src/clients/python_http/models/LoggingResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/MaintenanceMode.py +0 -9
- unrealon_sdk/src/clients/python_http/models/MaintenanceModeRequest.py +0 -33
- unrealon_sdk/src/clients/python_http/models/MaintenanceStatusResponse.py +0 -39
- unrealon_sdk/src/clients/python_http/models/ParserCommandRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserMessageResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationRequest.py +0 -28
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserType.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyBlockRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyEndpointResponse.py +0 -20
- unrealon_sdk/src/clients/python_http/models/ProxyListResponse.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyProvider.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyPurchaseRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ProxyResponse.py +0 -47
- unrealon_sdk/src/clients/python_http/models/ProxyRotationRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ProxyStatus.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyUsageRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyUsageStatsResponse.py +0 -26
- unrealon_sdk/src/clients/python_http/models/ServiceRegistrationDto.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ServiceStatsResponse.py +0 -31
- unrealon_sdk/src/clients/python_http/models/SessionStartRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/SuccessResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/SystemNotificationResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ValidationError.py +0 -18
- unrealon_sdk/src/clients/python_http/models/ValidationErrorResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/WebSocketMetrics.py +0 -21
- unrealon_sdk/src/clients/python_http/models/__init__.py +0 -44
- unrealon_sdk/src/clients/python_http/services/None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/SocketLogging_service.py +0 -187
- unrealon_sdk/src/clients/python_http/services/SystemHealth_service.py +0 -119
- unrealon_sdk/src/clients/python_http/services/WebSocketAPI_service.py +0 -198
- unrealon_sdk/src/clients/python_http/services/__init__.py +0 -0
- unrealon_sdk/src/clients/python_http/services/admin_service.py +0 -125
- unrealon_sdk/src/clients/python_http/services/async_None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/async_ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/async_ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/async_SocketLogging_service.py +0 -189
- unrealon_sdk/src/clients/python_http/services/async_SystemHealth_service.py +0 -123
- unrealon_sdk/src/clients/python_http/services/async_WebSocketAPI_service.py +0 -200
- unrealon_sdk/src/clients/python_http/services/async_admin_service.py +0 -125
- unrealon_sdk/src/clients/python_websocket/__init__.py +0 -28
- unrealon_sdk/src/clients/python_websocket/client.py +0 -490
- unrealon_sdk/src/clients/python_websocket/events.py +0 -732
- unrealon_sdk/src/clients/python_websocket/example.py +0 -136
- unrealon_sdk/src/clients/python_websocket/types.py +0 -871
- unrealon_sdk/src/core/__init__.py +0 -64
- unrealon_sdk/src/core/client.py +0 -556
- unrealon_sdk/src/core/config.py +0 -465
- unrealon_sdk/src/core/exceptions.py +0 -239
- unrealon_sdk/src/core/metadata.py +0 -191
- unrealon_sdk/src/core/models.py +0 -142
- unrealon_sdk/src/core/types.py +0 -68
- unrealon_sdk/src/dto/__init__.py +0 -268
- unrealon_sdk/src/dto/authentication.py +0 -108
- unrealon_sdk/src/dto/cache.py +0 -208
- unrealon_sdk/src/dto/common.py +0 -19
- unrealon_sdk/src/dto/concurrency.py +0 -393
- unrealon_sdk/src/dto/events.py +0 -108
- unrealon_sdk/src/dto/health.py +0 -339
- unrealon_sdk/src/dto/load_balancing.py +0 -336
- unrealon_sdk/src/dto/logging.py +0 -230
- unrealon_sdk/src/dto/performance.py +0 -165
- unrealon_sdk/src/dto/rate_limiting.py +0 -295
- unrealon_sdk/src/dto/resource_pooling.py +0 -128
- unrealon_sdk/src/dto/structured_logging.py +0 -112
- unrealon_sdk/src/dto/task_scheduling.py +0 -121
- unrealon_sdk/src/dto/websocket.py +0 -55
- unrealon_sdk/src/enterprise/__init__.py +0 -59
- unrealon_sdk/src/enterprise/authentication.py +0 -401
- unrealon_sdk/src/enterprise/cache_manager.py +0 -578
- unrealon_sdk/src/enterprise/error_recovery.py +0 -494
- unrealon_sdk/src/enterprise/event_system.py +0 -549
- unrealon_sdk/src/enterprise/health_monitor.py +0 -747
- unrealon_sdk/src/enterprise/load_balancer.py +0 -964
- unrealon_sdk/src/enterprise/logging/__init__.py +0 -68
- unrealon_sdk/src/enterprise/logging/cleanup.py +0 -156
- unrealon_sdk/src/enterprise/logging/development.py +0 -744
- unrealon_sdk/src/enterprise/logging/service.py +0 -410
- unrealon_sdk/src/enterprise/multithreading_manager.py +0 -853
- unrealon_sdk/src/enterprise/performance_monitor.py +0 -539
- unrealon_sdk/src/enterprise/proxy_manager.py +0 -696
- unrealon_sdk/src/enterprise/rate_limiter.py +0 -652
- unrealon_sdk/src/enterprise/resource_pool.py +0 -763
- unrealon_sdk/src/enterprise/task_scheduler.py +0 -709
- unrealon_sdk/src/internal/__init__.py +0 -10
- unrealon_sdk/src/internal/command_router.py +0 -497
- unrealon_sdk/src/internal/connection_manager.py +0 -397
- unrealon_sdk/src/internal/http_client.py +0 -446
- unrealon_sdk/src/internal/websocket_client.py +0 -420
- unrealon_sdk/src/provider.py +0 -471
- unrealon_sdk/src/utils.py +0 -234
- /unrealon_browser/{src/cli → cli}/__init__.py +0 -0
- /unrealon_browser/{src/cli → cli}/interactive_mode.py +0 -0
- /unrealon_browser/{src/cli → cli}/main.py +0 -0
- /unrealon_browser/{src/core → core}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/config.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/core.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/dataclasses.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/detection.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/enums.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/statistics.py +0 -0
- /unrealon_browser/{src/managers → managers}/__init__.py +0 -0
- /unrealon_browser/{src/managers → managers}/stealth.py +0 -0
|
@@ -1,473 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
LLM DTOs - Statistics Models
|
|
3
|
-
Data models for usage statistics and analytics
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
from datetime import datetime
|
|
7
|
-
from typing import Any, Dict, List, Optional
|
|
8
|
-
|
|
9
|
-
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
-
|
|
11
|
-
from .enums import ProcessingStage
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class ModuleUsage(BaseModel):
|
|
15
|
-
"""Usage statistics for individual module"""
|
|
16
|
-
|
|
17
|
-
model_config = ConfigDict(
|
|
18
|
-
title="Module Usage",
|
|
19
|
-
description="Usage statistics for individual LLM module",
|
|
20
|
-
validate_assignment=True,
|
|
21
|
-
extra="forbid"
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
module_name: str = Field(..., description="Module name")
|
|
25
|
-
total_requests: int = Field(
|
|
26
|
-
0,
|
|
27
|
-
ge=0,
|
|
28
|
-
description="Total requests processed"
|
|
29
|
-
)
|
|
30
|
-
successful_requests: int = Field(
|
|
31
|
-
0,
|
|
32
|
-
ge=0,
|
|
33
|
-
description="Successful requests"
|
|
34
|
-
)
|
|
35
|
-
failed_requests: int = Field(
|
|
36
|
-
0,
|
|
37
|
-
ge=0,
|
|
38
|
-
description="Failed requests"
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
# Performance metrics
|
|
42
|
-
average_response_time: float = Field(
|
|
43
|
-
0.0,
|
|
44
|
-
ge=0,
|
|
45
|
-
description="Average response time"
|
|
46
|
-
)
|
|
47
|
-
total_processing_time: float = Field(
|
|
48
|
-
0.0,
|
|
49
|
-
ge=0,
|
|
50
|
-
description="Total processing time"
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
# Cost tracking
|
|
54
|
-
total_cost_usd: float = Field(
|
|
55
|
-
0.0,
|
|
56
|
-
ge=0,
|
|
57
|
-
description="Total cost incurred"
|
|
58
|
-
)
|
|
59
|
-
tokens_consumed: int = Field(
|
|
60
|
-
0,
|
|
61
|
-
ge=0,
|
|
62
|
-
description="Total tokens used"
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
# Cache performance
|
|
66
|
-
cache_hits: int = Field(0, ge=0, description="Cache hits")
|
|
67
|
-
cache_misses: int = Field(0, ge=0, description="Cache misses")
|
|
68
|
-
|
|
69
|
-
@property
|
|
70
|
-
def success_rate(self) -> float:
|
|
71
|
-
"""Calculate success rate"""
|
|
72
|
-
if self.total_requests == 0:
|
|
73
|
-
return 0.0
|
|
74
|
-
return self.successful_requests / self.total_requests
|
|
75
|
-
|
|
76
|
-
@property
|
|
77
|
-
def cache_hit_rate(self) -> float:
|
|
78
|
-
"""Calculate cache hit rate"""
|
|
79
|
-
total_cache_operations = self.cache_hits + self.cache_misses
|
|
80
|
-
if total_cache_operations == 0:
|
|
81
|
-
return 0.0
|
|
82
|
-
return self.cache_hits / total_cache_operations
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
class UsageStats(BaseModel):
|
|
86
|
-
"""Comprehensive usage statistics"""
|
|
87
|
-
|
|
88
|
-
model_config = ConfigDict(
|
|
89
|
-
title="Usage Statistics",
|
|
90
|
-
description="Comprehensive usage statistics across all modules",
|
|
91
|
-
validate_assignment=True,
|
|
92
|
-
extra="forbid"
|
|
93
|
-
)
|
|
94
|
-
|
|
95
|
-
# Time period
|
|
96
|
-
period_start: datetime = Field(..., description="Statistics period start")
|
|
97
|
-
period_end: datetime = Field(..., description="Statistics period end")
|
|
98
|
-
|
|
99
|
-
# Overall metrics
|
|
100
|
-
total_requests: int = Field(
|
|
101
|
-
0,
|
|
102
|
-
ge=0,
|
|
103
|
-
description="Total requests across all modules"
|
|
104
|
-
)
|
|
105
|
-
total_cost_usd: float = Field(
|
|
106
|
-
0.0,
|
|
107
|
-
ge=0,
|
|
108
|
-
description="Total cost incurred"
|
|
109
|
-
)
|
|
110
|
-
total_tokens_used: int = Field(
|
|
111
|
-
0,
|
|
112
|
-
ge=0,
|
|
113
|
-
description="Total tokens consumed"
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
# Module breakdown
|
|
117
|
-
module_usage: List[ModuleUsage] = Field(
|
|
118
|
-
...,
|
|
119
|
-
description="Usage by module"
|
|
120
|
-
)
|
|
121
|
-
|
|
122
|
-
# Performance metrics
|
|
123
|
-
average_response_time: float = Field(
|
|
124
|
-
0.0,
|
|
125
|
-
ge=0,
|
|
126
|
-
description="Overall average response time"
|
|
127
|
-
)
|
|
128
|
-
cache_hit_rate: float = Field(
|
|
129
|
-
0.0,
|
|
130
|
-
ge=0,
|
|
131
|
-
le=1,
|
|
132
|
-
description="Overall cache hit rate"
|
|
133
|
-
)
|
|
134
|
-
success_rate: float = Field(
|
|
135
|
-
0.0,
|
|
136
|
-
ge=0,
|
|
137
|
-
le=1,
|
|
138
|
-
description="Overall success rate"
|
|
139
|
-
)
|
|
140
|
-
|
|
141
|
-
# Cost analysis
|
|
142
|
-
cost_by_model: Dict[str, float] = Field(
|
|
143
|
-
default_factory=dict,
|
|
144
|
-
description="Cost breakdown by model"
|
|
145
|
-
)
|
|
146
|
-
cost_by_operation: Dict[str, float] = Field(
|
|
147
|
-
default_factory=dict,
|
|
148
|
-
description="Cost breakdown by operation"
|
|
149
|
-
)
|
|
150
|
-
|
|
151
|
-
# Recommendations
|
|
152
|
-
optimization_recommendations: List[str] = Field(
|
|
153
|
-
default_factory=list,
|
|
154
|
-
description="Usage optimization suggestions"
|
|
155
|
-
)
|
|
156
|
-
cost_saving_opportunities: List[str] = Field(
|
|
157
|
-
default_factory=list,
|
|
158
|
-
description="Cost reduction suggestions"
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
class StageResult(BaseModel):
|
|
163
|
-
"""Result of individual processing stage"""
|
|
164
|
-
|
|
165
|
-
model_config = ConfigDict(
|
|
166
|
-
title="Stage Result",
|
|
167
|
-
description="Result of individual processing pipeline stage",
|
|
168
|
-
validate_assignment=True,
|
|
169
|
-
extra="forbid"
|
|
170
|
-
)
|
|
171
|
-
|
|
172
|
-
stage: ProcessingStage = Field(..., description="Processing stage")
|
|
173
|
-
success: bool = Field(..., description="Stage completion status")
|
|
174
|
-
processing_time_seconds: float = Field(
|
|
175
|
-
...,
|
|
176
|
-
ge=0,
|
|
177
|
-
description="Stage processing time"
|
|
178
|
-
)
|
|
179
|
-
|
|
180
|
-
# Stage-specific data
|
|
181
|
-
stage_data: Dict[str, Any] = Field(
|
|
182
|
-
default_factory=dict,
|
|
183
|
-
description="Stage-specific results"
|
|
184
|
-
)
|
|
185
|
-
error_message: Optional[str] = Field(
|
|
186
|
-
None,
|
|
187
|
-
description="Error message if failed"
|
|
188
|
-
)
|
|
189
|
-
|
|
190
|
-
# Quality metrics
|
|
191
|
-
confidence_score: float = Field(
|
|
192
|
-
...,
|
|
193
|
-
ge=0,
|
|
194
|
-
le=1,
|
|
195
|
-
description="Stage confidence"
|
|
196
|
-
)
|
|
197
|
-
quality_metrics: Dict[str, float] = Field(
|
|
198
|
-
default_factory=dict,
|
|
199
|
-
description="Quality measurements"
|
|
200
|
-
)
|
|
201
|
-
|
|
202
|
-
# Performance metrics
|
|
203
|
-
tokens_used: Optional[int] = Field(
|
|
204
|
-
None,
|
|
205
|
-
ge=0,
|
|
206
|
-
description="Tokens consumed in this stage"
|
|
207
|
-
)
|
|
208
|
-
cost_usd: Optional[float] = Field(
|
|
209
|
-
None,
|
|
210
|
-
ge=0,
|
|
211
|
-
description="Cost for this stage"
|
|
212
|
-
)
|
|
213
|
-
cache_utilized: bool = Field(
|
|
214
|
-
False,
|
|
215
|
-
description="Whether cache was used"
|
|
216
|
-
)
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
class CompleteProcessingResult(BaseModel):
|
|
220
|
-
"""Result of complete processing pipeline"""
|
|
221
|
-
|
|
222
|
-
model_config = ConfigDict(
|
|
223
|
-
title="Complete Processing Result",
|
|
224
|
-
description="Complete result of processing pipeline with all stages",
|
|
225
|
-
validate_assignment=True,
|
|
226
|
-
extra="forbid"
|
|
227
|
-
)
|
|
228
|
-
|
|
229
|
-
# Input metadata
|
|
230
|
-
input_html_size: int = Field(
|
|
231
|
-
...,
|
|
232
|
-
ge=0,
|
|
233
|
-
description="Input HTML size"
|
|
234
|
-
)
|
|
235
|
-
target_language: str = Field(..., description="Target language used")
|
|
236
|
-
processing_config: Dict[str, Any] = Field(
|
|
237
|
-
...,
|
|
238
|
-
description="Processing configuration"
|
|
239
|
-
)
|
|
240
|
-
|
|
241
|
-
# Processing results
|
|
242
|
-
stage_results: List[StageResult] = Field(
|
|
243
|
-
...,
|
|
244
|
-
description="Results from each stage"
|
|
245
|
-
)
|
|
246
|
-
overall_success: bool = Field(
|
|
247
|
-
...,
|
|
248
|
-
description="Overall processing success"
|
|
249
|
-
)
|
|
250
|
-
total_processing_time: float = Field(
|
|
251
|
-
...,
|
|
252
|
-
ge=0,
|
|
253
|
-
description="Total processing time"
|
|
254
|
-
)
|
|
255
|
-
|
|
256
|
-
# Generated outputs (references to actual result objects)
|
|
257
|
-
html_analysis_result_id: Optional[str] = Field(
|
|
258
|
-
None,
|
|
259
|
-
description="ID of HTML analysis result"
|
|
260
|
-
)
|
|
261
|
-
translated_data_id: Optional[str] = Field(
|
|
262
|
-
None,
|
|
263
|
-
description="ID of translated data result"
|
|
264
|
-
)
|
|
265
|
-
pydantic_schema_id: Optional[str] = Field(
|
|
266
|
-
None,
|
|
267
|
-
description="ID of generated Pydantic schema"
|
|
268
|
-
)
|
|
269
|
-
typescript_schema_id: Optional[str] = Field(
|
|
270
|
-
None,
|
|
271
|
-
description="ID of generated TypeScript schema"
|
|
272
|
-
)
|
|
273
|
-
|
|
274
|
-
# Quality and performance
|
|
275
|
-
overall_confidence: float = Field(
|
|
276
|
-
...,
|
|
277
|
-
ge=0,
|
|
278
|
-
le=1,
|
|
279
|
-
description="Overall confidence score"
|
|
280
|
-
)
|
|
281
|
-
cost_breakdown: Dict[str, float] = Field(
|
|
282
|
-
default_factory=dict,
|
|
283
|
-
description="Cost by operation"
|
|
284
|
-
)
|
|
285
|
-
total_cost_usd: float = Field(
|
|
286
|
-
...,
|
|
287
|
-
ge=0,
|
|
288
|
-
description="Total processing cost"
|
|
289
|
-
)
|
|
290
|
-
|
|
291
|
-
# Performance indicators
|
|
292
|
-
cache_efficiency: float = Field(
|
|
293
|
-
...,
|
|
294
|
-
ge=0,
|
|
295
|
-
le=1,
|
|
296
|
-
description="Cache utilization efficiency"
|
|
297
|
-
)
|
|
298
|
-
token_efficiency: float = Field(
|
|
299
|
-
...,
|
|
300
|
-
ge=0,
|
|
301
|
-
description="Token usage efficiency ratio"
|
|
302
|
-
)
|
|
303
|
-
|
|
304
|
-
# Recommendations
|
|
305
|
-
quality_assessment: str = Field(
|
|
306
|
-
...,
|
|
307
|
-
description="Overall quality assessment"
|
|
308
|
-
)
|
|
309
|
-
production_readiness: bool = Field(
|
|
310
|
-
...,
|
|
311
|
-
description="Whether result is production ready"
|
|
312
|
-
)
|
|
313
|
-
improvement_suggestions: List[str] = Field(
|
|
314
|
-
default_factory=list,
|
|
315
|
-
description="Suggestions for improvement"
|
|
316
|
-
)
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
class PerformanceMetrics(BaseModel):
|
|
320
|
-
"""Performance metrics collection"""
|
|
321
|
-
|
|
322
|
-
model_config = ConfigDict(
|
|
323
|
-
title="Performance Metrics",
|
|
324
|
-
description="Comprehensive performance metrics for LLM operations",
|
|
325
|
-
validate_assignment=True,
|
|
326
|
-
extra="forbid"
|
|
327
|
-
)
|
|
328
|
-
|
|
329
|
-
# Time metrics
|
|
330
|
-
operation_name: str = Field(..., description="Operation being measured")
|
|
331
|
-
start_time: datetime = Field(..., description="Operation start time")
|
|
332
|
-
end_time: datetime = Field(..., description="Operation end time")
|
|
333
|
-
duration_seconds: float = Field(
|
|
334
|
-
...,
|
|
335
|
-
ge=0,
|
|
336
|
-
description="Operation duration"
|
|
337
|
-
)
|
|
338
|
-
|
|
339
|
-
# Resource metrics
|
|
340
|
-
memory_usage_mb: Optional[float] = Field(
|
|
341
|
-
None,
|
|
342
|
-
ge=0,
|
|
343
|
-
description="Memory usage during operation"
|
|
344
|
-
)
|
|
345
|
-
cpu_usage_percent: Optional[float] = Field(
|
|
346
|
-
None,
|
|
347
|
-
ge=0,
|
|
348
|
-
le=100,
|
|
349
|
-
description="CPU usage percentage"
|
|
350
|
-
)
|
|
351
|
-
|
|
352
|
-
# LLM-specific metrics
|
|
353
|
-
tokens_per_second: Optional[float] = Field(
|
|
354
|
-
None,
|
|
355
|
-
ge=0,
|
|
356
|
-
description="Token processing rate"
|
|
357
|
-
)
|
|
358
|
-
api_latency_ms: Optional[float] = Field(
|
|
359
|
-
None,
|
|
360
|
-
ge=0,
|
|
361
|
-
description="API response latency"
|
|
362
|
-
)
|
|
363
|
-
|
|
364
|
-
# Quality metrics
|
|
365
|
-
accuracy_score: Optional[float] = Field(
|
|
366
|
-
None,
|
|
367
|
-
ge=0,
|
|
368
|
-
le=1,
|
|
369
|
-
description="Operation accuracy score"
|
|
370
|
-
)
|
|
371
|
-
confidence_score: Optional[float] = Field(
|
|
372
|
-
None,
|
|
373
|
-
ge=0,
|
|
374
|
-
le=1,
|
|
375
|
-
description="Operation confidence score"
|
|
376
|
-
)
|
|
377
|
-
|
|
378
|
-
# Context information
|
|
379
|
-
model_used: Optional[str] = Field(
|
|
380
|
-
None,
|
|
381
|
-
description="LLM model used"
|
|
382
|
-
)
|
|
383
|
-
input_size_bytes: Optional[int] = Field(
|
|
384
|
-
None,
|
|
385
|
-
ge=0,
|
|
386
|
-
description="Input data size"
|
|
387
|
-
)
|
|
388
|
-
output_size_bytes: Optional[int] = Field(
|
|
389
|
-
None,
|
|
390
|
-
ge=0,
|
|
391
|
-
description="Output data size"
|
|
392
|
-
)
|
|
393
|
-
|
|
394
|
-
# Error information
|
|
395
|
-
errors_encountered: List[str] = Field(
|
|
396
|
-
default_factory=list,
|
|
397
|
-
description="Errors that occurred during operation"
|
|
398
|
-
)
|
|
399
|
-
warnings_generated: List[str] = Field(
|
|
400
|
-
default_factory=list,
|
|
401
|
-
description="Warnings generated during operation"
|
|
402
|
-
)
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
class BenchmarkResult(BaseModel):
|
|
406
|
-
"""Benchmark test result"""
|
|
407
|
-
|
|
408
|
-
model_config = ConfigDict(
|
|
409
|
-
title="Benchmark Result",
|
|
410
|
-
description="Result of performance benchmark test",
|
|
411
|
-
validate_assignment=True,
|
|
412
|
-
extra="forbid"
|
|
413
|
-
)
|
|
414
|
-
|
|
415
|
-
# Test identification
|
|
416
|
-
test_name: str = Field(..., description="Benchmark test name")
|
|
417
|
-
test_category: str = Field(..., description="Test category")
|
|
418
|
-
test_version: str = Field(..., description="Test version")
|
|
419
|
-
|
|
420
|
-
# Performance results
|
|
421
|
-
execution_time_seconds: float = Field(
|
|
422
|
-
...,
|
|
423
|
-
ge=0,
|
|
424
|
-
description="Test execution time"
|
|
425
|
-
)
|
|
426
|
-
throughput_ops_per_second: Optional[float] = Field(
|
|
427
|
-
None,
|
|
428
|
-
ge=0,
|
|
429
|
-
description="Operations per second"
|
|
430
|
-
)
|
|
431
|
-
|
|
432
|
-
# Resource usage
|
|
433
|
-
peak_memory_mb: float = Field(
|
|
434
|
-
...,
|
|
435
|
-
ge=0,
|
|
436
|
-
description="Peak memory usage"
|
|
437
|
-
)
|
|
438
|
-
average_cpu_percent: float = Field(
|
|
439
|
-
...,
|
|
440
|
-
ge=0,
|
|
441
|
-
le=100,
|
|
442
|
-
description="Average CPU usage"
|
|
443
|
-
)
|
|
444
|
-
|
|
445
|
-
# Quality metrics
|
|
446
|
-
accuracy_achieved: Optional[float] = Field(
|
|
447
|
-
None,
|
|
448
|
-
ge=0,
|
|
449
|
-
le=1,
|
|
450
|
-
description="Accuracy achieved in test"
|
|
451
|
-
)
|
|
452
|
-
baseline_comparison: Optional[float] = Field(
|
|
453
|
-
None,
|
|
454
|
-
description="Performance vs baseline (1.0 = same, >1.0 = better)"
|
|
455
|
-
)
|
|
456
|
-
|
|
457
|
-
# Test environment
|
|
458
|
-
test_environment: Dict[str, Any] = Field(
|
|
459
|
-
default_factory=dict,
|
|
460
|
-
description="Test environment details"
|
|
461
|
-
)
|
|
462
|
-
|
|
463
|
-
# Results analysis
|
|
464
|
-
passed: bool = Field(..., description="Whether test passed criteria")
|
|
465
|
-
performance_grade: str = Field(
|
|
466
|
-
...,
|
|
467
|
-
pattern=r"^[A-F]$",
|
|
468
|
-
description="Performance grade A-F"
|
|
469
|
-
)
|
|
470
|
-
recommendations: List[str] = Field(
|
|
471
|
-
default_factory=list,
|
|
472
|
-
description="Performance improvement recommendations"
|
|
473
|
-
)
|