sycommon-python-lib 0.2.0b26__tar.gz → 0.2.0b27__tar.gz

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 (157) hide show
  1. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/PKG-INFO +1 -1
  2. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/pyproject.toml +1 -1
  3. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/Config.py +34 -0
  4. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/LLMConfig.py +2 -0
  5. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/get_llm.py +64 -10
  6. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/nacos_config_manager.py +15 -35
  7. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/nacos_service.py +0 -3
  8. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
  9. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/README.md +0 -0
  10. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/setup.cfg +0 -0
  11. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/__init__.py +0 -0
  12. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/cli.py +0 -0
  13. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/core/__init__.py +0 -0
  14. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/core/console.py +0 -0
  15. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/core/models.py +0 -0
  16. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/core/project.py +0 -0
  17. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/core/utils.py +0 -0
  18. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/templates/__init__.py +0 -0
  19. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/templates/agent/__init__.py +0 -0
  20. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/templates/base/__init__.py +0 -0
  21. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/command/templates/web/__init__.py +0 -0
  22. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/__init__.py +0 -0
  23. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/__init__.py +0 -0
  24. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/01_basic_agent.py +0 -0
  25. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/02_tool_agent.py +0 -0
  26. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/03_structured_output.py +0 -0
  27. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/04_memory_agent.py +0 -0
  28. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/05_streaming.py +0 -0
  29. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/06_multi_agent.py +0 -0
  30. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/07_skills_agent.py +0 -0
  31. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/08_middleware.py +0 -0
  32. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/09_interrupt.py +0 -0
  33. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/10_custom_llm.py +0 -0
  34. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/11_complex_workflow.py +0 -0
  35. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/12_batch_processing.py +0 -0
  36. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/__init__.py +0 -0
  37. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/01_basic_monitoring.py +0 -0
  38. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/02_permission_control.py +0 -0
  39. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/03_tool_skill_filter.py +0 -0
  40. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/04_caching_retry.py +0 -0
  41. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/05_sanitization.py +0 -0
  42. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/06_tracking.py +0 -0
  43. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/07_advanced.py +0 -0
  44. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/08_progressive_skills.py +0 -0
  45. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/__init__.py +0 -0
  46. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/middleware/override_examples.py +0 -0
  47. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/examples/virtual_employee_demo.py +0 -0
  48. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/exports.py +0 -0
  49. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/get_agent.py +0 -0
  50. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/skills/__init__.py +0 -0
  51. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/skills/examples/faq_handler/scripts/search.py +0 -0
  52. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/skills/exports.py +0 -0
  53. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/agent/virtual_employee.py +0 -0
  54. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/DatabaseConfig.py +0 -0
  55. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  56. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/EmbeddingConfig.py +0 -0
  57. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/LangfuseConfig.py +0 -0
  58. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/MQConfig.py +0 -0
  59. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/RedisConfig.py +0 -0
  60. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/RerankerConfig.py +0 -0
  61. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/SentryConfig.py +0 -0
  62. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/config/__init__.py +0 -0
  63. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/database/async_base_db_service.py +0 -0
  64. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/database/async_database_service.py +0 -0
  65. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/database/base_db_service.py +0 -0
  66. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/database/database_service.py +0 -0
  67. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/database/elasticsearch_service.py +0 -0
  68. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/database/redis_service.py +0 -0
  69. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/database/token_usage_db_service.py +0 -0
  70. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/health/__init__.py +0 -0
  71. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/health/health_check.py +0 -0
  72. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/health/metrics.py +0 -0
  73. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/health/ping.py +0 -0
  74. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/heartbeat_process/__init__.py +0 -0
  75. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  76. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  77. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  78. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/__init__.py +0 -0
  79. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/embedding.py +0 -0
  80. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/llm_logger.py +0 -0
  81. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/llm_tokens.py +0 -0
  82. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  83. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/native_smart_retry_runnable.py +0 -0
  84. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/smart_retry_runnable.py +0 -0
  85. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/struct_token.py +0 -0
  86. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/sy_langfuse.py +0 -0
  87. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/token_usage_es_service.py +0 -0
  88. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  89. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/llm/usage_token.py +0 -0
  90. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/logging/__init__.py +0 -0
  91. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/logging/async_sql_logger.py +0 -0
  92. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/logging/kafka_log.py +0 -0
  93. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/logging/logger_levels.py +0 -0
  94. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/logging/logger_wrapper.py +0 -0
  95. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/logging/process_logger.py +0 -0
  96. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/logging/sql_logger.py +0 -0
  97. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/__init__.py +0 -0
  98. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/context.py +0 -0
  99. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/cors.py +0 -0
  100. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/docs.py +0 -0
  101. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/exception.py +0 -0
  102. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/middleware.py +0 -0
  103. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/monitor_memory.py +0 -0
  104. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/mq.py +0 -0
  105. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/timeout.py +0 -0
  106. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/middleware/traceid.py +0 -0
  107. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/__init__.py +0 -0
  108. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/base_http.py +0 -0
  109. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/log.py +0 -0
  110. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/mqlistener_config.py +0 -0
  111. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/mqmsg_model.py +0 -0
  112. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/mqsend_config.py +0 -0
  113. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/sso_user.py +0 -0
  114. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/token_usage.py +0 -0
  115. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/models/token_usage_mysql.py +0 -0
  116. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/notice/__init__.py +0 -0
  117. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  118. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  119. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  120. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  121. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  122. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  123. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  124. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  125. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  126. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  127. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/sentry/__init__.py +0 -0
  128. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/sentry/sy_sentry.py +0 -0
  129. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/services.py +0 -0
  130. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/sse/__init__.py +0 -0
  131. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/sse/event.py +0 -0
  132. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/sse/sse.py +0 -0
  133. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/__init__.py +0 -0
  134. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/example.py +0 -0
  135. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/example2.py +0 -0
  136. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/feign.py +0 -0
  137. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/feign_client.py +0 -0
  138. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/nacos_client_base.py +0 -0
  139. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  140. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  141. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  142. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/synacos/param.py +0 -0
  143. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tests/test_email.py +0 -0
  144. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tests/test_mq.py +0 -0
  145. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/__init__.py +0 -0
  146. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/async_utils.py +0 -0
  147. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/docs.py +0 -0
  148. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/env.py +0 -0
  149. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/merge_headers.py +0 -0
  150. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/snowflake.py +0 -0
  151. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/syemail.py +0 -0
  152. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon/tools/timing.py +0 -0
  153. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon_python_lib.egg-info/SOURCES.txt +0 -0
  154. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  155. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  156. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
  157. {sycommon_python_lib-0.2.0b26 → sycommon_python_lib-0.2.0b27}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.0b26
3
+ Version: 0.2.0b27
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.0b26"
3
+ version = "0.2.0b27"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -2,6 +2,11 @@ import yaml
2
2
 
3
3
 
4
4
  class SingletonMeta(type):
5
+ """单例元类
6
+
7
+ 注意:非线程安全,应在程序启动时(同步环境)提前初始化单例,
8
+ 避免在协程环境中首次调用导致问题。
9
+ """
5
10
  _instances = {}
6
11
 
7
12
  def __call__(cls, *args, **kwargs):
@@ -31,6 +36,35 @@ class Config(metaclass=SingletonMeta):
31
36
  return llm
32
37
  raise ValueError(f"No configuration found for model: {model_name}")
33
38
 
39
+ def get_default_llm_config(self):
40
+ """获取默认的 LLM 配置
41
+
42
+ Returns:
43
+ dict: 默认模型的配置,如果没有设置 default=True 则返回第一个配置
44
+
45
+ Raises:
46
+ ValueError: 如果没有任何 LLM 配置
47
+ """
48
+ if not self.llm_configs:
49
+ raise ValueError("No LLM configuration found")
50
+
51
+ # 查找 default=True 的配置
52
+ for llm in self.llm_configs:
53
+ if llm.get('default') is True:
54
+ return llm
55
+
56
+ # 如果没有设置 default,返回第一个配置
57
+ return self.llm_configs[0]
58
+
59
+ def get_default_llm_model_name(self):
60
+ """获取默认模型名称
61
+
62
+ Returns:
63
+ str: 默认模型的名称
64
+ """
65
+ config = self.get_default_llm_config()
66
+ return config.get('model')
67
+
34
68
  def get_embedding_config(self, model_name):
35
69
  for llm in self.embedding_configs:
36
70
  if llm.get('model') == model_name:
@@ -1,3 +1,4 @@
1
+ from typing import Optional
1
2
  from pydantic import BaseModel
2
3
 
3
4
 
@@ -8,6 +9,7 @@ class LLMConfig(BaseModel):
8
9
  maxTokens: int
9
10
  vision: bool
10
11
  callFunction: bool
12
+ default: Optional[bool] = False
11
13
 
12
14
  @classmethod
13
15
  def from_config(cls, model_name: str):
@@ -4,32 +4,36 @@ from sycommon.config.LLMConfig import LLMConfig
4
4
  from sycommon.llm.llm_with_token_tracking import LLMWithTokenTracking
5
5
  from sycommon.llm.sy_langfuse import LangfuseInitializer
6
6
  from sycommon.llm.usage_token import LLMWithAutoTokenUsage
7
- from typing import Any, Union
7
+ from typing import Any, Optional, Union
8
8
  from langchain_core.language_models import BaseChatModel
9
9
 
10
10
 
11
11
  def get_llm(
12
- model: str = "Qwen3.5-122B-A10B",
12
+ model: Optional[str] = None,
13
13
  *,
14
14
  streaming: bool = False,
15
- temperature: float = 0.1,
15
+ temperature: Optional[float] = None,
16
16
  timeout: float = 180,
17
17
  max_retries: int = 3,
18
18
  wrap_structured: bool = True,
19
+ thinking: bool = False,
19
20
  **kwargs: Any
20
21
  ) -> Union[LLMWithAutoTokenUsage, LLMWithTokenTracking, BaseChatModel]:
21
22
  """
22
23
  获取LLM实例
23
24
 
24
25
  Args:
25
- model: 模型名称,默认为 Qwen3.5-122B-A10B
26
+ model: 模型名称,如果为 None 则使用配置中 default=True 的模型
26
27
  streaming: 是否启用流式输出
27
- temperature: 温度参数
28
+ temperature: 温度参数,如果为 None 则根据 thinking 模式自动设置
28
29
  timeout: 请求超时时间(秒),默认180秒
29
30
  max_retries: 最大重试次数,默认3次
30
31
  wrap_structured: 是否包装为结构化输出实例,默认True
31
32
  - True: 返回 LLMWithAutoTokenUsage,支持 with_structured_output()
32
33
  - False: 返回 LLMWithTokenTracking,保留日志、Langfuse 跟踪和 Token 统计
34
+ thinking: 是否启用思考模式,默认 False(指令模式)
35
+ - 思考模式: temperature=0.6, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=0.0, repetition_penalty=1.0
36
+ - 指令模式: temperature=0.7, top_p=0.8, top_k=20, min_p=0.0, presence_penalty=1.5, repetition_penalty=1.0
33
37
  **kwargs: 其他透传参数,支持 langchain init_chat_model 所有参数
34
38
  - presence_penalty: 存在惩罚
35
39
  - extra_body: 额外请求体参数,如 {"top_k": 20, "chat_template_kwargs": {"enable_thinking": False}}
@@ -43,7 +47,19 @@ def get_llm(
43
47
 
44
48
  Example:
45
49
  ```python
46
- # 结构化输出(默认使用原生模式)
50
+ # 使用默认模型(配置中 default=True 的模型)
51
+ llm = get_llm()
52
+
53
+ # 使用指定模型
54
+ llm = get_llm("Qwen3.5-122B-A10B")
55
+
56
+ # 思考模式
57
+ llm = get_llm("Qwen3.5-122B-A10B", thinking=True)
58
+
59
+ # 指令模式(默认)
60
+ llm = get_llm("Qwen3.5-122B-A10B", thinking=False)
61
+
62
+ # 结构化输出
47
63
  llm = get_llm("Qwen3.5-122B-A10B")
48
64
  chain = llm.with_structured_output(MyModel)
49
65
  result = await chain.ainvoke([HumanMessage(content="你好")])
@@ -66,13 +82,51 @@ def get_llm(
66
82
  )
67
83
  ```
68
84
  """
69
- if not model or model == "Qwen2.5-72B":
70
- model = "Qwen3.5-122B-A10B"
71
- kwargs["presence_penalty"] = 0
72
- kwargs["extra_body"] = {
85
+ from sycommon.config.Config import Config
86
+
87
+ # 如果没有传递模型名或使用旧模型别名,则使用默认模型
88
+ if model is None or model in ("Qwen2.5-72B", "Qwen3.5-122B-A10B"):
89
+ model = Config().get_default_llm_model_name()
90
+
91
+ # 根据 thinking 模式设置默认参数
92
+ if thinking:
93
+ # 思考模式
94
+ default_temperature = 0.6
95
+ default_top_p = 0.95
96
+ default_extra_body = {
97
+ "top_k": 20,
98
+ "min_p": 0.0,
99
+ "repetition_penalty": 1.0,
100
+ "chat_template_kwargs": {"enable_thinking": True}
101
+ }
102
+ default_presence_penalty = 0.0
103
+ else:
104
+ # 指令模式
105
+ default_temperature = 0.7
106
+ default_top_p = 0.8
107
+ default_extra_body = {
73
108
  "top_k": 20,
109
+ "min_p": 0.0,
110
+ "repetition_penalty": 1.0,
74
111
  "chat_template_kwargs": {"enable_thinking": False}
75
112
  }
113
+ default_presence_penalty = 1.5
114
+
115
+ # 应用默认参数(用户未指定时才使用默认值)
116
+ if temperature is None:
117
+ temperature = default_temperature
118
+ if "top_p" not in kwargs:
119
+ kwargs["top_p"] = default_top_p
120
+ if "presence_penalty" not in kwargs:
121
+ kwargs["presence_penalty"] = default_presence_penalty
122
+
123
+ # 合并 extra_body
124
+ if "extra_body" not in kwargs:
125
+ kwargs["extra_body"] = default_extra_body
126
+ else:
127
+ # 用户提供了 extra_body,合并默认值
128
+ merged_extra_body = {**default_extra_body, **kwargs["extra_body"]}
129
+ kwargs["extra_body"] = merged_extra_body
76
130
 
77
131
  llmConfig = LLMConfig.from_config(model)
78
132
  if not llmConfig:
@@ -8,20 +8,15 @@ from sycommon.logging.kafka_log import SYLogger
8
8
 
9
9
 
10
10
  class NacosConfigManager:
11
- """Nacos配置管理类 - 负责配置读取、监听和更新"""
11
+ """Nacos配置管理类 - 负责配置读取和监听"""
12
12
 
13
13
  def __init__(self, client_base: NacosClientBase):
14
14
  self.client_base = client_base
15
15
 
16
- # 配置
17
- self.config_watch_interval = self.client_base.nacos_config.get(
18
- 'configWatchInterval', 30)
19
-
20
16
  # 状态
21
17
  self.share_configs: Dict = {}
22
18
  self._config_listeners: Dict[str, Callable[[str], None]] = {}
23
19
  self._config_cache: Dict[str, str] = {}
24
- self._watch_thread: Optional[threading.Thread] = None
25
20
  # Nacos原生监听器跟踪
26
21
  self._nacos_watchers: Dict[str, bool] = {}
27
22
  self._watcher_lock = threading.Lock()
@@ -112,6 +107,9 @@ class NacosConfigManager:
112
107
  if data_id in self._config_listeners:
113
108
  self._config_listeners[data_id](new_content)
114
109
 
110
+ # 同步更新到全局 Config 单例
111
+ self._sync_to_global_config()
112
+
115
113
  SYLogger.info(f"nacos:配置热更新完成 - dataId: {data_id}")
116
114
  except Exception as e:
117
115
  SYLogger.error(f"nacos:配置变更回调处理失败: {e}")
@@ -139,33 +137,15 @@ class NacosConfigManager:
139
137
  SYLogger.error(f"nacos:获取配置 {data_id} 失败: {str(e)}")
140
138
  return None
141
139
 
142
- def start_watch_configs(self):
143
- """启动配置监视线程(作为Nacos原生监听的兜底)"""
144
- self._watch_thread = threading.Thread(
145
- target=self._watch_configs, daemon=True)
146
- self._watch_thread.start()
147
-
148
- def _watch_configs(self):
149
- """配置监听线程(兜底机制,确保配置变更不会遗漏)"""
150
- check_interval = self.config_watch_interval
140
+ def _sync_to_global_config(self):
141
+ """同步配置到全局 Config 单例
151
142
 
152
- while not self.client_base._shutdown_event.is_set():
153
- try:
154
- for data_id, callback in list(self._config_listeners.items()):
155
- new_config = self.get_config(data_id)
156
- if new_config and new_config != self._config_cache.get(data_id):
157
- SYLogger.info(f"nacos:兜底检测到配置变更 - dataId: {data_id}")
158
- callback(new_config)
159
- self._config_cache[data_id] = new_config
160
- try:
161
- self.share_configs[data_id] = json.loads(
162
- new_config)
163
- except json.JSONDecodeError:
164
- try:
165
- self.share_configs[data_id] = yaml.safe_load(
166
- new_config)
167
- except yaml.YAMLError:
168
- SYLogger.error(f"nacos:无法解析 {data_id} 的内容")
169
- except Exception as e:
170
- SYLogger.error(f"nacos:配置监视线程异常: {str(e)}")
171
- self.client_base._shutdown_event.wait(check_interval)
143
+ Nacos 配置变更时,更新 Config 单例中的 LLMConfig 等配置,
144
+ 使得 get_llm() 等函数能获取到最新的配置。
145
+ """
146
+ try:
147
+ from sycommon.config.Config import Config
148
+ Config().set_attr(self.share_configs)
149
+ SYLogger.debug("nacos:配置已同步到全局 Config 单例")
150
+ except Exception as e:
151
+ SYLogger.error(f"nacos:同步配置到全局单例失败: {e}")
@@ -68,9 +68,6 @@ class NacosService(metaclass=SingletonMeta):
68
68
  self.nacos_config.get('sharedConfigs', []))
69
69
  Config().set_attr(self.share_configs)
70
70
 
71
- # 启动配置监视线程
72
- self.config_manager.start_watch_configs()
73
-
74
71
  # 仅在需要注册时启动心跳
75
72
  if self.enable_register_nacos:
76
73
  # 如果启用进程模式,跳过线程模式的心跳启动
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.0b26
3
+ Version: 0.2.0b27
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown