sycommon-python-lib 0.2.1b5__tar.gz → 0.2.1b7__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 (255) hide show
  1. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/PKG-INFO +4 -4
  2. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/pyproject.toml +5 -4
  3. sycommon_python_lib-0.2.1b7/src/command/templates/__pycache__/__init__.cpython-311.pyc +0 -0
  4. sycommon_python_lib-0.2.1b7/src/command/templates/agent/README.md.tpl +88 -0
  5. sycommon_python_lib-0.2.1b7/src/command/templates/agent/agent/__init__.py.tpl +6 -0
  6. sycommon_python_lib-0.2.1b7/src/command/templates/agent/agent/main_agent.py.tpl +51 -0
  7. sycommon_python_lib-0.2.1b7/src/command/templates/agent/agent/nodes/__init__.py.tpl +6 -0
  8. sycommon_python_lib-0.2.1b7/src/command/templates/agent/agent/nodes/example_node.py.tpl +33 -0
  9. sycommon_python_lib-0.2.1b7/src/command/templates/agent/agent/states/__init__.py.tpl +6 -0
  10. sycommon_python_lib-0.2.1b7/src/command/templates/agent/agent/states/agent_state.py.tpl +30 -0
  11. sycommon_python_lib-0.2.1b7/src/command/templates/agent/api/__init__.py.tpl +3 -0
  12. sycommon_python_lib-0.2.1b7/src/command/templates/agent/api/query.py.tpl +30 -0
  13. sycommon_python_lib-0.2.1b7/src/command/templates/agent/api/sse/__init__.py.tpl +6 -0
  14. sycommon_python_lib-0.2.1b7/src/command/templates/agent/api/sse/agent.py.tpl +30 -0
  15. sycommon_python_lib-0.2.1b7/src/command/templates/agent/app.py.tpl +95 -0
  16. sycommon_python_lib-0.2.1b7/src/command/templates/agent/client/__init__.py.tpl +3 -0
  17. sycommon_python_lib-0.2.1b7/src/command/templates/agent/db/__init__.py.tpl +8 -0
  18. sycommon_python_lib-0.2.1b7/src/command/templates/agent/db/model/__init__.py.tpl +8 -0
  19. sycommon_python_lib-0.2.1b7/src/command/templates/agent/db/model/entity.py.tpl +24 -0
  20. sycommon_python_lib-0.2.1b7/src/command/templates/agent/db/service.py.tpl +37 -0
  21. sycommon_python_lib-0.2.1b7/src/command/templates/agent/model/__init__.py.tpl +3 -0
  22. sycommon_python_lib-0.2.1b7/src/command/templates/agent/model/parse.py.tpl +22 -0
  23. sycommon_python_lib-0.2.1b7/src/command/templates/agent/tools/__init__.py.tpl +3 -0
  24. sycommon_python_lib-0.2.1b7/src/command/templates/agent/tools/mq.py.tpl +66 -0
  25. sycommon_python_lib-0.2.1b7/src/command/templates/base/.env.tpl +10 -0
  26. sycommon_python_lib-0.2.1b7/src/command/templates/base/.gitignore.tpl +38 -0
  27. sycommon_python_lib-0.2.1b7/src/command/templates/base/Dockerfile.tpl +19 -0
  28. sycommon_python_lib-0.2.1b7/src/command/templates/base/README.md.tpl +62 -0
  29. sycommon_python_lib-0.2.1b7/src/command/templates/base/app.py.tpl +66 -0
  30. sycommon_python_lib-0.2.1b7/src/command/templates/base/app.yaml.tpl +30 -0
  31. sycommon_python_lib-0.2.1b7/src/command/templates/base/client/FileServiceClient.py.tpl +15 -0
  32. sycommon_python_lib-0.2.1b7/src/command/templates/base/model/file_info.py.tpl +14 -0
  33. sycommon_python_lib-0.2.1b7/src/command/templates/base/requirements.txt.tpl +32 -0
  34. sycommon_python_lib-0.2.1b7/src/command/templates/web/README.md.tpl +80 -0
  35. sycommon_python_lib-0.2.1b7/src/command/templates/web/api/__init__.py.tpl +6 -0
  36. sycommon_python_lib-0.2.1b7/src/command/templates/web/api/echo.py.tpl +28 -0
  37. sycommon_python_lib-0.2.1b7/src/command/templates/web/api/sse/__init__.py.tpl +8 -0
  38. sycommon_python_lib-0.2.1b7/src/command/templates/web/api/sse/echo.py.tpl +37 -0
  39. sycommon_python_lib-0.2.1b7/src/command/templates/web/app.py.tpl +99 -0
  40. sycommon_python_lib-0.2.1b7/src/command/templates/web/client/__init__.py.tpl +3 -0
  41. sycommon_python_lib-0.2.1b7/src/command/templates/web/model/__init__.py.tpl +3 -0
  42. sycommon_python_lib-0.2.1b7/src/command/templates/web/tools/__init__.py.tpl +3 -0
  43. sycommon_python_lib-0.2.1b7/src/command/templates/web/tools/mq.py.tpl +29 -0
  44. sycommon_python_lib-0.2.1b7/src/sycli/cdp/__init__.py +1 -0
  45. sycommon_python_lib-0.2.1b7/src/sycli/cdp/browser.py +214 -0
  46. sycommon_python_lib-0.2.1b7/src/sycli/cdp/capabilities/__init__.py +1 -0
  47. sycommon_python_lib-0.2.1b7/src/sycli/cdp/capabilities/console.py +85 -0
  48. sycommon_python_lib-0.2.1b7/src/sycli/cdp/capabilities/dom.py +53 -0
  49. sycommon_python_lib-0.2.1b7/src/sycli/cdp/capabilities/network.py +119 -0
  50. sycommon_python_lib-0.2.1b7/src/sycli/cdp/capabilities/page_errors.py +91 -0
  51. sycommon_python_lib-0.2.1b7/src/sycli/cdp/capabilities/performance.py +67 -0
  52. sycommon_python_lib-0.2.1b7/src/sycli/cdp/capabilities/screenshot.py +61 -0
  53. sycommon_python_lib-0.2.1b7/src/sycli/cdp/client.py +148 -0
  54. sycommon_python_lib-0.2.1b7/src/sycli/cdp/protocol.py +133 -0
  55. sycommon_python_lib-0.2.1b7/src/sycli/cdp/repl.py +267 -0
  56. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/cli.py +52 -0
  57. sycommon_python_lib-0.2.1b7/src/sycli/commands/cdp_cmd.py +271 -0
  58. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/llm_tokens.py +8 -0
  59. sycommon_python_lib-0.2.1b7/src/sycommon/sentry/__init__.py +0 -0
  60. sycommon_python_lib-0.2.1b7/src/sycommon/tools/__init__.py +0 -0
  61. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon_python_lib.egg-info/PKG-INFO +4 -4
  62. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon_python_lib.egg-info/SOURCES.txt +56 -0
  63. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon_python_lib.egg-info/requires.txt +3 -3
  64. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/README.md +0 -0
  65. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/setup.cfg +0 -0
  66. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/__init__.py +0 -0
  67. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/cli.py +0 -0
  68. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/core/__init__.py +0 -0
  69. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/core/console.py +0 -0
  70. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/core/models.py +0 -0
  71. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/core/project.py +0 -0
  72. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/core/utils.py +0 -0
  73. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/templates/__init__.py +0 -0
  74. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/templates/agent/__init__.py +0 -0
  75. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/templates/base/__init__.py +0 -0
  76. /sycommon_python_lib-0.2.1b5/src/sycommon/__init__.py → /sycommon_python_lib-0.2.1b7/src/command/templates/base/client/__init__.py.tpl +0 -0
  77. /sycommon_python_lib-0.2.1b5/src/sycommon/config/__init__.py → /sycommon_python_lib-0.2.1b7/src/command/templates/base/model/__init__.py.tpl +0 -0
  78. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/command/templates/web/__init__.py +0 -0
  79. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/__init__.py +0 -0
  80. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/__main__.py +0 -0
  81. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/agents/__init__.py +0 -0
  82. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/agents/factory.py +0 -0
  83. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/agents/prompts.py +0 -0
  84. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/__init__.py +0 -0
  85. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/chat_cmd.py +0 -0
  86. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/create_cmd.py +0 -0
  87. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/evaluate_cmd.py +0 -0
  88. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/init_cmd.py +0 -0
  89. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/memory_cmd.py +0 -0
  90. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/resume_cmd.py +0 -0
  91. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/rollback_cmd.py +0 -0
  92. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/commands/run_cmd.py +0 -0
  93. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/core/__init__.py +0 -0
  94. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/core/backend.py +0 -0
  95. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/core/config.py +0 -0
  96. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/core/display.py +0 -0
  97. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/core/git_integration.py +0 -0
  98. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/core/llm.py +0 -0
  99. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/core/state.py +0 -0
  100. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/evaluate/__init__.py +0 -0
  101. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/evaluate/api_evaluator.py +0 -0
  102. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/memory/__init__.py +0 -0
  103. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/memory/compressor.py +0 -0
  104. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/memory/full.py +0 -0
  105. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/memory/hot.py +0 -0
  106. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/memory/manager.py +0 -0
  107. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/memory/warm.py +0 -0
  108. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/mode/__init__.py +0 -0
  109. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/mode/create.py +0 -0
  110. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/mode/optimize.py +0 -0
  111. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/models/__init__.py +0 -0
  112. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/models/config_models.py +0 -0
  113. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/__init__.py +0 -0
  114. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/convergence.py +0 -0
  115. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/diagnosis.py +0 -0
  116. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/engine.py +0 -0
  117. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/environment.py +0 -0
  118. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/experience.py +0 -0
  119. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/harness_prompts.py +0 -0
  120. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/history.py +0 -0
  121. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/pre_validation.py +0 -0
  122. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/reward.py +0 -0
  123. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/strategy_bandit.py +0 -0
  124. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/strategy_generator.py +0 -0
  125. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/rl/strategy_prompts.py +0 -0
  126. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycli/skills/__init__.py +0 -0
  127. {sycommon_python_lib-0.2.1b5/src/sycommon/health → sycommon_python_lib-0.2.1b7/src/sycommon}/__init__.py +0 -0
  128. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/__init__.py +0 -0
  129. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/agent_manager.py +0 -0
  130. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/chat_events.py +0 -0
  131. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/deep_agent.py +0 -0
  132. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/multi_agent_team.py +0 -0
  133. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/sandbox/__init__.py +0 -0
  134. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/sandbox/file_ops.py +0 -0
  135. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
  136. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
  137. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
  138. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/agent/sandbox/session.py +0 -0
  139. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/auth/__init__.py +0 -0
  140. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/auth/ldap_service.py +0 -0
  141. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/Config.py +0 -0
  142. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/DatabaseConfig.py +0 -0
  143. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/ElasticsearchConfig.py +0 -0
  144. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/EmbeddingConfig.py +0 -0
  145. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/LLMConfig.py +0 -0
  146. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/LangfuseConfig.py +0 -0
  147. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/MQConfig.py +0 -0
  148. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/RedisConfig.py +0 -0
  149. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/RerankerConfig.py +0 -0
  150. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/SentryConfig.py +0 -0
  151. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/config/XxlJobConfig.py +0 -0
  152. {sycommon_python_lib-0.2.1b5/src/sycommon/llm → sycommon_python_lib-0.2.1b7/src/sycommon/config}/__init__.py +0 -0
  153. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/database/async_base_db_service.py +0 -0
  154. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/database/async_database_service.py +0 -0
  155. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/database/base_db_service.py +0 -0
  156. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/database/database_service.py +0 -0
  157. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/database/elasticsearch_service.py +0 -0
  158. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/database/redis_service.py +0 -0
  159. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/database/token_usage_db_service.py +0 -0
  160. {sycommon_python_lib-0.2.1b5/src/sycommon/logging → sycommon_python_lib-0.2.1b7/src/sycommon/health}/__init__.py +0 -0
  161. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/health/health_check.py +0 -0
  162. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/health/metrics.py +0 -0
  163. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/health/ping.py +0 -0
  164. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/heartbeat_process/__init__.py +0 -0
  165. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
  166. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
  167. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
  168. {sycommon_python_lib-0.2.1b5/src/sycommon/middleware → sycommon_python_lib-0.2.1b7/src/sycommon/llm}/__init__.py +0 -0
  169. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/embedding.py +0 -0
  170. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/get_llm.py +0 -0
  171. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/llm_logger.py +0 -0
  172. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
  173. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
  174. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/output_fixing_runnable.py +0 -0
  175. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/struct_token.py +0 -0
  176. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/sy_langfuse.py +0 -0
  177. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/token_usage_es_service.py +0 -0
  178. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
  179. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/llm/usage_token.py +0 -0
  180. {sycommon_python_lib-0.2.1b5/src/sycommon/models → sycommon_python_lib-0.2.1b7/src/sycommon/logging}/__init__.py +0 -0
  181. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/logging/async_sql_logger.py +0 -0
  182. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/logging/kafka_log.py +0 -0
  183. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/logging/logger_levels.py +0 -0
  184. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/logging/logger_wrapper.py +0 -0
  185. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/logging/process_logger.py +0 -0
  186. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/logging/sql_logger.py +0 -0
  187. {sycommon_python_lib-0.2.1b5/src/sycommon/notice → sycommon_python_lib-0.2.1b7/src/sycommon/middleware}/__init__.py +0 -0
  188. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/background_execution.py +0 -0
  189. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/context.py +0 -0
  190. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/cors.py +0 -0
  191. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/docs.py +0 -0
  192. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/exception.py +0 -0
  193. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/middleware.py +0 -0
  194. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/monitor_memory.py +0 -0
  195. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/mq.py +0 -0
  196. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/sandbox.py +0 -0
  197. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/timeout.py +0 -0
  198. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/token_tracking.py +0 -0
  199. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/middleware/traceid.py +0 -0
  200. {sycommon_python_lib-0.2.1b5/src/sycommon/sentry → sycommon_python_lib-0.2.1b7/src/sycommon/models}/__init__.py +0 -0
  201. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/base_http.py +0 -0
  202. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/log.py +0 -0
  203. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/mqlistener_config.py +0 -0
  204. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/mqmsg_model.py +0 -0
  205. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/mqsend_config.py +0 -0
  206. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/sandbox.py +0 -0
  207. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/sso_user.py +0 -0
  208. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/token_usage.py +0 -0
  209. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/token_usage_mysql.py +0 -0
  210. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/models/xxljob_handler_config.py +0 -0
  211. {sycommon_python_lib-0.2.1b5/src/sycommon/tools → sycommon_python_lib-0.2.1b7/src/sycommon/notice}/__init__.py +0 -0
  212. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/notice/uvicorn_monitor.py +0 -0
  213. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
  214. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
  215. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
  216. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
  217. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
  218. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
  219. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
  220. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
  221. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
  222. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/sentry/sy_sentry.py +0 -0
  223. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/services.py +0 -0
  224. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/sse/__init__.py +0 -0
  225. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/sse/event.py +0 -0
  226. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/sse/sse.py +0 -0
  227. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/__init__.py +0 -0
  228. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/example.py +0 -0
  229. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/example2.py +0 -0
  230. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/feign.py +0 -0
  231. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/feign_client.py +0 -0
  232. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/nacos_client_base.py +0 -0
  233. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/nacos_config_manager.py +0 -0
  234. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
  235. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/nacos_service.py +0 -0
  236. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
  237. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/nacos_service_registration.py +0 -0
  238. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/synacos/param.py +0 -0
  239. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tests/deep_agent_server.py +0 -0
  240. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tests/test_deep_agent.py +0 -0
  241. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tests/test_email.py +0 -0
  242. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tests/test_mq.py +0 -0
  243. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tools/async_utils.py +0 -0
  244. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tools/docs.py +0 -0
  245. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tools/env.py +0 -0
  246. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tools/merge_headers.py +0 -0
  247. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tools/snowflake.py +0 -0
  248. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tools/syemail.py +0 -0
  249. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/tools/timing.py +0 -0
  250. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/xxljob/__init__.py +0 -0
  251. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon/xxljob/xxljob_service.py +0 -0
  252. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
  253. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
  254. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
  255. {sycommon_python_lib-0.2.1b5 → sycommon_python_lib-0.2.1b7}/tests/test_sycli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sycommon-python-lib
3
- Version: 0.2.1b5
3
+ Version: 0.2.1b7
4
4
  Summary: Add your description here
5
5
  Requires-Python: >=3.11
6
6
  Description-Content-Type: text/markdown
@@ -9,7 +9,7 @@ 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.1
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
@@ -17,7 +17,7 @@ Requires-Dist: kafka-python>=2.3.1
17
17
  Requires-Dist: langchain>=1.2.15
18
18
  Requires-Dist: langchain-core>=1.2.28
19
19
  Requires-Dist: langchain-openai>=1.1.11
20
- Requires-Dist: langfuse>=4.1.0
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,7 +28,7 @@ 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.24
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sycommon-python-lib"
3
- version = "0.2.1b5"
3
+ version = "0.2.1b7"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -10,7 +10,7 @@ dependencies = [
10
10
  "aiomysql>=0.3.2",
11
11
  "anyio>=4.12.1",
12
12
  "decorator>=5.2.1",
13
- "deepagents>=0.5.1",
13
+ "deepagents>=0.5.2",
14
14
  "elasticsearch>=9.3.0",
15
15
  "fastapi>=0.135.3",
16
16
  "jinja2>=3.1.6",
@@ -18,7 +18,7 @@ dependencies = [
18
18
  "langchain>=1.2.15",
19
19
  "langchain-core>=1.2.28",
20
20
  "langchain-openai>=1.1.11",
21
- "langfuse>=4.1.0",
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,7 +29,7 @@ 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.24",
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",
@@ -42,6 +42,7 @@ dependencies = [
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
+ """
@@ -0,0 +1,66 @@
1
+ {%- if feature_rabbitmq == 'true' %}
2
+ """
3
+ MQ 消息处理
4
+
5
+ 支持后台异步任务处理,使用信号量控制并发数
6
+ """
7
+ import asyncio
8
+ import traceback
9
+ from typing import Coroutine
10
+ from aio_pika.abc import AbstractIncomingMessage
11
+
12
+ from agent.main_agent import main_agent
13
+ from model.parse import ParseReq
14
+ from sycommon.logging.kafka_log import SYLogger
15
+ from sycommon.models.mqmsg_model import MQMsgModel
16
+
17
+
18
+ # 队列名称
19
+ {{ safe_upper_name }}_QUEUE_NAME = "jms_{{ safe_identifier }}_queue"
20
+
21
+ # 后台任务并发限制
22
+ _MAX_CONCURRENT_TASKS = 2
23
+ _task_semaphore: asyncio.Semaphore = None
24
+
25
+
26
+ def _get_semaphore() -> asyncio.Semaphore:
27
+ """懒初始化信号量(需要在事件循环内创建)"""
28
+ global _task_semaphore
29
+ if _task_semaphore is None:
30
+ _task_semaphore = asyncio.Semaphore(_MAX_CONCURRENT_TASKS)
31
+ return _task_semaphore
32
+
33
+
34
+ async def handle_{{ safe_identifier }}_messages(
35
+ parsed_data: MQMsgModel,
36
+ original_message: AbstractIncomingMessage
37
+ ) -> Coroutine:
38
+ """
39
+ 处理 MQ 消息
40
+
41
+ 先 ACK 再处理:handler 立即返回让库去 ACK,
42
+ 实际处理放到后台 Task,避免长任务导致 MQ 连接断开
43
+ """
44
+ SYLogger.set_trace_id(parsed_data.correlationDataId)
45
+ SYLogger.info(f"收到消息: {parsed_data.model_dump_json()}")
46
+
47
+ async def _process():
48
+ async with _get_semaphore():
49
+ try:
50
+ req = ParseReq(
51
+ bizCode=parsed_data.correlationDataId,
52
+ fileList=[str(f) for f in parsed_data.fileList],
53
+ )
54
+ # 流式处理,消费事件即可
55
+ async for _ in main_agent(req):
56
+ pass
57
+ SYLogger.info("消息处理完成")
58
+ except Exception as e:
59
+ SYLogger.error(f"后台任务处理失败: {traceback.format_exc()}")
60
+
61
+ asyncio.create_task(_process())
62
+ {%- else %}
63
+ # RabbitMQ 功能未启用
64
+ # 如需使用消息队列,请在初始化项目时添加 --with-mq 参数
65
+ pass
66
+ {%- endif %}
@@ -0,0 +1,10 @@
1
+ # nacos version
2
+ VERSION=xxxx
3
+ # nacos register
4
+ REGISTER_NACOS=false
5
+ # print log
6
+ DEV_LOG=false
7
+ # config
8
+ DEV_CONFIG=true
9
+ # is dev
10
+ IS_DEV=true