isa-model 0.3.91__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 (228) hide show
  1. isa_model/client.py +1166 -584
  2. isa_model/core/cache/redis_cache.py +410 -0
  3. isa_model/core/config/config_manager.py +282 -12
  4. isa_model/core/config.py +91 -1
  5. isa_model/core/database/__init__.py +1 -0
  6. isa_model/core/database/direct_db_client.py +114 -0
  7. isa_model/core/database/migration_manager.py +563 -0
  8. isa_model/core/database/migrations.py +297 -0
  9. isa_model/core/database/supabase_client.py +258 -0
  10. isa_model/core/dependencies.py +316 -0
  11. isa_model/core/discovery/__init__.py +19 -0
  12. isa_model/core/discovery/consul_discovery.py +190 -0
  13. isa_model/core/logging/__init__.py +54 -0
  14. isa_model/core/logging/influx_logger.py +523 -0
  15. isa_model/core/logging/loki_logger.py +160 -0
  16. isa_model/core/models/__init__.py +46 -0
  17. isa_model/core/models/config_models.py +625 -0
  18. isa_model/core/models/deployment_billing_tracker.py +430 -0
  19. isa_model/core/models/model_billing_tracker.py +60 -88
  20. isa_model/core/models/model_manager.py +66 -25
  21. isa_model/core/models/model_metadata.py +690 -0
  22. isa_model/core/models/model_repo.py +217 -55
  23. isa_model/core/models/model_statistics_tracker.py +234 -0
  24. isa_model/core/models/model_storage.py +0 -1
  25. isa_model/core/models/model_version_manager.py +959 -0
  26. isa_model/core/models/system_models.py +857 -0
  27. isa_model/core/pricing_manager.py +2 -249
  28. isa_model/core/repositories/__init__.py +9 -0
  29. isa_model/core/repositories/config_repository.py +912 -0
  30. isa_model/core/resilience/circuit_breaker.py +366 -0
  31. isa_model/core/security/secrets.py +358 -0
  32. isa_model/core/services/__init__.py +2 -4
  33. isa_model/core/services/intelligent_model_selector.py +479 -370
  34. isa_model/core/storage/hf_storage.py +2 -2
  35. isa_model/core/types.py +8 -0
  36. isa_model/deployment/__init__.py +5 -48
  37. isa_model/deployment/core/__init__.py +2 -31
  38. isa_model/deployment/core/deployment_manager.py +1278 -368
  39. isa_model/deployment/local/__init__.py +31 -0
  40. isa_model/deployment/local/config.py +248 -0
  41. isa_model/deployment/local/gpu_gateway.py +607 -0
  42. isa_model/deployment/local/health_checker.py +428 -0
  43. isa_model/deployment/local/provider.py +586 -0
  44. isa_model/deployment/local/tensorrt_service.py +621 -0
  45. isa_model/deployment/local/transformers_service.py +644 -0
  46. isa_model/deployment/local/vllm_service.py +527 -0
  47. isa_model/deployment/modal/__init__.py +8 -0
  48. isa_model/deployment/modal/config.py +136 -0
  49. isa_model/deployment/modal/deployer.py +894 -0
  50. isa_model/deployment/modal/services/__init__.py +3 -0
  51. isa_model/deployment/modal/services/audio/__init__.py +1 -0
  52. isa_model/deployment/modal/services/audio/isa_audio_chatTTS_service.py +520 -0
  53. isa_model/deployment/modal/services/audio/isa_audio_openvoice_service.py +758 -0
  54. isa_model/deployment/modal/services/audio/isa_audio_service_v2.py +1044 -0
  55. isa_model/deployment/modal/services/embedding/__init__.py +1 -0
  56. isa_model/deployment/modal/services/embedding/isa_embed_rerank_service.py +296 -0
  57. isa_model/deployment/modal/services/llm/__init__.py +1 -0
  58. isa_model/deployment/modal/services/llm/isa_llm_service.py +424 -0
  59. isa_model/deployment/modal/services/video/__init__.py +1 -0
  60. isa_model/deployment/modal/services/video/isa_video_hunyuan_service.py +423 -0
  61. isa_model/deployment/modal/services/vision/__init__.py +1 -0
  62. isa_model/deployment/modal/services/vision/isa_vision_ocr_service.py +519 -0
  63. isa_model/deployment/modal/services/vision/isa_vision_qwen25_service.py +709 -0
  64. isa_model/deployment/modal/services/vision/isa_vision_table_service.py +676 -0
  65. isa_model/deployment/modal/services/vision/isa_vision_ui_service.py +833 -0
  66. isa_model/deployment/modal/services/vision/isa_vision_ui_service_optimized.py +660 -0
  67. isa_model/deployment/models/org-org-acme-corp-tenant-a-service-llm-20250825-225822/tenant-a-service_modal_service.py +48 -0
  68. isa_model/deployment/models/org-test-org-123-prefix-test-service-llm-20250825-225822/prefix-test-service_modal_service.py +48 -0
  69. isa_model/deployment/models/test-llm-service-llm-20250825-204442/test-llm-service_modal_service.py +48 -0
  70. isa_model/deployment/models/test-monitoring-gpt2-llm-20250825-212906/test-monitoring-gpt2_modal_service.py +48 -0
  71. isa_model/deployment/models/test-monitoring-gpt2-llm-20250825-213009/test-monitoring-gpt2_modal_service.py +48 -0
  72. isa_model/deployment/storage/__init__.py +5 -0
  73. isa_model/deployment/storage/deployment_repository.py +824 -0
  74. isa_model/deployment/triton/__init__.py +10 -0
  75. isa_model/deployment/triton/config.py +196 -0
  76. isa_model/deployment/triton/configs/__init__.py +1 -0
  77. isa_model/deployment/triton/provider.py +512 -0
  78. isa_model/deployment/triton/scripts/__init__.py +1 -0
  79. isa_model/deployment/triton/templates/__init__.py +1 -0
  80. isa_model/inference/__init__.py +47 -1
  81. isa_model/inference/ai_factory.py +179 -16
  82. isa_model/inference/legacy_services/__init__.py +21 -0
  83. isa_model/inference/legacy_services/model_evaluation.py +637 -0
  84. isa_model/inference/legacy_services/model_service.py +573 -0
  85. isa_model/inference/legacy_services/model_serving.py +717 -0
  86. isa_model/inference/legacy_services/model_training.py +561 -0
  87. isa_model/inference/models/__init__.py +21 -0
  88. isa_model/inference/models/inference_config.py +551 -0
  89. isa_model/inference/models/inference_record.py +675 -0
  90. isa_model/inference/models/performance_models.py +714 -0
  91. isa_model/inference/repositories/__init__.py +9 -0
  92. isa_model/inference/repositories/inference_repository.py +828 -0
  93. isa_model/inference/services/audio/__init__.py +21 -0
  94. isa_model/inference/services/audio/base_realtime_service.py +225 -0
  95. isa_model/inference/services/audio/base_stt_service.py +184 -11
  96. isa_model/inference/services/audio/isa_tts_service.py +0 -0
  97. isa_model/inference/services/audio/openai_realtime_service.py +320 -124
  98. isa_model/inference/services/audio/openai_stt_service.py +53 -11
  99. isa_model/inference/services/base_service.py +17 -1
  100. isa_model/inference/services/custom_model_manager.py +277 -0
  101. isa_model/inference/services/embedding/__init__.py +13 -0
  102. isa_model/inference/services/embedding/base_embed_service.py +111 -8
  103. isa_model/inference/services/embedding/isa_embed_service.py +305 -0
  104. isa_model/inference/services/embedding/ollama_embed_service.py +15 -3
  105. isa_model/inference/services/embedding/openai_embed_service.py +2 -4
  106. isa_model/inference/services/embedding/resilient_embed_service.py +285 -0
  107. isa_model/inference/services/embedding/tests/test_embedding.py +222 -0
  108. isa_model/inference/services/img/__init__.py +2 -2
  109. isa_model/inference/services/img/base_image_gen_service.py +24 -7
  110. isa_model/inference/services/img/replicate_image_gen_service.py +84 -422
  111. isa_model/inference/services/img/services/replicate_face_swap.py +193 -0
  112. isa_model/inference/services/img/services/replicate_flux.py +226 -0
  113. isa_model/inference/services/img/services/replicate_flux_kontext.py +219 -0
  114. isa_model/inference/services/img/services/replicate_sticker_maker.py +249 -0
  115. isa_model/inference/services/img/tests/test_img_client.py +297 -0
  116. isa_model/inference/services/llm/__init__.py +10 -2
  117. isa_model/inference/services/llm/base_llm_service.py +361 -26
  118. isa_model/inference/services/llm/cerebras_llm_service.py +628 -0
  119. isa_model/inference/services/llm/helpers/llm_adapter.py +71 -12
  120. isa_model/inference/services/llm/helpers/llm_prompts.py +342 -0
  121. isa_model/inference/services/llm/helpers/llm_utils.py +321 -23
  122. isa_model/inference/services/llm/huggingface_llm_service.py +581 -0
  123. isa_model/inference/services/llm/local_llm_service.py +747 -0
  124. isa_model/inference/services/llm/ollama_llm_service.py +11 -3
  125. isa_model/inference/services/llm/openai_llm_service.py +670 -56
  126. isa_model/inference/services/llm/yyds_llm_service.py +10 -3
  127. isa_model/inference/services/vision/__init__.py +27 -6
  128. isa_model/inference/services/vision/base_vision_service.py +118 -185
  129. isa_model/inference/services/vision/blip_vision_service.py +359 -0
  130. isa_model/inference/services/vision/helpers/image_utils.py +19 -10
  131. isa_model/inference/services/vision/isa_vision_service.py +634 -0
  132. isa_model/inference/services/vision/openai_vision_service.py +19 -10
  133. isa_model/inference/services/vision/tests/test_ocr_client.py +284 -0
  134. isa_model/inference/services/vision/vgg16_vision_service.py +257 -0
  135. isa_model/serving/api/cache_manager.py +245 -0
  136. isa_model/serving/api/dependencies/__init__.py +1 -0
  137. isa_model/serving/api/dependencies/auth.py +194 -0
  138. isa_model/serving/api/dependencies/database.py +139 -0
  139. isa_model/serving/api/error_handlers.py +284 -0
  140. isa_model/serving/api/fastapi_server.py +240 -18
  141. isa_model/serving/api/middleware/auth.py +317 -0
  142. isa_model/serving/api/middleware/security.py +268 -0
  143. isa_model/serving/api/middleware/tenant_context.py +414 -0
  144. isa_model/serving/api/routes/analytics.py +489 -0
  145. isa_model/serving/api/routes/config.py +645 -0
  146. isa_model/serving/api/routes/deployment_billing.py +315 -0
  147. isa_model/serving/api/routes/deployments.py +475 -0
  148. isa_model/serving/api/routes/gpu_gateway.py +440 -0
  149. isa_model/serving/api/routes/health.py +32 -12
  150. isa_model/serving/api/routes/inference_monitoring.py +486 -0
  151. isa_model/serving/api/routes/local_deployments.py +448 -0
  152. isa_model/serving/api/routes/logs.py +430 -0
  153. isa_model/serving/api/routes/settings.py +582 -0
  154. isa_model/serving/api/routes/tenants.py +575 -0
  155. isa_model/serving/api/routes/unified.py +992 -171
  156. isa_model/serving/api/routes/webhooks.py +479 -0
  157. isa_model/serving/api/startup.py +318 -0
  158. isa_model/serving/modal_proxy_server.py +249 -0
  159. isa_model/utils/gpu_utils.py +311 -0
  160. {isa_model-0.3.91.dist-info → isa_model-0.4.3.dist-info}/METADATA +76 -22
  161. isa_model-0.4.3.dist-info/RECORD +193 -0
  162. isa_model/deployment/cloud/__init__.py +0 -9
  163. isa_model/deployment/cloud/modal/__init__.py +0 -10
  164. isa_model/deployment/cloud/modal/isa_vision_doc_service.py +0 -766
  165. isa_model/deployment/cloud/modal/isa_vision_table_service.py +0 -532
  166. isa_model/deployment/cloud/modal/isa_vision_ui_service.py +0 -406
  167. isa_model/deployment/cloud/modal/register_models.py +0 -321
  168. isa_model/deployment/core/deployment_config.py +0 -356
  169. isa_model/deployment/core/isa_deployment_service.py +0 -401
  170. isa_model/deployment/gpu_int8_ds8/app/server.py +0 -66
  171. isa_model/deployment/gpu_int8_ds8/scripts/test_client.py +0 -43
  172. isa_model/deployment/gpu_int8_ds8/scripts/test_client_os.py +0 -35
  173. isa_model/deployment/runtime/deployed_service.py +0 -338
  174. isa_model/deployment/services/__init__.py +0 -9
  175. isa_model/deployment/services/auto_deploy_vision_service.py +0 -538
  176. isa_model/deployment/services/model_service.py +0 -332
  177. isa_model/deployment/services/service_monitor.py +0 -356
  178. isa_model/deployment/services/service_registry.py +0 -527
  179. isa_model/eval/__init__.py +0 -92
  180. isa_model/eval/benchmarks.py +0 -469
  181. isa_model/eval/config/__init__.py +0 -10
  182. isa_model/eval/config/evaluation_config.py +0 -108
  183. isa_model/eval/evaluators/__init__.py +0 -18
  184. isa_model/eval/evaluators/base_evaluator.py +0 -503
  185. isa_model/eval/evaluators/llm_evaluator.py +0 -472
  186. isa_model/eval/factory.py +0 -531
  187. isa_model/eval/infrastructure/__init__.py +0 -24
  188. isa_model/eval/infrastructure/experiment_tracker.py +0 -466
  189. isa_model/eval/metrics.py +0 -798
  190. isa_model/inference/adapter/unified_api.py +0 -248
  191. isa_model/inference/services/helpers/stacked_config.py +0 -148
  192. isa_model/inference/services/img/flux_professional_service.py +0 -603
  193. isa_model/inference/services/img/helpers/base_stacked_service.py +0 -274
  194. isa_model/inference/services/others/table_transformer_service.py +0 -61
  195. isa_model/inference/services/vision/doc_analysis_service.py +0 -640
  196. isa_model/inference/services/vision/helpers/base_stacked_service.py +0 -274
  197. isa_model/inference/services/vision/ui_analysis_service.py +0 -823
  198. isa_model/scripts/inference_tracker.py +0 -283
  199. isa_model/scripts/mlflow_manager.py +0 -379
  200. isa_model/scripts/model_registry.py +0 -465
  201. isa_model/scripts/register_models.py +0 -370
  202. isa_model/scripts/register_models_with_embeddings.py +0 -510
  203. isa_model/scripts/start_mlflow.py +0 -95
  204. isa_model/scripts/training_tracker.py +0 -257
  205. isa_model/training/__init__.py +0 -74
  206. isa_model/training/annotation/annotation_schema.py +0 -47
  207. isa_model/training/annotation/processors/annotation_processor.py +0 -126
  208. isa_model/training/annotation/storage/dataset_manager.py +0 -131
  209. isa_model/training/annotation/storage/dataset_schema.py +0 -44
  210. isa_model/training/annotation/tests/test_annotation_flow.py +0 -109
  211. isa_model/training/annotation/tests/test_minio copy.py +0 -113
  212. isa_model/training/annotation/tests/test_minio_upload.py +0 -43
  213. isa_model/training/annotation/views/annotation_controller.py +0 -158
  214. isa_model/training/cloud/__init__.py +0 -22
  215. isa_model/training/cloud/job_orchestrator.py +0 -402
  216. isa_model/training/cloud/runpod_trainer.py +0 -454
  217. isa_model/training/cloud/storage_manager.py +0 -482
  218. isa_model/training/core/__init__.py +0 -23
  219. isa_model/training/core/config.py +0 -181
  220. isa_model/training/core/dataset.py +0 -222
  221. isa_model/training/core/trainer.py +0 -720
  222. isa_model/training/core/utils.py +0 -213
  223. isa_model/training/factory.py +0 -424
  224. isa_model-0.3.91.dist-info/RECORD +0 -138
  225. /isa_model/{core/storage/minio_storage.py → deployment/modal/services/audio/isa_audio_fish_service.py} +0 -0
  226. /isa_model/deployment/{services → modal/services/vision}/simple_auto_deploy_vision_service.py +0 -0
  227. {isa_model-0.3.91.dist-info → isa_model-0.4.3.dist-info}/WHEEL +0 -0
  228. {isa_model-0.3.91.dist-info → isa_model-0.4.3.dist-info}/top_level.txt +0 -0
@@ -150,7 +150,7 @@ class LangChainMessageAdapter:
150
150
  tool_calls.append(tool_call)
151
151
 
152
152
  return AIMessage(
153
- content=response.content or "",
153
+ content=response.content if response.content is not None else "",
154
154
  tool_calls=tool_calls
155
155
  )
156
156
  else:
@@ -177,7 +177,7 @@ class LangChainMessageAdapter:
177
177
  }
178
178
  tool_calls.append(tool_call)
179
179
 
180
- return SimpleAIMessage(response.content or "", tool_calls)
180
+ return SimpleAIMessage(response.content if response.content is not None else "", tool_calls)
181
181
  else:
182
182
  content = response if isinstance(response, str) else getattr(response, 'content', str(response))
183
183
  return SimpleAIMessage(content)
@@ -427,15 +427,74 @@ class StandardMessageAdapter:
427
427
 
428
428
  def from_openai_format(self, response: Union[str, Any], original_input: Any) -> Any:
429
429
  """从 OpenAI 格式转换回原始格式"""
430
- # Handle response objects with tool_calls (preserve message object for compatibility)
431
- if hasattr(response, 'tool_calls') and response.tool_calls:
432
- # For standard format, we preserve the message object for tool_calls access
433
- # This handles both OpenAI and Ollama message objects
434
- return response
435
- else:
436
- # Handle simple string response
437
- content = response if isinstance(response, str) else getattr(response, 'content', str(response))
438
- return content
430
+ # For consistency, always return a message object similar to LangChain
431
+ try:
432
+ from langchain_core.messages import AIMessage
433
+
434
+ # Extract content - handle None content for tool calls
435
+ if isinstance(response, str):
436
+ content = response
437
+ elif hasattr(response, 'content'):
438
+ content = response.content if response.content is not None else ""
439
+ else:
440
+ content = str(response)
441
+
442
+ # Handle tool_calls if present
443
+ if hasattr(response, 'tool_calls') and response.tool_calls:
444
+ # Convert to LangChain format tool_calls
445
+ tool_calls = []
446
+ for tc in response.tool_calls:
447
+ if hasattr(tc, 'function'):
448
+ # OpenAI format: tc.function.name, tc.function.arguments
449
+ try:
450
+ import json
451
+ args = json.loads(tc.function.arguments) if tc.function.arguments else {}
452
+ except:
453
+ args = {}
454
+
455
+ tool_call = {
456
+ "name": tc.function.name,
457
+ "args": args,
458
+ "id": getattr(tc, 'id', 'unknown'),
459
+ "type": "tool_call"
460
+ }
461
+ tool_calls.append(tool_call)
462
+
463
+ return AIMessage(content=content, tool_calls=tool_calls)
464
+ else:
465
+ return AIMessage(content=content)
466
+
467
+ except ImportError:
468
+ # Fallback: create a simple message object
469
+ class SimpleAIMessage:
470
+ def __init__(self, content, tool_calls=None):
471
+ self.content = content
472
+ self.type = "ai"
473
+ self.tool_calls = tool_calls or []
474
+
475
+ # Handle tool_calls if present
476
+ if hasattr(response, 'tool_calls') and response.tool_calls:
477
+ tool_calls = []
478
+ for tc in response.tool_calls:
479
+ if hasattr(tc, 'function'):
480
+ try:
481
+ import json
482
+ args = json.loads(tc.function.arguments) if tc.function.arguments else {}
483
+ except:
484
+ args = {}
485
+
486
+ tool_call = {
487
+ "name": tc.function.name,
488
+ "args": args,
489
+ "id": getattr(tc, 'id', 'unknown'),
490
+ "type": "tool_call"
491
+ }
492
+ tool_calls.append(tool_call)
493
+
494
+ return SimpleAIMessage(content, tool_calls)
495
+ else:
496
+ content = response if isinstance(response, str) else getattr(response, 'content', str(response))
497
+ return SimpleAIMessage(content)
439
498
 
440
499
 
441
500
  # ============= 适配器管理器 =============
@@ -504,7 +563,7 @@ class AdapterManager:
504
563
  # 不应该到这里,因为有回退适配器
505
564
  return [{"role": "user", "content": str(input_data)}]
506
565
 
507
- def format_response(self, response: str, original_input: Any) -> Any:
566
+ def format_response(self, response: Union[str, Any], original_input: Any) -> Any:
508
567
  """格式化响应"""
509
568
  for adapter in self.message_adapters:
510
569
  if adapter.can_handle(original_input):
@@ -164,6 +164,348 @@ class LLMPrompts:
164
164
  prompt = f"Please think step by step and answer the following question:\n\n{question}\n\nReasoning and answer:"
165
165
  return prompt
166
166
 
167
+ @staticmethod
168
+ def chain_of_thought_prompt(
169
+ problem: str,
170
+ domain: Optional[str] = None,
171
+ format_json: bool = False,
172
+ include_confidence: bool = False
173
+ ) -> str:
174
+ """Generate Chain-of-Thought reasoning prompt with structured output"""
175
+
176
+ domain_context = ""
177
+ if domain:
178
+ domain_context = f" in the {domain} domain"
179
+
180
+ if format_json:
181
+ prompt = f"""Solve the following problem{domain_context} using step-by-step reasoning.
182
+
183
+ Problem: {problem}
184
+
185
+ Please provide your response in the following JSON format:
186
+ {{
187
+ "reasoning_steps": [
188
+ {{
189
+ "step": 1,
190
+ "description": "Brief description of this step",
191
+ "thinking": "Detailed explanation of your thought process",
192
+ "result": "What you conclude from this step"
193
+ }}
194
+ ],
195
+ "final_answer": "Your final answer",
196
+ "reasoning_chain": "Summary of your complete reasoning process"
197
+ """
198
+
199
+ if include_confidence:
200
+ prompt += ',\n "confidence_score": 0.85,\n "confidence_explanation": "Why you have this level of confidence"'
201
+
202
+ prompt += "\n}\n\nResponse:"
203
+ else:
204
+ prompt = f"""Solve the following problem{domain_context} using step-by-step reasoning.
205
+
206
+ Problem: {problem}
207
+
208
+ Please structure your response as follows:
209
+
210
+ **Step-by-Step Reasoning:**
211
+
212
+ Step 1: [Brief description]
213
+ - Thinking: [Detailed explanation]
214
+ - Result: [What you conclude]
215
+
216
+ Step 2: [Brief description]
217
+ - Thinking: [Detailed explanation]
218
+ - Result: [What you conclude]
219
+
220
+ [Continue for all steps...]
221
+
222
+ **Final Answer:**
223
+ [Your final answer]
224
+
225
+ **Reasoning Summary:**
226
+ [Brief summary of your complete reasoning process]
227
+ """
228
+
229
+ if include_confidence:
230
+ prompt += "\n**Confidence Assessment:**\n[Your confidence level and explanation]\n"
231
+
232
+ prompt += "\nResponse:"
233
+
234
+ return prompt
235
+
236
+ @staticmethod
237
+ def tree_of_thoughts_prompt(
238
+ problem: str,
239
+ num_branches: int = 3,
240
+ depth_levels: int = 3,
241
+ format_json: bool = True
242
+ ) -> str:
243
+ """Generate Tree-of-Thoughts reasoning prompt for complex problem solving"""
244
+
245
+ if format_json:
246
+ prompt = f"""Solve the following complex problem using Tree-of-Thoughts reasoning. Generate {num_branches} different approaches and evaluate them through {depth_levels} levels of thinking.
247
+
248
+ Problem: {problem}
249
+
250
+ Please structure your response in JSON format:
251
+
252
+ {{
253
+ "problem_analysis": "Initial understanding and breakdown of the problem",
254
+ "thought_tree": [
255
+ {{
256
+ "approach": 1,
257
+ "initial_thought": "First approach description",
258
+ "levels": [
259
+ {{
260
+ "level": 1,
261
+ "thoughts": ["Thought 1", "Thought 2", "Thought 3"],
262
+ "evaluations": ["Evaluation of thought 1", "Evaluation of thought 2", "Evaluation of thought 3"],
263
+ "best_thought": "Selected best thought with reasoning"
264
+ }}
265
+ ],
266
+ "final_conclusion": "Where this approach leads",
267
+ "viability_score": 0.8
268
+ }}
269
+ ],
270
+ "best_approach": {{
271
+ "approach_number": 1,
272
+ "reasoning": "Why this approach is best",
273
+ "final_answer": "The solution"
274
+ }},
275
+ "alternative_solutions": ["Other possible solutions"],
276
+ "confidence_assessment": "Overall confidence in the solution"
277
+ }}
278
+
279
+ Response:"""
280
+ else:
281
+ prompt = f"""Solve the following complex problem using Tree-of-Thoughts reasoning. Generate {num_branches} different approaches and evaluate them through {depth_levels} levels of thinking.
282
+
283
+ Problem: {problem}
284
+
285
+ **Problem Analysis:**
286
+ [Initial understanding and breakdown]
287
+
288
+ **Approach 1:**
289
+ - Initial Thought: [Description]
290
+ - Level 1 Exploration:
291
+ - Thought A: [Details] → Evaluation: [Assessment]
292
+ - Thought B: [Details] → Evaluation: [Assessment]
293
+ - Thought C: [Details] → Evaluation: [Assessment]
294
+ - Best: [Selected thought with reasoning]
295
+ - [Continue for {depth_levels} levels]
296
+ - Final Conclusion: [Where this approach leads]
297
+ - Viability: [Score/Assessment]
298
+
299
+ [Repeat for {num_branches} approaches]
300
+
301
+ **Best Approach Selection:**
302
+ - Chosen Approach: [Number and reasoning]
303
+ - Final Answer: [Solution]
304
+
305
+ **Alternative Solutions:**
306
+ [Other viable options]
307
+
308
+ **Confidence Assessment:**
309
+ [Overall confidence and reasoning]
310
+
311
+ Response:"""
312
+
313
+ return prompt
314
+
315
+ @staticmethod
316
+ def step_back_reasoning_prompt(
317
+ problem: str,
318
+ domain: Optional[str] = None,
319
+ include_principles: bool = True
320
+ ) -> str:
321
+ """Generate Step-Back reasoning prompt for principle-based problem solving"""
322
+
323
+ domain_context = f" in {domain}" if domain else ""
324
+
325
+ prompt = f"""Solve the following problem{domain_context} using step-back reasoning. First identify the underlying principles, then apply them to solve the specific problem.
326
+
327
+ Problem: {problem}
328
+
329
+ Please structure your response as follows:
330
+
331
+ **Step 1: Step Back - Identify General Principles**
332
+ What are the fundamental principles, concepts, or rules that apply to this type of problem?
333
+
334
+ **Step 2: Connect Principles to Problem**
335
+ How do these general principles relate to the specific problem at hand?
336
+
337
+ **Step 3: Apply Principles**
338
+ Use the identified principles to work through the problem systematically.
339
+
340
+ **Step 4: Verify Solution**
341
+ Check if your solution aligns with the fundamental principles.
342
+
343
+ **Final Answer:**
344
+ [Your solution]
345
+
346
+ """
347
+
348
+ if include_principles:
349
+ prompt += "**Principle Summary:**\n[Key principles used in solving this problem]\n\n"
350
+
351
+ prompt += "Response:"
352
+
353
+ return prompt
354
+
355
+ @staticmethod
356
+ def analogical_reasoning_prompt(
357
+ problem: str,
358
+ include_multiple_analogies: bool = True,
359
+ format_structured: bool = True
360
+ ) -> str:
361
+ """Generate analogical reasoning prompt using similar problems/situations"""
362
+
363
+ if format_structured:
364
+ prompt = f"""Solve the following problem using analogical reasoning. Find similar problems or situations that can guide your thinking.
365
+
366
+ Problem: {problem}
367
+
368
+ **Step 1: Find Analogies**
369
+ Think of 2-3 similar problems, situations, or concepts that share structural similarities with this problem.
370
+
371
+ Analogy 1: [Description]
372
+ - Similarities: [How it's similar to the current problem]
373
+ - Key insights: [What can be learned from this analogy]
374
+
375
+ Analogy 2: [Description]
376
+ - Similarities: [How it's similar to the current problem]
377
+ - Key insights: [What can be learned from this analogy]
378
+
379
+ {f'''Analogy 3: [Description]
380
+ - Similarities: [How it's similar to the current problem]
381
+ - Key insights: [What can be learned from this analogy]''' if include_multiple_analogies else ''}
382
+
383
+ **Step 2: Extract Patterns**
384
+ What common patterns or principles emerge from these analogies?
385
+
386
+ **Step 3: Apply to Current Problem**
387
+ How can the insights from these analogies be applied to solve the current problem?
388
+
389
+ **Step 4: Adapt and Refine**
390
+ What modifications are needed to account for differences between the analogies and current problem?
391
+
392
+ **Final Answer:**
393
+ [Your solution based on analogical reasoning]
394
+
395
+ Response:"""
396
+ else:
397
+ prompt = f"""Solve this problem by thinking of similar situations: {problem}
398
+
399
+ Find analogous problems or situations, extract useful patterns, and apply them here.
400
+
401
+ Response:"""
402
+
403
+ return prompt
404
+
405
+ @staticmethod
406
+ def multi_perspective_reasoning_prompt(
407
+ problem: str,
408
+ perspectives: Optional[List[str]] = None,
409
+ synthesis_required: bool = True
410
+ ) -> str:
411
+ """Generate multi-perspective reasoning prompt to consider different viewpoints"""
412
+
413
+ if not perspectives:
414
+ perspectives = [
415
+ "practical/pragmatic",
416
+ "theoretical/analytical",
417
+ "creative/innovative",
418
+ "critical/skeptical",
419
+ "ethical/moral"
420
+ ]
421
+
422
+ prompt = f"""Analyze and solve the following problem from multiple perspectives to gain a comprehensive understanding.
423
+
424
+ Problem: {problem}
425
+
426
+ """
427
+
428
+ for i, perspective in enumerate(perspectives, 1):
429
+ prompt += f"""**Perspective {i}: {perspective.title()}**
430
+ From this viewpoint:
431
+ - How would you understand the problem?
432
+ - What solution approach would you take?
433
+ - What are the key considerations?
434
+ - What would be your recommended action?
435
+
436
+ """
437
+
438
+ if synthesis_required:
439
+ prompt += f"""**Synthesis & Integration**
440
+ - Compare and contrast the insights from different perspectives
441
+ - Identify areas of agreement and disagreement
442
+ - Synthesize the best elements from each perspective
443
+ - Develop a balanced, comprehensive solution
444
+
445
+ **Final Integrated Solution:**
446
+ [Your solution that incorporates insights from multiple perspectives]
447
+
448
+ """
449
+
450
+ prompt += "Response:"
451
+
452
+ return prompt
453
+
454
+ @staticmethod
455
+ def metacognitive_reasoning_prompt(
456
+ problem: str,
457
+ include_strategy_selection: bool = True,
458
+ include_self_monitoring: bool = True
459
+ ) -> str:
460
+ """Generate metacognitive reasoning prompt with explicit thinking about thinking"""
461
+
462
+ prompt = f"""Solve the following problem using metacognitive reasoning - explicitly think about your thinking process.
463
+
464
+ Problem: {problem}
465
+
466
+ """
467
+
468
+ if include_strategy_selection:
469
+ prompt += """**Strategy Selection:**
470
+ - What type of problem is this?
471
+ - What reasoning strategies could be effective? (logical deduction, pattern recognition, analogy, etc.)
472
+ - Which strategy seems most promising and why?
473
+ - What are potential pitfalls to avoid?
474
+
475
+ """
476
+
477
+ prompt += """**Problem Solving Process:**
478
+ Now work through the problem while monitoring your thinking:
479
+
480
+ Step 1: [Your approach]
481
+ - Metacognitive check: Is this approach working? Do I need to adjust?
482
+
483
+ Step 2: [Continue reasoning]
484
+ - Metacognitive check: Am I on the right track? What evidence supports this?
485
+
486
+ [Continue with metacognitive monitoring throughout]
487
+
488
+ """
489
+
490
+ if include_self_monitoring:
491
+ prompt += """**Self-Monitoring Reflection:**
492
+ - How confident am I in this solution?
493
+ - What assumptions did I make?
494
+ - How could I verify this answer?
495
+ - What would I do differently next time?
496
+
497
+ """
498
+
499
+ prompt += """**Final Answer:**
500
+ [Your solution]
501
+
502
+ **Meta-Analysis:**
503
+ [Reflection on your reasoning process and what you learned about your own thinking]
504
+
505
+ Response:"""
506
+
507
+ return prompt
508
+
167
509
  @staticmethod
168
510
  def problem_solving_prompt(problem: str, problem_type: Optional[str] = None) -> str:
169
511
  """生成问题求解提示词"""