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,328 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
LLM DTOs - Core Models
|
|
3
|
-
Core data models for UnrealOn LLM platform
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
from datetime import datetime
|
|
7
|
-
from typing import Any, Dict, List, Optional
|
|
8
|
-
|
|
9
|
-
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
|
10
|
-
|
|
11
|
-
from .enums import MessageRole
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class TokenUsage(BaseModel):
|
|
15
|
-
"""Token usage statistics"""
|
|
16
|
-
|
|
17
|
-
model_config = ConfigDict(
|
|
18
|
-
title="Token Usage",
|
|
19
|
-
description="Token usage statistics for LLM requests",
|
|
20
|
-
validate_assignment=True,
|
|
21
|
-
extra="forbid"
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
prompt_tokens: int = Field(
|
|
25
|
-
...,
|
|
26
|
-
ge=0,
|
|
27
|
-
description="Tokens used in prompt"
|
|
28
|
-
)
|
|
29
|
-
completion_tokens: int = Field(
|
|
30
|
-
...,
|
|
31
|
-
ge=0,
|
|
32
|
-
description="Tokens used in completion"
|
|
33
|
-
)
|
|
34
|
-
total_tokens: int = Field(
|
|
35
|
-
...,
|
|
36
|
-
ge=0,
|
|
37
|
-
description="Total tokens used"
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
@field_validator('total_tokens')
|
|
41
|
-
@classmethod
|
|
42
|
-
def validate_total_tokens(cls, v, info):
|
|
43
|
-
values = info.data
|
|
44
|
-
if 'prompt_tokens' in values and 'completion_tokens' in values:
|
|
45
|
-
expected_total = values['prompt_tokens'] + values['completion_tokens']
|
|
46
|
-
if v != expected_total:
|
|
47
|
-
raise ValueError(
|
|
48
|
-
f"Total tokens {v} doesn't match sum of prompt and completion tokens"
|
|
49
|
-
)
|
|
50
|
-
return v
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
class ChatMessage(BaseModel):
|
|
54
|
-
"""Chat message with role and content"""
|
|
55
|
-
|
|
56
|
-
model_config = ConfigDict(
|
|
57
|
-
title="Chat Message",
|
|
58
|
-
description="Individual chat message with role and content",
|
|
59
|
-
validate_assignment=True,
|
|
60
|
-
extra="forbid",
|
|
61
|
-
json_schema_extra={
|
|
62
|
-
"example": {
|
|
63
|
-
"role": "user",
|
|
64
|
-
"content": "Analyze this HTML structure",
|
|
65
|
-
"name": "user"
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
)
|
|
69
|
-
|
|
70
|
-
role: MessageRole = Field(..., description="Message role")
|
|
71
|
-
content: str = Field(
|
|
72
|
-
...,
|
|
73
|
-
min_length=1,
|
|
74
|
-
description="Message content"
|
|
75
|
-
)
|
|
76
|
-
name: Optional[str] = Field(None, description="Sender name")
|
|
77
|
-
function_call: Optional[Dict[str, Any]] = Field(
|
|
78
|
-
None,
|
|
79
|
-
description="Function call data"
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
class LLMResponse(BaseModel):
|
|
84
|
-
"""Base LLM response model"""
|
|
85
|
-
|
|
86
|
-
model_config = ConfigDict(
|
|
87
|
-
title="LLM Response",
|
|
88
|
-
description="Complete LLM response with metadata",
|
|
89
|
-
validate_assignment=True,
|
|
90
|
-
extra="forbid"
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
id: str = Field(..., description="Response ID")
|
|
94
|
-
model: str = Field(..., description="Model used")
|
|
95
|
-
content: str = Field(..., description="Response content")
|
|
96
|
-
finish_reason: Optional[str] = Field(
|
|
97
|
-
None,
|
|
98
|
-
description="Completion finish reason"
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
# Metadata
|
|
102
|
-
created_at: datetime = Field(
|
|
103
|
-
default_factory=datetime.now,
|
|
104
|
-
description="Creation timestamp"
|
|
105
|
-
)
|
|
106
|
-
processing_time_seconds: float = Field(
|
|
107
|
-
...,
|
|
108
|
-
ge=0,
|
|
109
|
-
description="Processing time"
|
|
110
|
-
)
|
|
111
|
-
token_usage: Optional[TokenUsage] = Field(
|
|
112
|
-
None,
|
|
113
|
-
description="Token usage details"
|
|
114
|
-
)
|
|
115
|
-
cost_usd: Optional[float] = Field(
|
|
116
|
-
None,
|
|
117
|
-
ge=0,
|
|
118
|
-
description="Cost in USD"
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
# Enhanced data
|
|
122
|
-
extracted_model: Optional[BaseModel] = Field(
|
|
123
|
-
None,
|
|
124
|
-
description="Extracted and validated Pydantic model from response"
|
|
125
|
-
)
|
|
126
|
-
confidence_score: Optional[float] = Field(
|
|
127
|
-
None,
|
|
128
|
-
ge=0,
|
|
129
|
-
le=1,
|
|
130
|
-
description="Response confidence"
|
|
131
|
-
)
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
class LanguageDetection(BaseModel):
|
|
135
|
-
"""Language detection result"""
|
|
136
|
-
|
|
137
|
-
model_config = ConfigDict(
|
|
138
|
-
title="Language Detection",
|
|
139
|
-
description="Language detection result with confidence",
|
|
140
|
-
validate_assignment=True,
|
|
141
|
-
extra="forbid"
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
detected_language: str = Field(
|
|
145
|
-
...,
|
|
146
|
-
description="Detected language code"
|
|
147
|
-
)
|
|
148
|
-
confidence: float = Field(
|
|
149
|
-
...,
|
|
150
|
-
ge=0,
|
|
151
|
-
le=1,
|
|
152
|
-
description="Detection confidence"
|
|
153
|
-
)
|
|
154
|
-
alternative_languages: List[Dict[str, float]] = Field(
|
|
155
|
-
default_factory=list,
|
|
156
|
-
description="Alternative language possibilities"
|
|
157
|
-
)
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
class CostBreakdown(BaseModel):
|
|
161
|
-
"""Cost breakdown by operation and model"""
|
|
162
|
-
|
|
163
|
-
model_config = ConfigDict(
|
|
164
|
-
title="Cost Breakdown",
|
|
165
|
-
description="Detailed cost analysis by module and model",
|
|
166
|
-
validate_assignment=True,
|
|
167
|
-
extra="forbid"
|
|
168
|
-
)
|
|
169
|
-
|
|
170
|
-
total_cost_usd: float = Field(
|
|
171
|
-
...,
|
|
172
|
-
ge=0,
|
|
173
|
-
description="Total cost across all operations"
|
|
174
|
-
)
|
|
175
|
-
by_module: Dict[str, float] = Field(
|
|
176
|
-
default_factory=dict,
|
|
177
|
-
description="Cost breakdown by module"
|
|
178
|
-
)
|
|
179
|
-
by_model: Dict[str, Dict[str, Any]] = Field(
|
|
180
|
-
default_factory=dict,
|
|
181
|
-
description="Cost breakdown by model with usage details"
|
|
182
|
-
)
|
|
183
|
-
by_operation: Dict[str, float] = Field(
|
|
184
|
-
default_factory=dict,
|
|
185
|
-
description="Cost breakdown by operation type"
|
|
186
|
-
)
|
|
187
|
-
|
|
188
|
-
# Time period
|
|
189
|
-
period_start: datetime = Field(
|
|
190
|
-
...,
|
|
191
|
-
description="Cost analysis period start"
|
|
192
|
-
)
|
|
193
|
-
period_end: datetime = Field(
|
|
194
|
-
...,
|
|
195
|
-
description="Cost analysis period end"
|
|
196
|
-
)
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
class HealthStatus(BaseModel):
|
|
200
|
-
"""Health status for system components"""
|
|
201
|
-
|
|
202
|
-
model_config = ConfigDict(
|
|
203
|
-
title="Health Status",
|
|
204
|
-
description="Health status of LLM platform components",
|
|
205
|
-
validate_assignment=True,
|
|
206
|
-
extra="forbid"
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
status: str = Field(
|
|
210
|
-
...,
|
|
211
|
-
pattern=r"^(healthy|degraded|unhealthy)$",
|
|
212
|
-
description="Overall status"
|
|
213
|
-
)
|
|
214
|
-
checked_at: datetime = Field(
|
|
215
|
-
default_factory=datetime.now,
|
|
216
|
-
description="Health check timestamp"
|
|
217
|
-
)
|
|
218
|
-
|
|
219
|
-
# Component statuses
|
|
220
|
-
modules: Dict[str, Dict[str, Any]] = Field(
|
|
221
|
-
default_factory=dict,
|
|
222
|
-
description="Status of individual modules"
|
|
223
|
-
)
|
|
224
|
-
|
|
225
|
-
# Performance metrics
|
|
226
|
-
response_time_ms: Optional[float] = Field(
|
|
227
|
-
None,
|
|
228
|
-
ge=0,
|
|
229
|
-
description="Average response time"
|
|
230
|
-
)
|
|
231
|
-
error_rate: Optional[float] = Field(
|
|
232
|
-
None,
|
|
233
|
-
ge=0,
|
|
234
|
-
le=1,
|
|
235
|
-
description="Error rate (0-1)"
|
|
236
|
-
)
|
|
237
|
-
|
|
238
|
-
# Resource usage
|
|
239
|
-
memory_usage_mb: Optional[float] = Field(
|
|
240
|
-
None,
|
|
241
|
-
ge=0,
|
|
242
|
-
description="Memory usage in MB"
|
|
243
|
-
)
|
|
244
|
-
cache_hit_rate: Optional[float] = Field(
|
|
245
|
-
None,
|
|
246
|
-
ge=0,
|
|
247
|
-
le=1,
|
|
248
|
-
description="Cache hit rate (0-1)"
|
|
249
|
-
)
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
class ProcessingMetrics(BaseModel):
|
|
253
|
-
"""Processing performance metrics"""
|
|
254
|
-
|
|
255
|
-
model_config = ConfigDict(
|
|
256
|
-
title="Processing Metrics",
|
|
257
|
-
description="Performance metrics for LLM operations",
|
|
258
|
-
validate_assignment=True,
|
|
259
|
-
extra="forbid"
|
|
260
|
-
)
|
|
261
|
-
|
|
262
|
-
# Processing statistics
|
|
263
|
-
total_requests: int = Field(
|
|
264
|
-
0,
|
|
265
|
-
ge=0,
|
|
266
|
-
description="Total number of requests processed"
|
|
267
|
-
)
|
|
268
|
-
successful_requests: int = Field(
|
|
269
|
-
0,
|
|
270
|
-
ge=0,
|
|
271
|
-
description="Number of successful requests"
|
|
272
|
-
)
|
|
273
|
-
failed_requests: int = Field(
|
|
274
|
-
0,
|
|
275
|
-
ge=0,
|
|
276
|
-
description="Number of failed requests"
|
|
277
|
-
)
|
|
278
|
-
|
|
279
|
-
# Performance metrics
|
|
280
|
-
average_response_time_seconds: float = Field(
|
|
281
|
-
0.0,
|
|
282
|
-
ge=0,
|
|
283
|
-
description="Average response time"
|
|
284
|
-
)
|
|
285
|
-
total_processing_time_seconds: float = Field(
|
|
286
|
-
0.0,
|
|
287
|
-
ge=0,
|
|
288
|
-
description="Total processing time"
|
|
289
|
-
)
|
|
290
|
-
|
|
291
|
-
# Resource metrics
|
|
292
|
-
total_tokens_used: int = Field(
|
|
293
|
-
0,
|
|
294
|
-
ge=0,
|
|
295
|
-
description="Total tokens consumed"
|
|
296
|
-
)
|
|
297
|
-
total_cost_usd: float = Field(
|
|
298
|
-
0.0,
|
|
299
|
-
ge=0,
|
|
300
|
-
description="Total cost incurred"
|
|
301
|
-
)
|
|
302
|
-
|
|
303
|
-
# Cache performance
|
|
304
|
-
cache_hits: int = Field(
|
|
305
|
-
0,
|
|
306
|
-
ge=0,
|
|
307
|
-
description="Number of cache hits"
|
|
308
|
-
)
|
|
309
|
-
cache_misses: int = Field(
|
|
310
|
-
0,
|
|
311
|
-
ge=0,
|
|
312
|
-
description="Number of cache misses"
|
|
313
|
-
)
|
|
314
|
-
|
|
315
|
-
@property
|
|
316
|
-
def success_rate(self) -> float:
|
|
317
|
-
"""Calculate success rate"""
|
|
318
|
-
if self.total_requests == 0:
|
|
319
|
-
return 0.0
|
|
320
|
-
return self.successful_requests / self.total_requests
|
|
321
|
-
|
|
322
|
-
@property
|
|
323
|
-
def cache_hit_rate(self) -> float:
|
|
324
|
-
"""Calculate cache hit rate"""
|
|
325
|
-
total_cache_operations = self.cache_hits + self.cache_misses
|
|
326
|
-
if total_cache_operations == 0:
|
|
327
|
-
return 0.0
|
|
328
|
-
return self.cache_hits / total_cache_operations
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
LLM DTOs - Enums
|
|
3
|
-
Enumeration types for UnrealOn LLM platform
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
from enum import Enum
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class LLMProvider(str, Enum):
|
|
10
|
-
"""Supported LLM providers"""
|
|
11
|
-
OPENROUTER = "openrouter"
|
|
12
|
-
OPENAI = "openai"
|
|
13
|
-
ANTHROPIC = "anthropic"
|
|
14
|
-
CUSTOM = "custom"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class OptimizationLevel(str, Enum):
|
|
18
|
-
"""Optimization levels for various operations"""
|
|
19
|
-
SPEED = "speed" # Fast but less accurate
|
|
20
|
-
BALANCED = "balanced" # Balance of speed and accuracy
|
|
21
|
-
ROBUST = "robust" # Slow but highly accurate
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class CacheStrategy(str, Enum):
|
|
25
|
-
"""Caching strategies"""
|
|
26
|
-
NONE = "none"
|
|
27
|
-
MEMORY = "memory"
|
|
28
|
-
DISK = "disk"
|
|
29
|
-
DISTRIBUTED = "distributed"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class MessageRole(str, Enum):
|
|
33
|
-
"""Chat message roles"""
|
|
34
|
-
SYSTEM = "system"
|
|
35
|
-
USER = "user"
|
|
36
|
-
ASSISTANT = "assistant"
|
|
37
|
-
FUNCTION = "function"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class PatternType(str, Enum):
|
|
41
|
-
"""Types of HTML patterns"""
|
|
42
|
-
PRODUCT_TITLE = "product_title"
|
|
43
|
-
PRICE = "price"
|
|
44
|
-
DESCRIPTION = "description"
|
|
45
|
-
IMAGE = "image"
|
|
46
|
-
RATING = "rating"
|
|
47
|
-
NAVIGATION = "navigation"
|
|
48
|
-
BREADCRUMB = "breadcrumb"
|
|
49
|
-
FORM = "form"
|
|
50
|
-
BUTTON = "button"
|
|
51
|
-
LINK = "link"
|
|
52
|
-
LIST = "list"
|
|
53
|
-
TABLE = "table"
|
|
54
|
-
CUSTOM = "custom"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
class SelectorType(str, Enum):
|
|
58
|
-
"""Types of CSS selectors"""
|
|
59
|
-
CSS = "css"
|
|
60
|
-
XPATH = "xpath"
|
|
61
|
-
BOTH = "both"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
class LanguageCode(str, Enum):
|
|
65
|
-
"""Supported language codes"""
|
|
66
|
-
EN = "en"
|
|
67
|
-
RU = "ru"
|
|
68
|
-
KO = "ko"
|
|
69
|
-
ZH = "zh"
|
|
70
|
-
JA = "ja"
|
|
71
|
-
ES = "es"
|
|
72
|
-
FR = "fr"
|
|
73
|
-
DE = "de"
|
|
74
|
-
IT = "it"
|
|
75
|
-
PT = "pt"
|
|
76
|
-
AR = "ar"
|
|
77
|
-
HI = "hi"
|
|
78
|
-
TR = "tr"
|
|
79
|
-
PL = "pl"
|
|
80
|
-
UK = "uk"
|
|
81
|
-
AUTO = "auto" # Auto-detect
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
class DataType(str, Enum):
|
|
85
|
-
"""Detected data types"""
|
|
86
|
-
STRING = "string"
|
|
87
|
-
INTEGER = "integer"
|
|
88
|
-
FLOAT = "float"
|
|
89
|
-
BOOLEAN = "boolean"
|
|
90
|
-
ARRAY = "array"
|
|
91
|
-
OBJECT = "object"
|
|
92
|
-
NULL = "null"
|
|
93
|
-
DATETIME = "datetime"
|
|
94
|
-
EMAIL = "email"
|
|
95
|
-
URL = "url"
|
|
96
|
-
PHONE = "phone"
|
|
97
|
-
CURRENCY = "currency"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
class SchemaFormat(str, Enum):
|
|
101
|
-
"""Supported schema formats"""
|
|
102
|
-
PYDANTIC = "pydantic"
|
|
103
|
-
TYPESCRIPT = "typescript"
|
|
104
|
-
JSON_SCHEMA = "json_schema"
|
|
105
|
-
DATACLASS = "dataclass"
|
|
106
|
-
SQLALCHEMY = "sqlalchemy"
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
class ProcessingStage(str, Enum):
|
|
110
|
-
"""Processing pipeline stages"""
|
|
111
|
-
HTML_ANALYSIS = "html_analysis"
|
|
112
|
-
TRANSLATION = "translation"
|
|
113
|
-
TYPE_GENERATION = "type_generation"
|
|
114
|
-
VALIDATION = "validation"
|
|
115
|
-
COMPLETE = "complete"
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
class LLMTestingMode(str, Enum):
|
|
119
|
-
"""LLM testing execution modes"""
|
|
120
|
-
MOCK_ONLY = "mock_only"
|
|
121
|
-
COST_CONTROLLED_REAL = "cost_controlled_real"
|
|
122
|
-
DEVELOPMENT = "development"
|
|
123
|
-
CI_CD = "ci_cd"
|