sycommon-python-lib 0.2.1a52__tar.gz → 0.2.1a53__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 (262) hide show
  1. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/PKG-INFO +7 -7
  2. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/pyproject.toml +8 -7
  3. sycommon_python_lib-0.2.1a53/src/command/templates/__pycache__/__init__.cpython-311.pyc +0 -0
  4. sycommon_python_lib-0.2.1a53/src/command/templates/agent/README.md.tpl +88 -0
  5. sycommon_python_lib-0.2.1a53/src/command/templates/agent/agent/__init__.py.tpl +6 -0
  6. sycommon_python_lib-0.2.1a53/src/command/templates/agent/agent/main_agent.py.tpl +51 -0
  7. sycommon_python_lib-0.2.1a53/src/command/templates/agent/agent/nodes/__init__.py.tpl +6 -0
  8. sycommon_python_lib-0.2.1a53/src/command/templates/agent/agent/nodes/example_node.py.tpl +33 -0
  9. sycommon_python_lib-0.2.1a53/src/command/templates/agent/agent/states/__init__.py.tpl +6 -0
  10. sycommon_python_lib-0.2.1a53/src/command/templates/agent/agent/states/agent_state.py.tpl +30 -0
  11. sycommon_python_lib-0.2.1a53/src/command/templates/agent/api/__init__.py.tpl +3 -0
  12. sycommon_python_lib-0.2.1a53/src/command/templates/agent/api/query.py.tpl +30 -0
  13. sycommon_python_lib-0.2.1a53/src/command/templates/agent/api/sse/__init__.py.tpl +6 -0
  14. sycommon_python_lib-0.2.1a53/src/command/templates/agent/api/sse/agent.py.tpl +30 -0
  15. sycommon_python_lib-0.2.1a53/src/command/templates/agent/app.py.tpl +95 -0
  16. sycommon_python_lib-0.2.1a53/src/command/templates/agent/client/__init__.py.tpl +3 -0
  17. sycommon_python_lib-0.2.1a53/src/command/templates/agent/db/__init__.py.tpl +8 -0
  18. sycommon_python_lib-0.2.1a53/src/command/templates/agent/db/model/__init__.py.tpl +8 -0
  19. sycommon_python_lib-0.2.1a53/src/command/templates/agent/db/model/entity.py.tpl +24 -0
  20. sycommon_python_lib-0.2.1a53/src/command/templates/agent/db/service.py.tpl +37 -0
  21. sycommon_python_lib-0.2.1a53/src/command/templates/agent/model/__init__.py.tpl +3 -0
  22. sycommon_python_lib-0.2.1a53/src/command/templates/agent/model/parse.py.tpl +22 -0
  23. sycommon_python_lib-0.2.1a53/src/command/templates/agent/tools/__init__.py.tpl +3 -0
  24. sycommon_python_lib-0.2.1a53/src/command/templates/agent/tools/mq.py.tpl +66 -0
  25. sycommon_python_lib-0.2.1a53/src/command/templates/base/.env.tpl +10 -0
  26. sycommon_python_lib-0.2.1a53/src/command/templates/base/.gitignore.tpl +38 -0
  27. sycommon_python_lib-0.2.1a53/src/command/templates/base/Dockerfile.tpl +19 -0
  28. sycommon_python_lib-0.2.1a53/src/command/templates/base/README.md.tpl +62 -0
  29. sycommon_python_lib-0.2.1a53/src/command/templates/base/app.py.tpl +66 -0
  30. sycommon_python_lib-0.2.1a53/src/command/templates/base/app.yaml.tpl +30 -0
  31. sycommon_python_lib-0.2.1a53/src/command/templates/base/client/FileServiceClient.py.tpl +15 -0
  32. sycommon_python_lib-0.2.1a53/src/command/templates/base/model/file_info.py.tpl +14 -0
  33. sycommon_python_lib-0.2.1a53/src/command/templates/base/requirements.txt.tpl +32 -0
  34. sycommon_python_lib-0.2.1a53/src/command/templates/web/README.md.tpl +80 -0
  35. sycommon_python_lib-0.2.1a53/src/command/templates/web/api/__init__.py.tpl +6 -0
  36. sycommon_python_lib-0.2.1a53/src/command/templates/web/api/echo.py.tpl +28 -0
  37. sycommon_python_lib-0.2.1a53/src/command/templates/web/api/sse/__init__.py.tpl +8 -0
  38. sycommon_python_lib-0.2.1a53/src/command/templates/web/api/sse/echo.py.tpl +37 -0
  39. sycommon_python_lib-0.2.1a53/src/command/templates/web/app.py.tpl +99 -0
  40. sycommon_python_lib-0.2.1a53/src/command/templates/web/client/__init__.py.tpl +3 -0
  41. sycommon_python_lib-0.2.1a53/src/command/templates/web/model/__init__.py.tpl +3 -0
  42. sycommon_python_lib-0.2.1a53/src/command/templates/web/tools/__init__.py.tpl +3 -0
  43. sycommon_python_lib-0.2.1a53/src/command/templates/web/tools/mq.py.tpl +29 -0
  44. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/agents/prompts.py +88 -0
  45. sycommon_python_lib-0.2.1a53/src/sycli/cdp/__init__.py +1 -0
  46. sycommon_python_lib-0.2.1a53/src/sycli/cdp/browser.py +214 -0
  47. sycommon_python_lib-0.2.1a53/src/sycli/cdp/capabilities/__init__.py +1 -0
  48. sycommon_python_lib-0.2.1a53/src/sycli/cdp/capabilities/console.py +85 -0
  49. sycommon_python_lib-0.2.1a53/src/sycli/cdp/capabilities/dom.py +53 -0
  50. sycommon_python_lib-0.2.1a53/src/sycli/cdp/capabilities/network.py +119 -0
  51. sycommon_python_lib-0.2.1a53/src/sycli/cdp/capabilities/page_errors.py +91 -0
  52. sycommon_python_lib-0.2.1a53/src/sycli/cdp/capabilities/performance.py +67 -0
  53. sycommon_python_lib-0.2.1a53/src/sycli/cdp/capabilities/screenshot.py +61 -0
  54. sycommon_python_lib-0.2.1a53/src/sycli/cdp/client.py +148 -0
  55. sycommon_python_lib-0.2.1a53/src/sycli/cdp/protocol.py +133 -0
  56. sycommon_python_lib-0.2.1a53/src/sycli/cdp/repl.py +267 -0
  57. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/cli.py +52 -0
  58. sycommon_python_lib-0.2.1a53/src/sycli/commands/cdp_cmd.py +271 -0
  59. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/resume_cmd.py +107 -0
  60. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/mode/create.py +4 -4
  61. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/models/config_models.py +8 -0
  62. sycommon_python_lib-0.2.1a53/src/sycli/rl/baseline_tests.py +245 -0
  63. sycommon_python_lib-0.2.1a53/src/sycli/rl/checkpoint.py +497 -0
  64. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/convergence.py +83 -12
  65. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/diagnosis.py +14 -7
  66. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/engine.py +407 -31
  67. sycommon_python_lib-0.2.1a53/src/sycli/rl/environment.py +489 -0
  68. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/experience.py +27 -0
  69. sycommon_python_lib-0.2.1a53/src/sycli/rl/optimization_logger.py +264 -0
  70. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/reward.py +39 -13
  71. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/strategy_bandit.py +80 -7
  72. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/strategy_generator.py +17 -0
  73. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/strategy_prompts.py +4 -0
  74. sycommon_python_lib-0.2.1a53/src/sycommon/auth/__init__.py +46 -0
  75. sycommon_python_lib-0.2.1a53/src/sycommon/auth/wecom_ldap_service.py +490 -0
  76. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/database/token_usage_db_service.py +5 -5
  77. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/llm_tokens.py +8 -0
  78. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/token_usage_mysql_service.py +123 -157
  79. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/logging/kafka_log.py +24 -12
  80. sycommon_python_lib-0.2.1a53/src/sycommon/sentry/__init__.py +0 -0
  81. sycommon_python_lib-0.2.1a53/src/sycommon/tools/__init__.py +0 -0
  82. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon_python_lib.egg-info/PKG-INFO +7 -7
  83. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon_python_lib.egg-info/SOURCES.txt +60 -0
  84. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon_python_lib.egg-info/requires.txt +6 -6
  85. sycommon_python_lib-0.2.1a53/tests/test_sycli.py +1873 -0
  86. sycommon_python_lib-0.2.1a52/src/sycli/rl/environment.py +0 -237
  87. sycommon_python_lib-0.2.1a52/src/sycommon/auth/__init__.py +0 -36
  88. sycommon_python_lib-0.2.1a52/tests/test_sycli.py +0 -880
  89. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/README.md +0 -0
  90. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/setup.cfg +0 -0
  91. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/__init__.py +0 -0
  92. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/cli.py +0 -0
  93. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/core/__init__.py +0 -0
  94. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/core/console.py +0 -0
  95. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/core/models.py +0 -0
  96. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/core/project.py +0 -0
  97. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/core/utils.py +0 -0
  98. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/templates/__init__.py +0 -0
  99. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/templates/agent/__init__.py +0 -0
  100. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/templates/base/__init__.py +0 -0
  101. /sycommon_python_lib-0.2.1a52/src/sycommon/__init__.py → /sycommon_python_lib-0.2.1a53/src/command/templates/base/client/__init__.py.tpl +0 -0
  102. /sycommon_python_lib-0.2.1a52/src/sycommon/config/__init__.py → /sycommon_python_lib-0.2.1a53/src/command/templates/base/model/__init__.py.tpl +0 -0
  103. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/command/templates/web/__init__.py +0 -0
  104. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/__init__.py +0 -0
  105. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/__main__.py +0 -0
  106. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/agents/__init__.py +0 -0
  107. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/agents/factory.py +0 -0
  108. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/__init__.py +0 -0
  109. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/chat_cmd.py +0 -0
  110. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/create_cmd.py +0 -0
  111. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/evaluate_cmd.py +0 -0
  112. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/init_cmd.py +0 -0
  113. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/memory_cmd.py +0 -0
  114. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/rollback_cmd.py +0 -0
  115. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/commands/run_cmd.py +0 -0
  116. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/core/__init__.py +0 -0
  117. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/core/backend.py +0 -0
  118. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/core/config.py +0 -0
  119. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/core/display.py +0 -0
  120. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/core/git_integration.py +0 -0
  121. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/core/llm.py +0 -0
  122. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/core/state.py +0 -0
  123. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/evaluate/__init__.py +0 -0
  124. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/evaluate/api_evaluator.py +0 -0
  125. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/memory/__init__.py +0 -0
  126. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/memory/compressor.py +0 -0
  127. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/memory/full.py +0 -0
  128. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/memory/hot.py +0 -0
  129. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/memory/manager.py +0 -0
  130. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/memory/warm.py +0 -0
  131. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/mode/__init__.py +0 -0
  132. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/mode/optimize.py +0 -0
  133. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/models/__init__.py +0 -0
  134. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/__init__.py +0 -0
  135. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/harness_prompts.py +0 -0
  136. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/history.py +0 -0
  137. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/rl/pre_validation.py +0 -0
  138. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycli/skills/__init__.py +0 -0
  139. {sycommon_python_lib-0.2.1a52/src/sycommon/health → sycommon_python_lib-0.2.1a53/src/sycommon}/__init__.py +0 -0
  140. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/__init__.py +0 -0
  141. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/agent_manager.py +0 -0
  142. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/chat_events.py +0 -0
  143. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/deep_agent.py +0 -0
  144. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/multi_agent_team.py +0 -0
  145. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/sandbox/__init__.py +0 -0
  146. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  147. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  148. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  149. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  150. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/agent/sandbox/session.py +0 -0
  151. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/auth/ldap_service.py +0 -0
  152. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/Config.py +0 -0
  153. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/DatabaseConfig.py +0 -0
  154. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  155. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/EmbeddingConfig.py +0 -0
  156. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/LLMConfig.py +0 -0
  157. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/LangfuseConfig.py +0 -0
  158. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/MQConfig.py +0 -0
  159. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/RedisConfig.py +0 -0
  160. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/RerankerConfig.py +0 -0
  161. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/SentryConfig.py +0 -0
  162. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/config/XxlJobConfig.py +0 -0
  163. {sycommon_python_lib-0.2.1a52/src/sycommon/llm → sycommon_python_lib-0.2.1a53/src/sycommon/config}/__init__.py +0 -0
  164. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/database/async_base_db_service.py +0 -0
  165. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/database/async_database_service.py +0 -0
  166. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/database/base_db_service.py +0 -0
  167. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/database/database_service.py +0 -0
  168. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/database/elasticsearch_service.py +0 -0
  169. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/database/redis_service.py +0 -0
  170. {sycommon_python_lib-0.2.1a52/src/sycommon/logging → sycommon_python_lib-0.2.1a53/src/sycommon/health}/__init__.py +0 -0
  171. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/health/health_check.py +0 -0
  172. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/health/metrics.py +0 -0
  173. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/health/ping.py +0 -0
  174. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/heartbeat_process/__init__.py +0 -0
  175. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  176. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  177. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  178. {sycommon_python_lib-0.2.1a52/src/sycommon/middleware → sycommon_python_lib-0.2.1a53/src/sycommon/llm}/__init__.py +0 -0
  179. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/embedding.py +0 -0
  180. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/get_llm.py +0 -0
  181. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/llm_logger.py +0 -0
  182. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  183. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  184. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  185. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/struct_token.py +0 -0
  186. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/sy_langfuse.py +0 -0
  187. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/token_usage_es_service.py +0 -0
  188. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/llm/usage_token.py +0 -0
  189. {sycommon_python_lib-0.2.1a52/src/sycommon/models → sycommon_python_lib-0.2.1a53/src/sycommon/logging}/__init__.py +0 -0
  190. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/logging/async_sql_logger.py +0 -0
  191. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/logging/logger_levels.py +0 -0
  192. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/logging/logger_wrapper.py +0 -0
  193. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/logging/process_logger.py +0 -0
  194. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/logging/sql_logger.py +0 -0
  195. {sycommon_python_lib-0.2.1a52/src/sycommon/notice → sycommon_python_lib-0.2.1a53/src/sycommon/middleware}/__init__.py +0 -0
  196. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/background_execution.py +0 -0
  197. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/context.py +0 -0
  198. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/cors.py +0 -0
  199. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/docs.py +0 -0
  200. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/exception.py +0 -0
  201. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/middleware.py +0 -0
  202. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/monitor_memory.py +0 -0
  203. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/mq.py +0 -0
  204. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/sandbox.py +0 -0
  205. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/timeout.py +0 -0
  206. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/token_tracking.py +0 -0
  207. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/middleware/traceid.py +0 -0
  208. {sycommon_python_lib-0.2.1a52/src/sycommon/sentry → sycommon_python_lib-0.2.1a53/src/sycommon/models}/__init__.py +0 -0
  209. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/base_http.py +0 -0
  210. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/log.py +0 -0
  211. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/mqlistener_config.py +0 -0
  212. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/mqmsg_model.py +0 -0
  213. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/mqsend_config.py +0 -0
  214. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/sandbox.py +0 -0
  215. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/sso_user.py +0 -0
  216. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/token_usage.py +0 -0
  217. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/token_usage_mysql.py +0 -0
  218. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/models/xxljob_handler_config.py +0 -0
  219. {sycommon_python_lib-0.2.1a52/src/sycommon/tools → sycommon_python_lib-0.2.1a53/src/sycommon/notice}/__init__.py +0 -0
  220. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  221. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  222. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  223. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  224. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  225. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  226. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  227. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  228. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  229. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  230. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/sentry/sy_sentry.py +0 -0
  231. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/services.py +0 -0
  232. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/sse/__init__.py +0 -0
  233. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/sse/event.py +0 -0
  234. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/sse/sse.py +0 -0
  235. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/__init__.py +0 -0
  236. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/example.py +0 -0
  237. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/example2.py +0 -0
  238. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/feign.py +0 -0
  239. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/feign_client.py +0 -0
  240. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/nacos_client_base.py +0 -0
  241. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  242. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  243. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/nacos_service.py +0 -0
  244. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  245. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  246. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/synacos/param.py +0 -0
  247. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tests/deep_agent_server.py +0 -0
  248. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tests/test_deep_agent.py +0 -0
  249. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tests/test_email.py +0 -0
  250. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tests/test_mq.py +0 -0
  251. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tools/async_utils.py +0 -0
  252. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tools/docs.py +0 -0
  253. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tools/env.py +0 -0
  254. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tools/merge_headers.py +0 -0
  255. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tools/snowflake.py +0 -0
  256. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tools/syemail.py +0 -0
  257. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/tools/timing.py +0 -0
  258. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/xxljob/__init__.py +0 -0
  259. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon/xxljob/xxljob_service.py +0 -0
  260. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  261. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  262. {sycommon_python_lib-0.2.1a52 → sycommon_python_lib-0.2.1a53}/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.1a52
3
+ Version: 0.2.1a53
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -9,15 +9,15 @@ Requires-Dist: aiohttp>=3.13.5
9
9
  Requires-Dist: aiomysql>=0.3.2
10
10
  Requires-Dist: anyio>=4.12.1
11
11
  Requires-Dist: decorator>=5.2.1
12
- Requires-Dist: deepagents>=0.5.0a4
12
+ Requires-Dist: deepagents>=0.5.2
13
13
  Requires-Dist: elasticsearch>=9.3.0
14
14
  Requires-Dist: fastapi>=0.135.3
15
15
  Requires-Dist: jinja2>=3.1.6
16
- Requires-Dist: kafka-python>=2.3.0
16
+ Requires-Dist: kafka-python>=2.3.1
17
17
  Requires-Dist: langchain>=1.2.15
18
- Requires-Dist: langchain-core>=1.2.26
18
+ Requires-Dist: langchain-core>=1.2.28
19
19
  Requires-Dist: langchain-openai>=1.1.11
20
- Requires-Dist: langfuse>=4.0.6
20
+ Requires-Dist: langfuse>=4.2.0
21
21
  Requires-Dist: langgraph>=1.1.6
22
22
  Requires-Dist: langgraph-checkpoint-redis>=0.4.0
23
23
  Requires-Dist: ldap3>=2.9.1
@@ -28,14 +28,14 @@ Requires-Dist: psutil>=7.2.2
28
28
  Requires-Dist: pyxxl>=0.4.6
29
29
  Requires-Dist: pydantic>=2.12.5
30
30
  Requires-Dist: python-dotenv>=1.2.2
31
- Requires-Dist: python-multipart>=0.0.22
31
+ Requires-Dist: python-multipart>=0.0.26
32
32
  Requires-Dist: pyyaml>=6.0.3
33
33
  Requires-Dist: redis>=7.3.0
34
34
  Requires-Dist: sentry-sdk[fastapi]>=2.57.0
35
35
  Requires-Dist: sqlalchemy[asyncio]>=2.0.48
36
36
  Requires-Dist: starlette[full]>=1.0.0
37
37
  Requires-Dist: tiktoken>=0.12.0
38
- Requires-Dist: uvicorn>=0.42.0
38
+ Requires-Dist: uvicorn>=0.44.0
39
39
  Requires-Dist: wecom-aibot-python-sdk>=1.0.2
40
40
 
41
41
  # sycommon-python-lib
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.1a52"
3
+ version = "0.2.1a53"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -10,15 +10,15 @@ dependencies = [
10
10
  "aiomysql>=0.3.2",
11
11
  "anyio>=4.12.1",
12
12
  "decorator>=5.2.1",
13
- "deepagents>=0.5.0a4",
13
+ "deepagents>=0.5.2",
14
14
  "elasticsearch>=9.3.0",
15
15
  "fastapi>=0.135.3",
16
16
  "jinja2>=3.1.6",
17
- "kafka-python>=2.3.0",
17
+ "kafka-python>=2.3.1",
18
18
  "langchain>=1.2.15",
19
- "langchain-core>=1.2.26",
19
+ "langchain-core>=1.2.28",
20
20
  "langchain-openai>=1.1.11",
21
- "langfuse>=4.0.6",
21
+ "langfuse>=4.2.0",
22
22
  "langgraph>=1.1.6",
23
23
  "langgraph-checkpoint-redis>=0.4.0",
24
24
  "ldap3>=2.9.1",
@@ -29,19 +29,20 @@ dependencies = [
29
29
  "pyxxl>=0.4.6",
30
30
  "pydantic>=2.12.5",
31
31
  "python-dotenv>=1.2.2",
32
- "python-multipart>=0.0.22",
32
+ "python-multipart>=0.0.26",
33
33
  "pyyaml>=6.0.3",
34
34
  "redis>=7.3.0",
35
35
  "sentry-sdk[fastapi]>=2.57.0",
36
36
  "sqlalchemy[asyncio]>=2.0.48",
37
37
  "starlette[full]>=1.0.0",
38
38
  "tiktoken>=0.12.0",
39
- "uvicorn>=0.42.0",
39
+ "uvicorn>=0.44.0",
40
40
  "wecom-aibot-python-sdk>=1.0.2",
41
41
  ]
42
42
 
43
43
  [tool.setuptools]
44
44
  packages = {find = {where = ["src"]}}
45
+ package-data = {command = ["templates/**/*", "templates/**/.*"]}
45
46
 
46
47
  [build-system]
47
48
  requires = ["setuptools"]
@@ -0,0 +1,88 @@
1
+ # {{ project_name }}
2
+
3
+ {{ project_name }} - AI Agent 服务
4
+
5
+ ## 项目结构
6
+
7
+ ```
8
+ {{ project_name }}/
9
+ ├── agent/ # Agent 核心模块
10
+ │ ├── __init__.py
11
+ │ ├── main_agent.py # Agent 主入口
12
+ │ ├── enums/ # 枚举定义
13
+ │ │ └── node_type.py # 节点类型
14
+ │ ├── nodes/ # 处理节点
15
+ │ │ └── example_node.py
16
+ │ └── states/ # 状态定义
17
+ │ └── agent_state.py
18
+ ├── api/ # API 路由
19
+ │ └── sse/
20
+ │ └── agent.py # SSE 流式接口
21
+ ├── model/ # 数据模型
22
+ ├── tools/ # 工具函数
23
+ │ └── mq.py # MQ 消息处理
24
+ ├── client/ # 外部服务客户端
25
+ ├── db/ # 数据库层
26
+ │ ├── service.py # 服务类
27
+ │ └── model/ # 数据库模型
28
+ ├── app.py # 应用入口
29
+ ├── app.yaml # 应用配置
30
+ └── README.md
31
+
32
+ ## 快速开始
33
+
34
+ ### 安装依赖
35
+ ```bash
36
+ pip install -r requirements.txt
37
+ ```
38
+
39
+ ### 启动服务
40
+ ```bash
41
+ python app.py
42
+ ```
43
+
44
+ ### 测试接口
45
+
46
+ #### SSE 流式接口
47
+ ```bash
48
+ curl -X POST http://localhost:{{ default_port }}/v1/sse/parse \
49
+ -H "Content-Type: application/json" \
50
+ -d '{"bizCode": "test", "fileList": ["file-id-1"]}'
51
+ ```
52
+
53
+ #### 查询接口
54
+ ```bash
55
+ curl -X POST http://localhost:{{ default_port }}/v1/query \
56
+ -H "Content-Type: application/json" \
57
+ -d '{"bizCode": "test", "fileList": ["file-id-1"]}'
58
+ ```
59
+
60
+ ## 部署说明
61
+
62
+ ### Docker 构建
63
+ ```bash
64
+ docker build -t {{ project_name }} .
65
+ docker run -p {{ default_port }}:{{ default_port }} {{ project_name }}
66
+ ```
67
+
68
+ ### Nacos 配置
69
+
70
+ 1. 同步 nacos 配置 {{ project_name }}
71
+
72
+ 2. 配置网关
73
+
74
+ ```yaml
75
+ - id: "{{ project_name }}"
76
+ uri: lb://{{ project_name }}
77
+ filters:
78
+ - AddRequestHeader=X-Request-Gateway,{{ short_project_name }}
79
+ - StripPrefix=1
80
+ predicates:
81
+ - Path=/{{ short_project_name }}/**
82
+ ```
83
+
84
+ ## 核心依赖
85
+
86
+ - sycommon-python-lib: 公共基础库
87
+ - langgraph: Agent 状态图框架
88
+ - langchain: LLM 链式调用
@@ -0,0 +1,6 @@
1
+ """
2
+ Agent 模块
3
+ """
4
+ from .main_agent import main_agent
5
+
6
+ __all__ = ["main_agent"]
@@ -0,0 +1,51 @@
1
+ from typing import AsyncGenerator
2
+ from langgraph.graph import StateGraph, START
3
+
4
+ from agent.nodes.example_node import example_node
5
+ from agent.states.agent_state import AgentState
6
+ from model.parse import ParseReq
7
+ from sycommon.sse.sse import ServerSentEvent
8
+ from sycommon.logging.kafka_log import SYLogger
9
+
10
+
11
+ async def main_agent(data: ParseReq) -> AsyncGenerator[str, None]:
12
+ """
13
+ Agent 主入口
14
+
15
+ 构建状态图并流式返回处理结果
16
+
17
+ Args:
18
+ data: ParseReq 请求对象,包含 fileIds、business_no 等
19
+
20
+ Yields:
21
+ ServerSentEvent: SSE 事件流
22
+ """
23
+ # 构建状态图
24
+ builder = StateGraph(AgentState)
25
+
26
+ # 添加节点
27
+ builder.add_node("example", example_node)
28
+ # 如需添加更多节点:
29
+ # builder.add_node("node_b", node_b_func)
30
+
31
+ # 设置起始边:START -> 第一个节点
32
+ builder.add_edge(START, "example")
33
+ # 如需添加更多边:
34
+ # builder.add_edge("example", "node_b")
35
+
36
+ # 编译图
37
+ agent = builder.compile()
38
+
39
+ # 构建初始状态
40
+ state = AgentState(
41
+ fileIds=data.fileList,
42
+ business_no=data.bizCode,
43
+ )
44
+
45
+ # 流式执行并返回 SSE 事件
46
+ async for chunk in agent.astream(state, stream_mode="values"):
47
+ yield ServerSentEvent(
48
+ data=AgentState(**chunk).model_dump_json(),
49
+ event="message",
50
+ id="end"
51
+ )
@@ -0,0 +1,6 @@
1
+ """
2
+ Agent 处理节点
3
+ """
4
+ from .example_node import example_node
5
+
6
+ __all__ = ["example_node"]
@@ -0,0 +1,33 @@
1
+ from agent.states.agent_state import AgentState
2
+ from langgraph.types import Command
3
+ from sycommon.logging.kafka_log import SYLogger
4
+
5
+
6
+ async def example_node(state: AgentState):
7
+ try:
8
+ for file_id in state.fileIds:
9
+ SYLogger.info(f"处理文件: {file_id}")
10
+ # TODO: 实现实际的处理逻辑,例如:
11
+ # 1. 获取文件 OCR 数据 -> state.ocr_data[file_id] = ...
12
+ # 2. 分类文件类型 -> state.file_type_dict[file_id] = ...
13
+ # 3. 提取结构化数据 -> state.results[file_id] = ...
14
+
15
+ state.results[file_id] = [{"status": "processed"}]
16
+
17
+ return Command(
18
+ update={
19
+ "results": state.results,
20
+ "is_completed": True
21
+ },
22
+ goto=None # 结束流程
23
+ )
24
+
25
+ except Exception as e:
26
+ SYLogger.error(f"示例节点处理失败: {str(e)}")
27
+ return Command(
28
+ update={
29
+ "error": str(e),
30
+ "is_completed": True
31
+ },
32
+ goto=None
33
+ )
@@ -0,0 +1,6 @@
1
+ """
2
+ Agent 状态定义
3
+ """
4
+ from .agent_state import AgentState
5
+
6
+ __all__ = ["AgentState"]
@@ -0,0 +1,30 @@
1
+ from typing import List, Optional
2
+ from pydantic import BaseModel, Field
3
+
4
+
5
+ class AgentState(BaseModel):
6
+ """
7
+ Agent 状态定义
8
+
9
+ 在节点之间传递的共享状态,支持文件处理工作流
10
+ """
11
+ # 文件ID列表
12
+ fileIds: List[str] = Field(default_factory=list, description="待处理文件ID列表")
13
+
14
+ # 业务编号
15
+ business_no: str = Field(default="", description="业务编号")
16
+
17
+ # OCR/外部数据源结果(key: file_id)
18
+ ocr_data: dict[str, list] = Field(default_factory=dict, description="OCR识别数据")
19
+
20
+ # 文件分类结果(key: file_id)
21
+ file_type_dict: dict[str, dict] = Field(default_factory=dict, description="文件分类结果")
22
+
23
+ # 提取结果(key: file_id)
24
+ results: dict[str, list] = Field(default_factory=dict, description="各文件提取结果")
25
+
26
+ # 错误信息
27
+ error: Optional[str] = None
28
+
29
+ # 是否完成
30
+ is_completed: bool = False
@@ -0,0 +1,3 @@
1
+ """
2
+ {{ project_name }} API 模块
3
+ """
@@ -0,0 +1,30 @@
1
+ import traceback
2
+ from fastapi import APIRouter
3
+ from fastapi.responses import JSONResponse
4
+
5
+ from model.parse import QueryReq
6
+ from sycommon.logging.kafka_log import SYLogger
7
+ from sycommon.models.base_http import success_response
8
+
9
+
10
+ router = APIRouter()
11
+
12
+
13
+ @router.post('/v1/query')
14
+ async def query(req: QueryReq):
15
+ """
16
+ 查询解析结果
17
+
18
+ Args:
19
+ req: QueryReq 请求参数(bizCode, fileList)
20
+
21
+ Returns:
22
+ JSON 响应
23
+ """
24
+ try:
25
+ # TODO: 实现查询逻辑,从数据库查询解析结果
26
+ return success_response(data=[], message="查询成功")
27
+ except Exception as e:
28
+ error_msg = f"查询失败: {str(e)}"
29
+ SYLogger.error(traceback.format_exc())
30
+ return JSONResponse(content={'code': 500, 'message': error_msg})
@@ -0,0 +1,6 @@
1
+ """
2
+ SSE 流式 API
3
+ """
4
+ from .agent import router
5
+
6
+ __all__ = ["router"]
@@ -0,0 +1,30 @@
1
+ import traceback
2
+ from fastapi import APIRouter
3
+ from fastapi.responses import JSONResponse
4
+
5
+ from agent.main_agent import main_agent
6
+ from model.parse import ParseReq
7
+ from sycommon.sse.sse import EventSourceResponse
8
+ from sycommon.logging.kafka_log import SYLogger
9
+
10
+
11
+ router = APIRouter()
12
+
13
+
14
+ @router.post('/v1/sse/parse')
15
+ async def parse(req: ParseReq):
16
+ """
17
+ SSE 流式解析接口
18
+
19
+ Args:
20
+ req: ParseReq 请求参数(bizCode, fileList, isFlat)
21
+
22
+ Returns:
23
+ EventSourceResponse: SSE 流式响应
24
+ """
25
+ try:
26
+ return EventSourceResponse(main_agent(req))
27
+ except Exception as e:
28
+ error_msg = f"处理请求时发生未知错误: {str(e)}"
29
+ SYLogger.error(traceback.format_exc())
30
+ return JSONResponse(content={'code': 500, 'message': error_msg})
@@ -0,0 +1,95 @@
1
+ """
2
+ {{ project_name }} - FastAPI Agent 服务入口
3
+ 创建时间: {{ create_time }}
4
+ 作者: {{ author }}
5
+ """
6
+ from fastapi import FastAPI
7
+ import uvicorn
8
+
9
+ # 路由导入
10
+ from api.sse.agent import router as SSEParseRouter
11
+ from api.query import router as QueryRouter
12
+ {% if feature_rabbitmq == 'true' %}
13
+ from tools.mq import {{ safe_upper_name }}_QUEUE_NAME, handle_{{ safe_identifier }}_messages
14
+ {% endif %}
15
+
16
+ # 基础服务导入
17
+ from sycommon.services import Services
18
+ from sycommon.middleware.middleware import Middleware
19
+
20
+ # 条件导入 - 服务注册与配置
21
+ {% if feature_nacos == 'true' %}
22
+ from sycommon.synacos.nacos_service import NacosService
23
+ {% endif %}
24
+
25
+ # 条件导入 - 日志与监控
26
+ {% if feature_kafka_log == 'true' %}
27
+ from sycommon.logging.kafka_log import KafkaLogger
28
+ {% endif %}
29
+ # 条件导入 - 数据存储
30
+ {% if feature_database == 'true' %}
31
+ from sycommon.database.database_service import DatabaseService
32
+ {% endif %}
33
+ {% if feature_redis == 'true' %}
34
+ from sycommon.database.redis_service import RedisService
35
+ {% endif %}
36
+ {% if feature_elasticsearch == 'true' %}
37
+ from sycommon.database.elasticsearch_service import ElasticsearchService
38
+ {% endif %}
39
+
40
+ # 条件导入 - 消息队列
41
+ {% if feature_rabbitmq == 'true' %}
42
+ from sycommon.models.mqlistener_config import RabbitMQListenerConfig
43
+ from sycommon.models.mqsend_config import RabbitMQSendConfig
44
+ {% endif %}
45
+
46
+
47
+ app = Services.plugins(
48
+ app=FastAPI(
49
+ title="{{ project_name }} API",
50
+ description="{{ project_name }} Agent服务文档",
51
+ ),
52
+ # 注册中间件
53
+ middleware=Middleware.setup_middleware,
54
+ {% if feature_nacos == 'true' %}
55
+ # 注册Nacos服务
56
+ nacos_service=NacosService.setup_nacos,
57
+ {% endif %}
58
+ {% if feature_kafka_log == 'true' %}
59
+ # 注册日志服务
60
+ logging_service=KafkaLogger.setup_logger,
61
+ {% endif %}
62
+ {% if feature_database == 'true' %}
63
+ # 注册数据库服务
64
+ database_service=(DatabaseService.setup_database, "{{ project_name }}"),
65
+ {% endif %}
66
+ {% if feature_redis == 'true' %}
67
+ # 注册Redis缓存服务
68
+ redis_service=RedisService.setup,
69
+ {% endif %}
70
+ {% if feature_elasticsearch == 'true' %}
71
+ # 注册Elasticsearch服务
72
+ elasticsearch_service=ElasticsearchService.init,
73
+ {% endif %}
74
+ {% if feature_rabbitmq == 'true' %}
75
+ # 注册RabbitMQ监听器
76
+ rabbitmq_listeners=[
77
+ RabbitMQListenerConfig(
78
+ queue_name={{ safe_upper_name }}_QUEUE_NAME,
79
+ handler=handle_{{ safe_identifier }}_messages,
80
+ ),
81
+ ],
82
+ # 注册RabbitMQ发送器
83
+ rabbitmq_senders=[
84
+ RabbitMQSendConfig(queue_name={{ safe_upper_name }}_QUEUE_NAME),
85
+ ],
86
+ {% endif %}
87
+ )
88
+
89
+ # 注册路由
90
+ app.include_router(SSEParseRouter)
91
+ app.include_router(QueryRouter)
92
+
93
+
94
+ if __name__ == '__main__':
95
+ uvicorn.run("app:app", **app.state.config)
@@ -0,0 +1,3 @@
1
+ """
2
+ 外部服务客户端
3
+ """
@@ -0,0 +1,8 @@
1
+ """
2
+ 数据库模块
3
+ """
4
+ {% if feature_database == 'true' %}
5
+ from .service import {{ safe_class_name }}Service
6
+
7
+ __all__ = ["{{ safe_class_name }}Service"]
8
+ {% endif %}
@@ -0,0 +1,8 @@
1
+ """
2
+ 数据库模型
3
+ """
4
+ {% if feature_database == 'true' %}
5
+ from .entity import {{ safe_class_name }}Model
6
+
7
+ __all__ = ["{{ safe_class_name }}Model"]
8
+ {% endif %}
@@ -0,0 +1,24 @@
1
+ {%- if feature_database == 'true' %}
2
+ """
3
+ 数据库模型
4
+ """
5
+ from datetime import datetime
6
+ from sqlalchemy import Column, DateTime, String, Integer
7
+ from sqlalchemy.ext.declarative import declarative_base
8
+
9
+ Base = declarative_base()
10
+
11
+
12
+ class {{ safe_class_name }}Model(Base):
13
+ """示例数据模型"""
14
+ __tablename__ = "{{ safe_identifier }}"
15
+
16
+ id = Column(String(64), primary_key=True)
17
+ name = Column(String(255), nullable=True)
18
+ status = Column(Integer, default=0)
19
+ created_at = Column(DateTime, default=datetime.utcnow)
20
+ updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
21
+ {%- else %}
22
+ # 数据库功能未启用
23
+ pass
24
+ {%- endif %}
@@ -0,0 +1,37 @@
1
+ {%- if feature_database == 'true' %}
2
+ """
3
+ 数据库服务层
4
+ """
5
+ from sycommon.database.database_service import DatabaseService
6
+
7
+
8
+ class {{ safe_class_name }}Service:
9
+ """数据库服务"""
10
+
11
+ def __init__(self):
12
+ self.db = DatabaseService.get_instance()
13
+
14
+ def create(self, **kwargs):
15
+ """创建记录"""
16
+ # TODO: 实现创建逻辑
17
+ pass
18
+
19
+ def get_by_id(self, id: str):
20
+ """根据 ID 查询"""
21
+ # TODO: 实现查询逻辑
22
+ pass
23
+
24
+ def update(self, id: str, **kwargs):
25
+ """更新记录"""
26
+ # TODO: 实现更新逻辑
27
+ pass
28
+
29
+ def delete(self, id: str):
30
+ """删除记录"""
31
+ # TODO: 实现删除逻辑
32
+ pass
33
+ {%- else %}
34
+ # 数据库功能未启用
35
+ # 如需使用数据库,请在初始化项目时添加 --with-db 参数
36
+ pass
37
+ {%- endif %}
@@ -0,0 +1,22 @@
1
+ from typing import Optional
2
+ from pydantic import BaseModel, Field
3
+
4
+
5
+ class ParseReq(BaseModel):
6
+ """解析请求"""
7
+ bizCode: str = Field(..., description="业务编码")
8
+ fileList: list[str] = Field(..., description="文件ID列表")
9
+ isFlat: Optional[bool] = Field(False, description="是否进行一维解析,默认False")
10
+ province: Optional[str] = Field(None, description="省份")
11
+ city: Optional[str] = Field(None, description="城市")
12
+
13
+
14
+ class ParseResp(BaseModel):
15
+ """解析响应"""
16
+ pass
17
+
18
+
19
+ class QueryReq(BaseModel):
20
+ """查询请求"""
21
+ bizCode: str = Field(..., description="业务编码")
22
+ fileList: list[str] = Field(..., description="文件ID列表")
@@ -0,0 +1,3 @@
1
+ """
2
+ 工具函数模块
3
+ """