isa-model 0.4.0__py3-none-any.whl → 0.4.3__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.
Files changed (199) hide show
  1. isa_model/client.py +466 -43
  2. isa_model/core/cache/redis_cache.py +12 -3
  3. isa_model/core/config/config_manager.py +230 -3
  4. isa_model/core/config.py +90 -0
  5. isa_model/core/database/direct_db_client.py +114 -0
  6. isa_model/core/database/migration_manager.py +563 -0
  7. isa_model/core/database/migrations.py +21 -1
  8. isa_model/core/database/supabase_client.py +154 -19
  9. isa_model/core/dependencies.py +316 -0
  10. isa_model/core/discovery/__init__.py +19 -0
  11. isa_model/core/discovery/consul_discovery.py +190 -0
  12. isa_model/core/logging/__init__.py +54 -0
  13. isa_model/core/logging/influx_logger.py +523 -0
  14. isa_model/core/logging/loki_logger.py +160 -0
  15. isa_model/core/models/__init__.py +27 -18
  16. isa_model/core/models/config_models.py +625 -0
  17. isa_model/core/models/deployment_billing_tracker.py +430 -0
  18. isa_model/core/models/model_manager.py +40 -17
  19. isa_model/core/models/model_metadata.py +690 -0
  20. isa_model/core/models/model_repo.py +174 -18
  21. isa_model/core/models/system_models.py +857 -0
  22. isa_model/core/repositories/__init__.py +9 -0
  23. isa_model/core/repositories/config_repository.py +912 -0
  24. isa_model/core/services/intelligent_model_selector.py +399 -21
  25. isa_model/core/storage/hf_storage.py +1 -1
  26. isa_model/core/types.py +1 -0
  27. isa_model/deployment/__init__.py +5 -48
  28. isa_model/deployment/core/__init__.py +2 -31
  29. isa_model/deployment/core/deployment_manager.py +1278 -370
  30. isa_model/deployment/local/__init__.py +31 -0
  31. isa_model/deployment/local/config.py +248 -0
  32. isa_model/deployment/local/gpu_gateway.py +607 -0
  33. isa_model/deployment/local/health_checker.py +428 -0
  34. isa_model/deployment/local/provider.py +586 -0
  35. isa_model/deployment/local/tensorrt_service.py +621 -0
  36. isa_model/deployment/local/transformers_service.py +644 -0
  37. isa_model/deployment/local/vllm_service.py +527 -0
  38. isa_model/deployment/modal/__init__.py +8 -0
  39. isa_model/deployment/modal/config.py +136 -0
  40. isa_model/deployment/{services/auto_hf_modal_deployer.py → modal/deployer.py} +1 -1
  41. isa_model/deployment/modal/services/__init__.py +3 -0
  42. isa_model/deployment/modal/services/audio/__init__.py +1 -0
  43. isa_model/deployment/modal/services/embedding/__init__.py +1 -0
  44. isa_model/deployment/modal/services/llm/__init__.py +1 -0
  45. isa_model/deployment/modal/services/llm/isa_llm_service.py +424 -0
  46. isa_model/deployment/modal/services/video/__init__.py +1 -0
  47. isa_model/deployment/modal/services/vision/__init__.py +1 -0
  48. isa_model/deployment/models/org-org-acme-corp-tenant-a-service-llm-20250825-225822/tenant-a-service_modal_service.py +48 -0
  49. isa_model/deployment/models/org-test-org-123-prefix-test-service-llm-20250825-225822/prefix-test-service_modal_service.py +48 -0
  50. isa_model/deployment/models/test-llm-service-llm-20250825-204442/test-llm-service_modal_service.py +48 -0
  51. isa_model/deployment/models/test-monitoring-gpt2-llm-20250825-212906/test-monitoring-gpt2_modal_service.py +48 -0
  52. isa_model/deployment/models/test-monitoring-gpt2-llm-20250825-213009/test-monitoring-gpt2_modal_service.py +48 -0
  53. isa_model/deployment/storage/__init__.py +5 -0
  54. isa_model/deployment/storage/deployment_repository.py +824 -0
  55. isa_model/deployment/triton/__init__.py +10 -0
  56. isa_model/deployment/triton/config.py +196 -0
  57. isa_model/deployment/triton/configs/__init__.py +1 -0
  58. isa_model/deployment/triton/provider.py +512 -0
  59. isa_model/deployment/triton/scripts/__init__.py +1 -0
  60. isa_model/deployment/triton/templates/__init__.py +1 -0
  61. isa_model/inference/__init__.py +47 -1
  62. isa_model/inference/ai_factory.py +137 -10
  63. isa_model/inference/legacy_services/__init__.py +21 -0
  64. isa_model/inference/legacy_services/model_evaluation.py +637 -0
  65. isa_model/inference/legacy_services/model_service.py +573 -0
  66. isa_model/inference/legacy_services/model_serving.py +717 -0
  67. isa_model/inference/legacy_services/model_training.py +561 -0
  68. isa_model/inference/models/__init__.py +21 -0
  69. isa_model/inference/models/inference_config.py +551 -0
  70. isa_model/inference/models/inference_record.py +675 -0
  71. isa_model/inference/models/performance_models.py +714 -0
  72. isa_model/inference/repositories/__init__.py +9 -0
  73. isa_model/inference/repositories/inference_repository.py +828 -0
  74. isa_model/inference/services/audio/base_stt_service.py +184 -11
  75. isa_model/inference/services/audio/openai_stt_service.py +22 -6
  76. isa_model/inference/services/custom_model_manager.py +277 -0
  77. isa_model/inference/services/embedding/ollama_embed_service.py +15 -3
  78. isa_model/inference/services/embedding/resilient_embed_service.py +285 -0
  79. isa_model/inference/services/llm/__init__.py +10 -2
  80. isa_model/inference/services/llm/base_llm_service.py +335 -24
  81. isa_model/inference/services/llm/cerebras_llm_service.py +628 -0
  82. isa_model/inference/services/llm/helpers/llm_adapter.py +9 -4
  83. isa_model/inference/services/llm/helpers/llm_prompts.py +342 -0
  84. isa_model/inference/services/llm/helpers/llm_utils.py +321 -23
  85. isa_model/inference/services/llm/huggingface_llm_service.py +581 -0
  86. isa_model/inference/services/llm/local_llm_service.py +747 -0
  87. isa_model/inference/services/llm/ollama_llm_service.py +9 -2
  88. isa_model/inference/services/llm/openai_llm_service.py +33 -16
  89. isa_model/inference/services/llm/yyds_llm_service.py +8 -2
  90. isa_model/inference/services/vision/__init__.py +22 -1
  91. isa_model/inference/services/vision/blip_vision_service.py +359 -0
  92. isa_model/inference/services/vision/helpers/image_utils.py +8 -5
  93. isa_model/inference/services/vision/isa_vision_service.py +65 -4
  94. isa_model/inference/services/vision/openai_vision_service.py +19 -10
  95. isa_model/inference/services/vision/vgg16_vision_service.py +257 -0
  96. isa_model/serving/api/cache_manager.py +245 -0
  97. isa_model/serving/api/dependencies/__init__.py +1 -0
  98. isa_model/serving/api/dependencies/auth.py +194 -0
  99. isa_model/serving/api/dependencies/database.py +139 -0
  100. isa_model/serving/api/error_handlers.py +284 -0
  101. isa_model/serving/api/fastapi_server.py +172 -22
  102. isa_model/serving/api/middleware/auth.py +8 -2
  103. isa_model/serving/api/middleware/security.py +23 -33
  104. isa_model/serving/api/middleware/tenant_context.py +414 -0
  105. isa_model/serving/api/routes/analytics.py +4 -1
  106. isa_model/serving/api/routes/config.py +645 -0
  107. isa_model/serving/api/routes/deployment_billing.py +315 -0
  108. isa_model/serving/api/routes/deployments.py +138 -2
  109. isa_model/serving/api/routes/gpu_gateway.py +440 -0
  110. isa_model/serving/api/routes/health.py +32 -12
  111. isa_model/serving/api/routes/inference_monitoring.py +486 -0
  112. isa_model/serving/api/routes/local_deployments.py +448 -0
  113. isa_model/serving/api/routes/tenants.py +575 -0
  114. isa_model/serving/api/routes/unified.py +680 -18
  115. isa_model/serving/api/routes/webhooks.py +479 -0
  116. isa_model/serving/api/startup.py +68 -54
  117. isa_model/utils/gpu_utils.py +311 -0
  118. {isa_model-0.4.0.dist-info → isa_model-0.4.3.dist-info}/METADATA +66 -24
  119. isa_model-0.4.3.dist-info/RECORD +193 -0
  120. isa_model/core/storage/minio_storage.py +0 -0
  121. isa_model/deployment/cloud/__init__.py +0 -9
  122. isa_model/deployment/cloud/modal/__init__.py +0 -10
  123. isa_model/deployment/core/deployment_config.py +0 -356
  124. isa_model/deployment/core/isa_deployment_service.py +0 -401
  125. isa_model/deployment/gpu_int8_ds8/app/server.py +0 -66
  126. isa_model/deployment/gpu_int8_ds8/scripts/test_client.py +0 -43
  127. isa_model/deployment/gpu_int8_ds8/scripts/test_client_os.py +0 -35
  128. isa_model/deployment/runtime/deployed_service.py +0 -338
  129. isa_model/deployment/services/__init__.py +0 -9
  130. isa_model/deployment/services/auto_deploy_vision_service.py +0 -538
  131. isa_model/deployment/services/model_service.py +0 -332
  132. isa_model/deployment/services/service_monitor.py +0 -356
  133. isa_model/deployment/services/service_registry.py +0 -527
  134. isa_model/eval/__init__.py +0 -92
  135. isa_model/eval/benchmarks/__init__.py +0 -27
  136. isa_model/eval/benchmarks/multimodal_datasets.py +0 -460
  137. isa_model/eval/benchmarks.py +0 -701
  138. isa_model/eval/config/__init__.py +0 -10
  139. isa_model/eval/config/evaluation_config.py +0 -108
  140. isa_model/eval/evaluators/__init__.py +0 -24
  141. isa_model/eval/evaluators/audio_evaluator.py +0 -727
  142. isa_model/eval/evaluators/base_evaluator.py +0 -503
  143. isa_model/eval/evaluators/embedding_evaluator.py +0 -742
  144. isa_model/eval/evaluators/llm_evaluator.py +0 -472
  145. isa_model/eval/evaluators/vision_evaluator.py +0 -564
  146. isa_model/eval/example_evaluation.py +0 -395
  147. isa_model/eval/factory.py +0 -798
  148. isa_model/eval/infrastructure/__init__.py +0 -24
  149. isa_model/eval/infrastructure/experiment_tracker.py +0 -466
  150. isa_model/eval/isa_benchmarks.py +0 -700
  151. isa_model/eval/isa_integration.py +0 -582
  152. isa_model/eval/metrics.py +0 -951
  153. isa_model/eval/tests/unit/test_basic.py +0 -396
  154. isa_model/serving/api/routes/evaluations.py +0 -579
  155. isa_model/training/__init__.py +0 -168
  156. isa_model/training/annotation/annotation_schema.py +0 -47
  157. isa_model/training/annotation/processors/annotation_processor.py +0 -126
  158. isa_model/training/annotation/storage/dataset_manager.py +0 -131
  159. isa_model/training/annotation/storage/dataset_schema.py +0 -44
  160. isa_model/training/annotation/tests/test_annotation_flow.py +0 -109
  161. isa_model/training/annotation/tests/test_minio copy.py +0 -113
  162. isa_model/training/annotation/tests/test_minio_upload.py +0 -43
  163. isa_model/training/annotation/views/annotation_controller.py +0 -158
  164. isa_model/training/cloud/__init__.py +0 -22
  165. isa_model/training/cloud/job_orchestrator.py +0 -402
  166. isa_model/training/cloud/runpod_trainer.py +0 -454
  167. isa_model/training/cloud/storage_manager.py +0 -482
  168. isa_model/training/core/__init__.py +0 -26
  169. isa_model/training/core/config.py +0 -181
  170. isa_model/training/core/dataset.py +0 -222
  171. isa_model/training/core/trainer.py +0 -720
  172. isa_model/training/core/utils.py +0 -213
  173. isa_model/training/examples/intelligent_training_example.py +0 -281
  174. isa_model/training/factory.py +0 -424
  175. isa_model/training/intelligent/__init__.py +0 -25
  176. isa_model/training/intelligent/decision_engine.py +0 -643
  177. isa_model/training/intelligent/intelligent_factory.py +0 -888
  178. isa_model/training/intelligent/knowledge_base.py +0 -751
  179. isa_model/training/intelligent/resource_optimizer.py +0 -839
  180. isa_model/training/intelligent/task_classifier.py +0 -576
  181. isa_model/training/storage/__init__.py +0 -24
  182. isa_model/training/storage/core_integration.py +0 -439
  183. isa_model/training/storage/training_repository.py +0 -552
  184. isa_model/training/storage/training_storage.py +0 -628
  185. isa_model-0.4.0.dist-info/RECORD +0 -182
  186. /isa_model/deployment/{cloud/modal → modal/services/audio}/isa_audio_chatTTS_service.py +0 -0
  187. /isa_model/deployment/{cloud/modal → modal/services/audio}/isa_audio_fish_service.py +0 -0
  188. /isa_model/deployment/{cloud/modal → modal/services/audio}/isa_audio_openvoice_service.py +0 -0
  189. /isa_model/deployment/{cloud/modal → modal/services/audio}/isa_audio_service_v2.py +0 -0
  190. /isa_model/deployment/{cloud/modal → modal/services/embedding}/isa_embed_rerank_service.py +0 -0
  191. /isa_model/deployment/{cloud/modal → modal/services/video}/isa_video_hunyuan_service.py +0 -0
  192. /isa_model/deployment/{cloud/modal → modal/services/vision}/isa_vision_ocr_service.py +0 -0
  193. /isa_model/deployment/{cloud/modal → modal/services/vision}/isa_vision_qwen25_service.py +0 -0
  194. /isa_model/deployment/{cloud/modal → modal/services/vision}/isa_vision_table_service.py +0 -0
  195. /isa_model/deployment/{cloud/modal → modal/services/vision}/isa_vision_ui_service.py +0 -0
  196. /isa_model/deployment/{cloud/modal → modal/services/vision}/isa_vision_ui_service_optimized.py +0 -0
  197. /isa_model/deployment/{services → modal/services/vision}/simple_auto_deploy_vision_service.py +0 -0
  198. {isa_model-0.4.0.dist-info → isa_model-0.4.3.dist-info}/WHEEL +0 -0
  199. {isa_model-0.4.0.dist-info → isa_model-0.4.3.dist-info}/top_level.txt +0 -0
@@ -1,113 +0,0 @@
1
- #!/usr/bin/env python3
2
-
3
- import os
4
- from minio import Minio
5
- import json
6
- import logging
7
- from io import BytesIO
8
-
9
- # Configure logging
10
- logging.basicConfig(level=logging.INFO)
11
- logger = logging.getLogger(__name__)
12
-
13
- def test_minio():
14
- try:
15
- # Get MinIO host from environment variable or use default
16
- minio_host = os.getenv("MINIO_HOST", "localhost:9000")
17
- logger.info(f"Using MinIO host: {minio_host}")
18
-
19
- # 1. Create MinIO client
20
- logger.info("Creating MinIO client...")
21
- client = Minio(
22
- minio_host,
23
- access_key="minioadmin",
24
- secret_key="minioadmin",
25
- secure=False
26
- )
27
-
28
- # 2. Test bucket operations
29
- bucket_name = "knowledge-files" # Changed to match the actual bucket name
30
- logger.info(f"Testing bucket operations with {bucket_name}...")
31
-
32
- # Create bucket if it doesn't exist
33
- if not client.bucket_exists(bucket_name):
34
- client.make_bucket(bucket_name)
35
- logger.info(f"Created new bucket: {bucket_name}")
36
- else:
37
- logger.info(f"Using existing bucket: {bucket_name}")
38
-
39
- # Set bucket policy - allow all operations
40
- policy = {
41
- "Version": "2012-10-17",
42
- "Statement": [
43
- {
44
- "Effect": "Allow",
45
- "Principal": {"AWS": ["*"]},
46
- "Action": [
47
- "s3:GetBucketLocation",
48
- "s3:ListBucket",
49
- "s3:ListBucketMultipartUploads"
50
- ],
51
- "Resource": [f"arn:aws:s3:::{bucket_name}"]
52
- },
53
- {
54
- "Effect": "Allow",
55
- "Principal": {"AWS": ["*"]},
56
- "Action": [
57
- "s3:AbortMultipartUpload",
58
- "s3:DeleteObject",
59
- "s3:GetObject",
60
- "s3:ListMultipartUploadParts",
61
- "s3:PutObject"
62
- ],
63
- "Resource": [f"arn:aws:s3:::{bucket_name}/*"]
64
- }
65
- ]
66
- }
67
-
68
- try:
69
- client.set_bucket_policy(bucket_name, json.dumps(policy))
70
- logger.info("Set bucket policy successfully")
71
- except Exception as e:
72
- logger.warning(f"Failed to set bucket policy: {e}")
73
-
74
- # 3. Test file upload
75
- source_file = "init-scripts/files/haley_system.txt"
76
- object_name = "haley_system.txt"
77
-
78
- if os.path.exists(source_file):
79
- # Get file size
80
- file_size = os.path.getsize(source_file)
81
- logger.info(f"Found source file: {source_file} (size: {file_size} bytes)")
82
-
83
- # Upload file
84
- with open(source_file, 'rb') as file_data:
85
- client.put_object(
86
- bucket_name,
87
- object_name,
88
- file_data,
89
- file_size,
90
- content_type="text/plain"
91
- )
92
- logger.info(f"Uploaded file: {object_name}")
93
-
94
- # 4. Test file download
95
- data = client.get_object(bucket_name, object_name)
96
- content = data.read().decode('utf-8')
97
- logger.info(f"Successfully downloaded file. First 100 chars: {content[:100]}...")
98
-
99
- # 5. Verify file exists
100
- stat = client.stat_object(bucket_name, object_name)
101
- logger.info(f"File stats: {stat}")
102
-
103
- logger.info("Test completed successfully!")
104
- else:
105
- logger.error(f"Source file not found: {source_file}")
106
- raise FileNotFoundError(f"Source file not found: {source_file}")
107
-
108
- except Exception as e:
109
- logger.error(f"Test failed: {str(e)}")
110
- raise
111
-
112
- if __name__ == "__main__":
113
- test_minio()
@@ -1,43 +0,0 @@
1
- #!/usr/bin/env python3
2
- import os
3
- from minio import Minio
4
- import io
5
-
6
- # MinIO client setup
7
- client = Minio(
8
- "localhost:9000",
9
- access_key="minioadmin",
10
- secret_key="minioadmin",
11
- secure=False
12
- )
13
-
14
- # Test bucket name
15
- bucket_name = "test-bucket"
16
-
17
- # Create bucket if not exists
18
- if not client.bucket_exists(bucket_name):
19
- client.make_bucket(bucket_name)
20
- print(f"Created bucket: {bucket_name}")
21
- else:
22
- print(f"Bucket already exists: {bucket_name}")
23
-
24
- # Upload test file
25
- source_file = "init-scripts/files/haley_system.txt"
26
- if os.path.exists(source_file):
27
- with open(source_file, 'rb') as file_data:
28
- content = file_data.read()
29
- # Upload file
30
- client.put_object(
31
- bucket_name,
32
- "haley_system.txt",
33
- io.BytesIO(content),
34
- len(content),
35
- content_type="text/plain"
36
- )
37
- print(f"Successfully uploaded {source_file}")
38
-
39
- # Verify upload
40
- stat = client.stat_object(bucket_name, "haley_system.txt")
41
- print(f"File stats: {stat}")
42
- else:
43
- print(f"Source file not found: {source_file}")
@@ -1,158 +0,0 @@
1
- # app/services/llm_model/tracing/annotation/annotation_controller.py
2
- from typing import Dict, Any, List, Optional
3
- from datetime import datetime
4
- from bson import ObjectId
5
- from app.config.config_manager import config_manager
6
- from app.services.training.llm_model.annotation.annotation_schema import AnnotationFeedback, RatingScale
7
- from app.services.training.llm_model.annotation.storage.dataset_manager import DatasetManager
8
-
9
-
10
- class AnnotationController:
11
- def __init__(self):
12
- self.logger = config_manager.get_logger(__name__)
13
-
14
- async def get_pending_annotations(
15
- self,
16
- project_name: str,
17
- category: Optional[str] = None,
18
- min_rating: Optional[int] = None,
19
- page: int = 1,
20
- limit: int = 10
21
- ) -> Dict[str, Any]:
22
- """Get filtered list of pending annotations"""
23
- db = await config_manager.get_db('mongodb')
24
- collection = db['annotations']
25
-
26
- # Build query with filters
27
- query = {"status": "pending", "project_name": project_name}
28
- if category:
29
- query["annotation_type"] = category
30
- if min_rating:
31
- query["items.feedback.rating"] = {"$gte": min_rating}
32
-
33
- annotations = await collection.find(query)\
34
- .sort("created_at", -1)\
35
- .skip((page - 1) * limit)\
36
- .limit(limit)\
37
- .to_list(length=limit)
38
-
39
- return {
40
- "annotations": annotations,
41
- "pagination": {
42
- "page": page,
43
- "limit": limit,
44
- "total": await collection.count_documents(query)
45
- }
46
- }
47
-
48
- async def submit_annotation(
49
- self,
50
- annotation_id: str,
51
- item_id: str,
52
- feedback: AnnotationFeedback,
53
- annotator_id: str
54
- ) -> Dict[str, Any]:
55
- """Submit and process annotation feedback"""
56
- db = await config_manager.get_db('mongodb')
57
- collection = db['annotations']
58
-
59
- # Determine if annotation should be selected for training
60
- is_selected = self._evaluate_for_training(feedback)
61
- feedback_dict = feedback.dict()
62
- feedback_dict["is_selected_for_training"] = is_selected
63
-
64
- # Update annotation
65
- result = await collection.update_one(
66
- {
67
- "_id": ObjectId(annotation_id),
68
- "items.item_id": item_id
69
- },
70
- {
71
- "$set": {
72
- "items.$.feedback": feedback_dict,
73
- "items.$.status": "completed",
74
- "items.$.annotated_at": datetime.utcnow().isoformat(),
75
- "items.$.annotator_id": annotator_id,
76
- "items.$.training_status": "pending" if is_selected else "none"
77
- }
78
- }
79
- )
80
-
81
- # Process for training if selected
82
- if is_selected:
83
- await self._queue_for_training(annotation_id, item_id, feedback)
84
-
85
- return {
86
- "status": "success",
87
- "selected_for_training": is_selected,
88
- "message": "Annotation submitted successfully"
89
- }
90
-
91
- def _evaluate_for_training(self, feedback: AnnotationFeedback) -> bool:
92
- """Evaluate if annotation should be used for training"""
93
- # Select for SFT if rating is excellent and aspects are positive
94
- if feedback.rating == RatingScale.EXCELLENT:
95
- aspects = feedback.aspects
96
- if all([
97
- aspects.factually_correct,
98
- aspects.relevant,
99
- not aspects.harmful,
100
- not aspects.biased
101
- ]):
102
- return True
103
-
104
- # Select for RLHF if better response is provided
105
- if feedback.better_response:
106
- return True
107
-
108
- return False
109
-
110
- async def _queue_for_training(
111
- self,
112
- annotation_id: str,
113
- item_id: str,
114
- feedback: AnnotationFeedback
115
- ):
116
- """Queue selected annotations for training data generation"""
117
- db = await config_manager.get_db('mongodb')
118
- training_queue = db['training_queue']
119
-
120
- await training_queue.insert_one({
121
- "annotation_id": annotation_id,
122
- "item_id": item_id,
123
- "type": "sft" if feedback.rating == RatingScale.EXCELLENT else "rlhf",
124
- "feedback": feedback.dict(),
125
- "status": "pending",
126
- "created_at": datetime.utcnow().isoformat()
127
- })
128
-
129
- class DatasetPreparationProcessor:
130
- def __init__(self):
131
- self.logger = config_manager.get_logger(__name__)
132
- self.dataset_manager = DatasetManager()
133
- self.batch_size = 1000 # Configure as needed
134
-
135
- async def process_annotation_queue(self) -> None:
136
- """Process pending annotations and prepare datasets"""
137
- db = await config_manager.get_db('mongodb')
138
- annotation_queue = db['dataset_preparation_queue']
139
-
140
- # Process items for SFT dataset
141
- sft_items = await self._get_pending_annotations("sft")
142
- if len(sft_items) >= self.batch_size:
143
- await self._create_sft_dataset(sft_items)
144
-
145
- # Process items for RLHF dataset
146
- rlhf_items = await self._get_pending_annotations("rlhf")
147
- if len(rlhf_items) >= self.batch_size:
148
- await self._create_rlhf_dataset(rlhf_items)
149
-
150
- async def _get_pending_annotations(self, dataset_type: str) -> List[Dict[str, Any]]:
151
- """Get pending annotations for dataset preparation"""
152
- db = await config_manager.get_db('mongodb')
153
- queue = db['dataset_preparation_queue']
154
-
155
- return await queue.find({
156
- "status": "pending",
157
- "dataset_type": dataset_type
158
- }).to_list(length=self.batch_size)
@@ -1,22 +0,0 @@
1
- """
2
- Cloud Training Module for ISA Model Framework
3
-
4
- This module provides cloud training capabilities including:
5
- - RunPod integration for on-demand GPU training
6
- - Remote storage management (S3, GCS, etc.)
7
- - Training job orchestration and monitoring
8
- - Automatic resource scaling and management
9
- """
10
-
11
- from .runpod_trainer import RunPodTrainer
12
- from .storage_manager import CloudStorageManager
13
- from .job_orchestrator import TrainingJobOrchestrator
14
-
15
- # Import config classes - these are defined in each module that needs them
16
- # from ..core.config import RunPodConfig, StorageConfig, JobConfig
17
-
18
- __all__ = [
19
- "RunPodTrainer",
20
- "CloudStorageManager",
21
- "TrainingJobOrchestrator"
22
- ]