synapse-sdk 1.0.0a13__py3-none-any.whl → 2025.11.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of synapse-sdk might be problematic. Click here for more details.

Files changed (339) hide show
  1. synapse_sdk/__init__.py +24 -0
  2. synapse_sdk/cli/__init__.py +310 -5
  3. synapse_sdk/cli/alias/__init__.py +22 -0
  4. synapse_sdk/cli/alias/create.py +36 -0
  5. synapse_sdk/cli/alias/dataclass.py +31 -0
  6. synapse_sdk/cli/alias/default.py +16 -0
  7. synapse_sdk/cli/alias/delete.py +15 -0
  8. synapse_sdk/cli/alias/list.py +19 -0
  9. synapse_sdk/cli/alias/read.py +15 -0
  10. synapse_sdk/cli/alias/update.py +17 -0
  11. synapse_sdk/cli/alias/utils.py +61 -0
  12. synapse_sdk/cli/code_server.py +687 -0
  13. synapse_sdk/cli/config.py +440 -0
  14. synapse_sdk/cli/devtools.py +90 -0
  15. synapse_sdk/cli/plugin/__init__.py +33 -0
  16. synapse_sdk/cli/{create_plugin.py → plugin/create.py} +2 -2
  17. synapse_sdk/cli/plugin/publish.py +45 -0
  18. synapse_sdk/{plugins/cli → cli/plugin}/run.py +12 -5
  19. synapse_sdk/clients/agent/__init__.py +9 -3
  20. synapse_sdk/clients/agent/container.py +133 -0
  21. synapse_sdk/clients/agent/core.py +19 -0
  22. synapse_sdk/clients/agent/ray.py +298 -9
  23. synapse_sdk/clients/backend/__init__.py +41 -12
  24. synapse_sdk/clients/backend/annotation.py +13 -5
  25. synapse_sdk/clients/backend/core.py +59 -0
  26. synapse_sdk/clients/backend/data_collection.py +186 -0
  27. synapse_sdk/clients/backend/hitl.py +17 -0
  28. synapse_sdk/clients/backend/integration.py +19 -4
  29. synapse_sdk/clients/backend/ml.py +10 -7
  30. synapse_sdk/clients/backend/models.py +78 -0
  31. synapse_sdk/clients/base.py +381 -34
  32. synapse_sdk/clients/ray/serve.py +2 -0
  33. synapse_sdk/clients/validators/collections.py +31 -0
  34. synapse_sdk/devtools/config.py +94 -0
  35. synapse_sdk/devtools/docs/.gitignore +20 -0
  36. synapse_sdk/devtools/docs/README.md +41 -0
  37. synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +12 -0
  38. synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +44 -0
  39. synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  40. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  41. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +29 -0
  42. synapse_sdk/devtools/docs/blog/authors.yml +25 -0
  43. synapse_sdk/devtools/docs/blog/tags.yml +19 -0
  44. synapse_sdk/devtools/docs/docs/api/clients/agent.md +43 -0
  45. synapse_sdk/devtools/docs/docs/api/clients/annotation-mixin.md +378 -0
  46. synapse_sdk/devtools/docs/docs/api/clients/backend.md +420 -0
  47. synapse_sdk/devtools/docs/docs/api/clients/base.md +257 -0
  48. synapse_sdk/devtools/docs/docs/api/clients/core-mixin.md +477 -0
  49. synapse_sdk/devtools/docs/docs/api/clients/data-collection-mixin.md +422 -0
  50. synapse_sdk/devtools/docs/docs/api/clients/hitl-mixin.md +554 -0
  51. synapse_sdk/devtools/docs/docs/api/clients/index.md +391 -0
  52. synapse_sdk/devtools/docs/docs/api/clients/integration-mixin.md +571 -0
  53. synapse_sdk/devtools/docs/docs/api/clients/ml-mixin.md +578 -0
  54. synapse_sdk/devtools/docs/docs/api/clients/ray.md +342 -0
  55. synapse_sdk/devtools/docs/docs/api/index.md +52 -0
  56. synapse_sdk/devtools/docs/docs/api/plugins/categories.md +43 -0
  57. synapse_sdk/devtools/docs/docs/api/plugins/models.md +114 -0
  58. synapse_sdk/devtools/docs/docs/api/plugins/utils.md +328 -0
  59. synapse_sdk/devtools/docs/docs/categories.md +0 -0
  60. synapse_sdk/devtools/docs/docs/cli-usage.md +280 -0
  61. synapse_sdk/devtools/docs/docs/concepts/index.md +38 -0
  62. synapse_sdk/devtools/docs/docs/configuration.md +83 -0
  63. synapse_sdk/devtools/docs/docs/contributing.md +306 -0
  64. synapse_sdk/devtools/docs/docs/examples/index.md +29 -0
  65. synapse_sdk/devtools/docs/docs/faq.md +179 -0
  66. synapse_sdk/devtools/docs/docs/features/converters/index.md +455 -0
  67. synapse_sdk/devtools/docs/docs/features/index.md +24 -0
  68. synapse_sdk/devtools/docs/docs/features/utils/file.md +415 -0
  69. synapse_sdk/devtools/docs/docs/features/utils/network.md +378 -0
  70. synapse_sdk/devtools/docs/docs/features/utils/storage.md +57 -0
  71. synapse_sdk/devtools/docs/docs/features/utils/types.md +51 -0
  72. synapse_sdk/devtools/docs/docs/installation.md +94 -0
  73. synapse_sdk/devtools/docs/docs/introduction.md +47 -0
  74. synapse_sdk/devtools/docs/docs/plugins/categories/neural-net-plugins/train-action-overview.md +814 -0
  75. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
  76. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
  77. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
  78. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
  79. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
  80. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
  81. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
  82. synapse_sdk/devtools/docs/docs/plugins/export-plugins.md +1092 -0
  83. synapse_sdk/devtools/docs/docs/plugins/plugins.md +852 -0
  84. synapse_sdk/devtools/docs/docs/quickstart.md +78 -0
  85. synapse_sdk/devtools/docs/docs/troubleshooting.md +519 -0
  86. synapse_sdk/devtools/docs/docs/tutorial-basics/_category_.json +8 -0
  87. synapse_sdk/devtools/docs/docs/tutorial-basics/congratulations.md +23 -0
  88. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-blog-post.md +34 -0
  89. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-document.md +57 -0
  90. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-page.md +43 -0
  91. synapse_sdk/devtools/docs/docs/tutorial-basics/deploy-your-site.md +31 -0
  92. synapse_sdk/devtools/docs/docs/tutorial-basics/markdown-features.mdx +152 -0
  93. synapse_sdk/devtools/docs/docs/tutorial-extras/_category_.json +7 -0
  94. synapse_sdk/devtools/docs/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
  95. synapse_sdk/devtools/docs/docs/tutorial-extras/img/localeDropdown.png +0 -0
  96. synapse_sdk/devtools/docs/docs/tutorial-extras/manage-docs-versions.md +55 -0
  97. synapse_sdk/devtools/docs/docs/tutorial-extras/translate-your-site.md +88 -0
  98. synapse_sdk/devtools/docs/docusaurus.config.ts +148 -0
  99. synapse_sdk/devtools/docs/i18n/ko/code.json +325 -0
  100. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/agent.md +43 -0
  101. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/annotation-mixin.md +289 -0
  102. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/backend.md +420 -0
  103. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/base.md +257 -0
  104. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/core-mixin.md +417 -0
  105. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/data-collection-mixin.md +356 -0
  106. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/hitl-mixin.md +192 -0
  107. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/index.md +391 -0
  108. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/integration-mixin.md +479 -0
  109. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ml-mixin.md +284 -0
  110. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ray.md +342 -0
  111. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/index.md +52 -0
  112. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/plugins/models.md +114 -0
  113. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/categories.md +0 -0
  114. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/cli-usage.md +280 -0
  115. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/concepts/index.md +38 -0
  116. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/configuration.md +83 -0
  117. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/contributing.md +306 -0
  118. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/examples/index.md +29 -0
  119. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/faq.md +179 -0
  120. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/converters/index.md +30 -0
  121. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/index.md +24 -0
  122. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/file.md +415 -0
  123. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/network.md +378 -0
  124. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/storage.md +60 -0
  125. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/types.md +51 -0
  126. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/installation.md +94 -0
  127. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +47 -0
  128. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/neural-net-plugins/train-action-overview.md +815 -0
  129. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
  130. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
  131. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
  132. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
  133. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
  134. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
  135. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
  136. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/export-plugins.md +1092 -0
  137. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/plugins.md +117 -0
  138. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/quickstart.md +78 -0
  139. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/troubleshooting.md +519 -0
  140. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +34 -0
  141. synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/footer.json +42 -0
  142. synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/navbar.json +18 -0
  143. synapse_sdk/devtools/docs/package-lock.json +18784 -0
  144. synapse_sdk/devtools/docs/package.json +48 -0
  145. synapse_sdk/devtools/docs/sidebars.ts +122 -0
  146. synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +71 -0
  147. synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +11 -0
  148. synapse_sdk/devtools/docs/src/css/custom.css +30 -0
  149. synapse_sdk/devtools/docs/src/pages/index.module.css +23 -0
  150. synapse_sdk/devtools/docs/src/pages/index.tsx +21 -0
  151. synapse_sdk/devtools/docs/src/pages/markdown-page.md +7 -0
  152. synapse_sdk/devtools/docs/static/.nojekyll +0 -0
  153. synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
  154. synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
  155. synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
  156. synapse_sdk/devtools/docs/static/img/logo.png +0 -0
  157. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
  158. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +170 -0
  159. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +40 -0
  160. synapse_sdk/devtools/docs/tsconfig.json +8 -0
  161. synapse_sdk/devtools/server.py +41 -0
  162. synapse_sdk/devtools/streamlit_app/__init__.py +5 -0
  163. synapse_sdk/devtools/streamlit_app/app.py +128 -0
  164. synapse_sdk/devtools/streamlit_app/services/__init__.py +11 -0
  165. synapse_sdk/devtools/streamlit_app/services/job_service.py +233 -0
  166. synapse_sdk/devtools/streamlit_app/services/plugin_service.py +236 -0
  167. synapse_sdk/devtools/streamlit_app/services/serve_service.py +95 -0
  168. synapse_sdk/devtools/streamlit_app/ui/__init__.py +15 -0
  169. synapse_sdk/devtools/streamlit_app/ui/config_tab.py +76 -0
  170. synapse_sdk/devtools/streamlit_app/ui/deployment_tab.py +66 -0
  171. synapse_sdk/devtools/streamlit_app/ui/http_tab.py +125 -0
  172. synapse_sdk/devtools/streamlit_app/ui/jobs_tab.py +573 -0
  173. synapse_sdk/devtools/streamlit_app/ui/serve_tab.py +346 -0
  174. synapse_sdk/devtools/streamlit_app/ui/status_bar.py +118 -0
  175. synapse_sdk/devtools/streamlit_app/utils/__init__.py +40 -0
  176. synapse_sdk/devtools/streamlit_app/utils/json_viewer.py +197 -0
  177. synapse_sdk/devtools/streamlit_app/utils/log_formatter.py +38 -0
  178. synapse_sdk/devtools/streamlit_app/utils/styles.py +241 -0
  179. synapse_sdk/devtools/streamlit_app/utils/ui_components.py +289 -0
  180. synapse_sdk/devtools/streamlit_app.py +10 -0
  181. synapse_sdk/loggers.py +74 -9
  182. synapse_sdk/plugins/README.md +1340 -0
  183. synapse_sdk/plugins/__init__.py +0 -13
  184. synapse_sdk/plugins/categories/base.py +145 -30
  185. synapse_sdk/plugins/categories/data_validation/actions/validation.py +72 -0
  186. synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +33 -5
  187. synapse_sdk/plugins/categories/export/actions/__init__.py +3 -0
  188. synapse_sdk/plugins/categories/export/actions/export/__init__.py +28 -0
  189. synapse_sdk/plugins/categories/export/actions/export/action.py +165 -0
  190. synapse_sdk/plugins/categories/export/actions/export/enums.py +113 -0
  191. synapse_sdk/plugins/categories/export/actions/export/exceptions.py +53 -0
  192. synapse_sdk/plugins/categories/export/actions/export/models.py +74 -0
  193. synapse_sdk/plugins/categories/export/actions/export/run.py +195 -0
  194. synapse_sdk/plugins/categories/export/actions/export/utils.py +187 -0
  195. synapse_sdk/plugins/categories/export/templates/config.yaml +21 -0
  196. synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +390 -0
  197. synapse_sdk/plugins/categories/export/templates/plugin/export.py +160 -0
  198. synapse_sdk/plugins/categories/neural_net/actions/deployment.py +29 -14
  199. synapse_sdk/plugins/categories/neural_net/actions/inference.py +13 -1
  200. synapse_sdk/plugins/categories/neural_net/actions/train.py +1084 -38
  201. synapse_sdk/plugins/categories/neural_net/actions/tune.py +534 -0
  202. synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
  203. synapse_sdk/plugins/categories/neural_net/base/inference.py +37 -0
  204. synapse_sdk/plugins/categories/neural_net/templates/config.yaml +30 -5
  205. synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +26 -10
  206. synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +4 -0
  207. synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/__init__.py +3 -0
  208. synapse_sdk/plugins/categories/{export/actions/export.py → pre_annotation/actions/pre_annotation/action.py} +4 -4
  209. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/__init__.py +28 -0
  210. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/action.py +145 -0
  211. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/enums.py +269 -0
  212. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/exceptions.py +14 -0
  213. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/factory.py +76 -0
  214. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/models.py +97 -0
  215. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/orchestrator.py +250 -0
  216. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/run.py +64 -0
  217. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/__init__.py +17 -0
  218. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/annotation.py +287 -0
  219. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/base.py +170 -0
  220. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/extraction.py +83 -0
  221. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/metrics.py +87 -0
  222. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/preprocessor.py +127 -0
  223. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/validation.py +143 -0
  224. synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +966 -0
  225. synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +19 -0
  226. synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +40 -0
  227. synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +5 -2
  228. synapse_sdk/plugins/categories/upload/__init__.py +0 -0
  229. synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
  230. synapse_sdk/plugins/categories/upload/actions/upload/__init__.py +19 -0
  231. synapse_sdk/plugins/categories/upload/actions/upload/action.py +232 -0
  232. synapse_sdk/plugins/categories/upload/actions/upload/context.py +185 -0
  233. synapse_sdk/plugins/categories/upload/actions/upload/enums.py +471 -0
  234. synapse_sdk/plugins/categories/upload/actions/upload/exceptions.py +36 -0
  235. synapse_sdk/plugins/categories/upload/actions/upload/factory.py +138 -0
  236. synapse_sdk/plugins/categories/upload/actions/upload/models.py +203 -0
  237. synapse_sdk/plugins/categories/upload/actions/upload/orchestrator.py +183 -0
  238. synapse_sdk/plugins/categories/upload/actions/upload/registry.py +113 -0
  239. synapse_sdk/plugins/categories/upload/actions/upload/run.py +179 -0
  240. synapse_sdk/plugins/categories/upload/actions/upload/steps/__init__.py +1 -0
  241. synapse_sdk/plugins/categories/upload/actions/upload/steps/base.py +107 -0
  242. synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py +62 -0
  243. synapse_sdk/plugins/categories/upload/actions/upload/steps/collection.py +63 -0
  244. synapse_sdk/plugins/categories/upload/actions/upload/steps/generate.py +84 -0
  245. synapse_sdk/plugins/categories/upload/actions/upload/steps/initialize.py +82 -0
  246. synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py +235 -0
  247. synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py +203 -0
  248. synapse_sdk/plugins/categories/upload/actions/upload/steps/upload.py +97 -0
  249. synapse_sdk/plugins/categories/upload/actions/upload/steps/validate.py +71 -0
  250. synapse_sdk/plugins/categories/upload/actions/upload/strategies/__init__.py +1 -0
  251. synapse_sdk/plugins/categories/upload/actions/upload/strategies/base.py +82 -0
  252. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/__init__.py +1 -0
  253. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/batch.py +39 -0
  254. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/single.py +29 -0
  255. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/__init__.py +1 -0
  256. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/flat.py +258 -0
  257. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/recursive.py +281 -0
  258. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/__init__.py +1 -0
  259. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/excel.py +174 -0
  260. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/none.py +16 -0
  261. synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/__init__.py +1 -0
  262. synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/sync.py +84 -0
  263. synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/__init__.py +1 -0
  264. synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/default.py +60 -0
  265. synapse_sdk/plugins/categories/upload/actions/upload/utils.py +250 -0
  266. synapse_sdk/plugins/categories/upload/templates/README.md +470 -0
  267. synapse_sdk/plugins/categories/upload/templates/config.yaml +33 -0
  268. synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +294 -0
  269. synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +102 -0
  270. synapse_sdk/plugins/enums.py +3 -1
  271. synapse_sdk/plugins/models.py +140 -16
  272. synapse_sdk/plugins/templates/plugin-config-schema.json +406 -0
  273. synapse_sdk/plugins/templates/schema.json +491 -0
  274. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +1 -0
  275. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +1 -1
  276. synapse_sdk/plugins/utils/__init__.py +46 -0
  277. synapse_sdk/plugins/utils/actions.py +119 -0
  278. synapse_sdk/plugins/utils/config.py +203 -0
  279. synapse_sdk/plugins/utils/legacy.py +95 -0
  280. synapse_sdk/plugins/utils/ray_gcs.py +66 -0
  281. synapse_sdk/plugins/utils/registry.py +58 -0
  282. synapse_sdk/shared/__init__.py +25 -0
  283. synapse_sdk/shared/enums.py +93 -0
  284. synapse_sdk/types.py +19 -0
  285. synapse_sdk/utils/converters/__init__.py +240 -0
  286. synapse_sdk/utils/converters/coco/__init__.py +0 -0
  287. synapse_sdk/utils/converters/coco/from_dm.py +322 -0
  288. synapse_sdk/utils/converters/coco/to_dm.py +215 -0
  289. synapse_sdk/utils/converters/dm/__init__.py +56 -0
  290. synapse_sdk/utils/converters/dm/from_v1.py +627 -0
  291. synapse_sdk/utils/converters/dm/to_v1.py +367 -0
  292. synapse_sdk/utils/converters/pascal/__init__.py +0 -0
  293. synapse_sdk/utils/converters/pascal/from_dm.py +244 -0
  294. synapse_sdk/utils/converters/pascal/to_dm.py +214 -0
  295. synapse_sdk/utils/converters/yolo/__init__.py +0 -0
  296. synapse_sdk/utils/converters/yolo/from_dm.py +384 -0
  297. synapse_sdk/utils/converters/yolo/to_dm.py +267 -0
  298. synapse_sdk/utils/dataset.py +46 -0
  299. synapse_sdk/utils/encryption.py +158 -0
  300. synapse_sdk/utils/file/__init__.py +39 -0
  301. synapse_sdk/utils/file/archive.py +32 -0
  302. synapse_sdk/utils/file/checksum.py +56 -0
  303. synapse_sdk/utils/file/chunking.py +31 -0
  304. synapse_sdk/utils/file/download.py +385 -0
  305. synapse_sdk/utils/file/encoding.py +40 -0
  306. synapse_sdk/utils/file/io.py +22 -0
  307. synapse_sdk/utils/file/video/__init__.py +29 -0
  308. synapse_sdk/utils/file/video/transcode.py +307 -0
  309. synapse_sdk/utils/file.py.backup +301 -0
  310. synapse_sdk/utils/http.py +138 -0
  311. synapse_sdk/utils/network.py +309 -0
  312. synapse_sdk/utils/storage/__init__.py +72 -0
  313. synapse_sdk/utils/storage/providers/__init__.py +183 -0
  314. synapse_sdk/utils/storage/providers/file_system.py +134 -0
  315. synapse_sdk/utils/storage/providers/gcp.py +13 -0
  316. synapse_sdk/utils/storage/providers/http.py +190 -0
  317. synapse_sdk/utils/storage/providers/s3.py +91 -0
  318. synapse_sdk/utils/storage/providers/sftp.py +47 -0
  319. synapse_sdk/utils/storage/registry.py +17 -0
  320. synapse_sdk-2025.11.7.dist-info/METADATA +122 -0
  321. synapse_sdk-2025.11.7.dist-info/RECORD +386 -0
  322. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/WHEEL +1 -1
  323. synapse_sdk/clients/backend/dataset.py +0 -51
  324. synapse_sdk/plugins/categories/import/actions/import.py +0 -10
  325. synapse_sdk/plugins/cli/__init__.py +0 -21
  326. synapse_sdk/plugins/cli/publish.py +0 -37
  327. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env +0 -24
  328. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env.dist +0 -24
  329. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/main.py +0 -4
  330. synapse_sdk/plugins/utils.py +0 -50
  331. synapse_sdk/utils/file.py +0 -87
  332. synapse_sdk/utils/storage.py +0 -91
  333. synapse_sdk-1.0.0a13.dist-info/METADATA +0 -43
  334. synapse_sdk-1.0.0a13.dist-info/RECORD +0 -111
  335. /synapse_sdk/{plugins/categories/import → clients/validators}/__init__.py +0 -0
  336. /synapse_sdk/{plugins/categories/import/actions → devtools}/__init__.py +0 -0
  337. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/entry_points.txt +0 -0
  338. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info/licenses}/LICENSE +0 -0
  339. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,378 @@
1
+ ---
2
+ id: network
3
+ title: Network Utilities
4
+ sidebar_position: 4
5
+ ---
6
+
7
+ # Network Utilities
8
+
9
+ 스트리밍, 유효성 검사 및 연결 관리를 위한 포괄적인 네트워킹 유틸리티입니다.
10
+
11
+ ## 개요
12
+
13
+ `synapse_sdk.utils.network` 모듈은 Ray 및 기타 클라이언트에서 안전하고 강력한 스트리밍 작업 및 입력 유효성 검사를 위해 사용하는 필수 네트워킹 구성 요소를 제공합니다.
14
+
15
+ ## StreamLimits
16
+
17
+ 리소스 고갈을 방지하기 위한 스트리밍 작업 제한을 위한 구성 클래스입니다.
18
+
19
+ ### Constructor
20
+
21
+ ```python
22
+ from synapse_sdk.utils.network import StreamLimits
23
+
24
+ limits = StreamLimits(
25
+ max_messages=10000,
26
+ max_lines=50000,
27
+ max_bytes=50 * 1024 * 1024, # 50MB
28
+ max_message_size=10240, # 10KB
29
+ queue_size=1000,
30
+ exception_queue_size=10
31
+ )
32
+ ```
33
+
34
+ ### Parameters
35
+
36
+ - `max_messages` (int): 처리할 최대 메시지 수 (기본값: 10,000)
37
+ - `max_lines` (int): 스트리밍할 최대 라인 수 (기본값: 50,000)
38
+ - `max_bytes` (int): 처리할 최대 총 바이트 (기본값: 50MB)
39
+ - `max_message_size` (int): 메시지당 최대 크기 (기본값: 10KB)
40
+ - `queue_size` (int): 메시지 버퍼링을 위한 내부 큐 크기 (기본값: 1,000)
41
+ - `exception_queue_size` (int): 예외 처리를 위한 큐 크기 (기본값: 10)
42
+
43
+ ### 사용법
44
+
45
+ ```python
46
+ # 대용량 스트리밍을 위한 사용자 정의 제한
47
+ custom_limits = StreamLimits(
48
+ max_messages=50000,
49
+ max_lines=100000,
50
+ max_bytes=100 * 1024 * 1024 # 100MB
51
+ )
52
+
53
+ # 스트림 매니저와 함께 사용
54
+ websocket_manager = WebSocketStreamManager(thread_pool, custom_limits)
55
+ ```
56
+
57
+ ## WebSocketStreamManager
58
+
59
+ 자동 오류 처리 및 리소스 정리를 통한 실시간 로그 스트리밍을 위해 WebSocket 연결을 관리합니다.
60
+
61
+ ### Constructor
62
+
63
+ ```python
64
+ from synapse_sdk.utils.network import WebSocketStreamManager
65
+ from concurrent.futures import ThreadPoolExecutor
66
+
67
+ thread_pool = ThreadPoolExecutor(max_workers=5)
68
+ limits = StreamLimits()
69
+ manager = WebSocketStreamManager(thread_pool, limits)
70
+ ```
71
+
72
+ ### Methods
73
+
74
+ #### `stream_logs(ws_url, headers, timeout, context)`
75
+
76
+ WebSocket 엔드포인트에서 로그를 스트리밍합니다.
77
+
78
+ ```python
79
+ # 오류 처리가 있는 로그 스트리밍
80
+ try:
81
+ for log_line in manager.stream_logs(
82
+ ws_url="wss://ray-cluster:8265/logs/ws/",
83
+ headers={"Authorization": "Bearer token"},
84
+ timeout=30.0,
85
+ context="job job-12345"
86
+ ):
87
+ print(log_line.strip())
88
+ except ClientError as e:
89
+ print(f"스트리밍 실패: {e}")
90
+ ```
91
+
92
+ ### 오류 처리
93
+
94
+ - **500**: WebSocket 라이브러리 사용 불가
95
+ - **503**: 연결 실패
96
+ - **408**: 연결 timeout
97
+ - **429**: 스트림 제한 초과
98
+
99
+ ## HTTPStreamManager
100
+
101
+ 신뢰할 수 있는 로그 스트리밍을 위해 청크 전송 인코딩을 사용하여 HTTP 스트리밍 연결을 관리합니다.
102
+
103
+ ### Constructor
104
+
105
+ ```python
106
+ from synapse_sdk.utils.network import HTTPStreamManager
107
+ import requests
108
+
109
+ session = requests.Session()
110
+ limits = StreamLimits()
111
+ manager = HTTPStreamManager(session, limits)
112
+ ```
113
+
114
+ ### Methods
115
+
116
+ #### `stream_logs(url, headers, timeout, context)`
117
+
118
+ 청크 전송 인코딩을 사용하여 HTTP 엔드포인트에서 로그를 스트리밍합니다.
119
+
120
+ ```python
121
+ # 사용자 정의 timeout으로 로그 스트리밍
122
+ for log_line in manager.stream_logs(
123
+ url="http://ray-cluster:8265/logs/stream",
124
+ headers={"Authorization": "Bearer token"},
125
+ timeout=(5, 60), # (connect, read) timeout
126
+ context="job job-12345"
127
+ ):
128
+ if 'ERROR' in log_line:
129
+ print(f"오류 감지: {log_line}")
130
+ ```
131
+
132
+ ### 기능
133
+
134
+ - **자동 리소스 정리**: HTTP 응답이 적절하게 닫힘
135
+ - **라인 크기 필터링**: 대용량 라인 (>10KB)이 자동으로 필터링됨
136
+ - **스트림 제한**: 메모리 고갈 방지
137
+ - **오류 복구**: 적절한 정리를 통한 강력한 오류 처리
138
+
139
+ ### 오류 처리
140
+
141
+ - **503**: 연결 거부 또는 네트워크 오류
142
+ - **408**: 연결 또는 읽기 timeout
143
+ - **404**: 엔드포인트를 찾을 수 없음
144
+ - **429**: 스트림 제한 초과
145
+ - **500**: 예상치 못한 스트리밍 오류
146
+
147
+ ## 유효성 검사 함수
148
+
149
+ ### `validate_resource_id(resource_id, resource_name='resource')`
150
+
151
+ 주입 공격을 방지하기 위해 리소스 식별자를 유효성 검사합니다.
152
+
153
+ ```python
154
+ from synapse_sdk.utils.network import validate_resource_id
155
+
156
+ # 유효한 사용
157
+ job_id = validate_resource_id('job-12345', 'job')
158
+ node_id = validate_resource_id('node_abc_123', 'node')
159
+
160
+ # 잘못된 사용은 ClientError를 발생시킴
161
+ try:
162
+ validate_resource_id('job/../malicious', 'job')
163
+ except ClientError as e:
164
+ print(f"잘못된 ID: {e}") # Status 400
165
+ ```
166
+
167
+ #### 유효성 검사 규칙
168
+
169
+ - 비어있으면 안됨
170
+ - 영숫자, 하이픈, 밑줄만 허용
171
+ - 최대 길이: 100자
172
+ - 패턴: `^[a-zA-Z0-9\-_]+$`
173
+
174
+ #### Parameters
175
+
176
+ - `resource_id` (Any): 유효성 검사할 ID (문자열로 변환됨)
177
+ - `resource_name` (str): 오류 메시지를 위한 이름 (기본값: 'resource')
178
+
179
+ #### Returns
180
+
181
+ - `str`: 유효성 검사된 리소스 ID
182
+
183
+ #### Raises
184
+
185
+ - `ClientError` (400): 유효성 검사 실패 시
186
+
187
+ ### `validate_timeout(timeout, max_timeout=300)`
188
+
189
+ 경계 확인을 통한 timeout 값 유효성 검사입니다.
190
+
191
+ ```python
192
+ from synapse_sdk.utils.network import validate_timeout
193
+
194
+ # 유효한 timeout
195
+ timeout = validate_timeout(30) # 30초
196
+ timeout = validate_timeout(10.5) # 10.5초
197
+
198
+ # 잘못된 timeout은 ClientError를 발생시킴
199
+ try:
200
+ validate_timeout(-1) # 음수 timeout
201
+ validate_timeout(500) # 최대값 초과
202
+ except ClientError as e:
203
+ print(f"잘못된 timeout: {e}") # Status 400
204
+ ```
205
+
206
+ #### Parameters
207
+
208
+ - `timeout` (int|float): 초 단위 timeout 값
209
+ - `max_timeout` (int): 허용되는 최대 timeout (기본값: 300)
210
+
211
+ #### Returns
212
+
213
+ - `float`: 유효성 검사된 timeout 값
214
+
215
+ #### Raises
216
+
217
+ - `ClientError` (400): timeout이 유효하지 않은 경우
218
+
219
+ ## URL Utilities
220
+
221
+ ### `http_to_websocket_url(http_url)`
222
+
223
+ HTTP URL을 WebSocket URL로 변환합니다.
224
+
225
+ ```python
226
+ from synapse_sdk.utils.network import http_to_websocket_url
227
+
228
+ # URL 변환
229
+ ws_url = http_to_websocket_url("http://ray-cluster:8265/logs/")
230
+ # 결과: "ws://ray-cluster:8265/logs/"
231
+
232
+ wss_url = http_to_websocket_url("https://ray-cluster:8265/logs/")
233
+ # 결과: "wss://ray-cluster:8265/logs/"
234
+ ```
235
+
236
+ #### Parameters
237
+
238
+ - `http_url` (str): HTTP 또는 HTTPS URL
239
+
240
+ #### Returns
241
+
242
+ - `str`: WebSocket URL (ws:// 또는 wss://)
243
+
244
+ ## 오류 Utilities
245
+
246
+ ### `sanitize_error_message(message, context)`
247
+
248
+ 디버깅 컨텍스트를 유지하면서 정보 유출을 방지하기 위해 오류 메시지를 정제합니다.
249
+
250
+ ```python
251
+ from synapse_sdk.utils.network import sanitize_error_message
252
+
253
+ # 로깅을 위한 오류 정제
254
+ clean_message = sanitize_error_message(
255
+ "Connection failed: Invalid token abc123",
256
+ "job job-12345"
257
+ )
258
+ # 결과: 컨텍스트가 포함된 정제된 오류 메시지
259
+ ```
260
+
261
+ #### Parameters
262
+
263
+ - `message` (str): 원본 오류 메시지
264
+ - `context` (str): 디버깅을 위한 컨텍스트 (예: "job job-12345")
265
+
266
+ #### Returns
267
+
268
+ - `str`: 정제된 오류 메시지
269
+
270
+ ## 완전한 예제
271
+
272
+ ```python
273
+ import asyncio
274
+ from concurrent.futures import ThreadPoolExecutor
275
+ from synapse_sdk.utils.network import (
276
+ StreamLimits,
277
+ WebSocketStreamManager,
278
+ HTTPStreamManager,
279
+ validate_resource_id,
280
+ validate_timeout,
281
+ http_to_websocket_url
282
+ )
283
+
284
+ class StreamingExample:
285
+ def __init__(self):
286
+ # 구성 요소 설정
287
+ self.thread_pool = ThreadPoolExecutor(max_workers=3)
288
+ self.limits = StreamLimits(max_lines=10000)
289
+ self.ws_manager = WebSocketStreamManager(self.thread_pool, self.limits)
290
+
291
+ # HTTP 스트리밍을 위한 HTTP 세션
292
+ import requests
293
+ self.session = requests.Session()
294
+ self.http_manager = HTTPStreamManager(self.session, self.limits)
295
+
296
+ def stream_job_logs(self, job_id, protocol='websocket'):
297
+ # 입력 유효성 검사
298
+ validated_id = validate_resource_id(job_id, 'job')
299
+ timeout = validate_timeout(30)
300
+
301
+ if protocol == 'websocket':
302
+ return self._websocket_stream(validated_id, timeout)
303
+ else:
304
+ return self._http_stream(validated_id, timeout)
305
+
306
+ def _websocket_stream(self, job_id, timeout):
307
+ url = f"http://ray-cluster:8265/jobs/{job_id}/logs/"
308
+ ws_url = http_to_websocket_url(url)
309
+ headers = {"Authorization": "Bearer token"}
310
+ context = f"job {job_id}"
311
+
312
+ return self.ws_manager.stream_logs(ws_url, headers, timeout, context)
313
+
314
+ def _http_stream(self, job_id, timeout):
315
+ url = f"http://ray-cluster:8265/jobs/{job_id}/logs/stream"
316
+ headers = {"Authorization": "Bearer token"}
317
+ timeout_tuple = (5, timeout)
318
+ context = f"job {job_id}"
319
+
320
+ return self.http_manager.stream_logs(url, headers, timeout_tuple, context)
321
+
322
+ # 사용법
323
+ example = StreamingExample()
324
+
325
+ # WebSocket으로 스트리밍
326
+ for log_line in example.stream_job_logs('job-12345', 'websocket'):
327
+ print(log_line.strip())
328
+
329
+ # HTTP 폴백으로 스트리밍
330
+ for log_line in example.stream_job_logs('job-12345', 'http'):
331
+ print(log_line.strip())
332
+ ```
333
+
334
+ ## 모범 사례
335
+
336
+ ### 1. 리소스 관리
337
+
338
+ ```python
339
+ # 항상 적절한 정리 사용
340
+ thread_pool = ThreadPoolExecutor(max_workers=5)
341
+ try:
342
+ manager = WebSocketStreamManager(thread_pool, StreamLimits())
343
+ # 매니저 사용...
344
+ finally:
345
+ thread_pool.shutdown(wait=True)
346
+ ```
347
+
348
+ ### 2. 오류 처리
349
+
350
+ ```python
351
+ from synapse_sdk.clients.exceptions import ClientError
352
+
353
+ try:
354
+ job_id = validate_resource_id(user_input, 'job')
355
+ timeout = validate_timeout(user_timeout)
356
+ # 유효성 검사된 입력으로 진행...
357
+ except ClientError as e:
358
+ logger.error(f"유효성 검사 실패: {e}")
359
+ return error_response(e.status, str(e))
360
+ ```
361
+
362
+ ### 3. 스트림 제한 구성
363
+
364
+ ```python
365
+ # 사용 사례에 따라 제한 구성
366
+ production_limits = StreamLimits(
367
+ max_messages=20000, # 프로덕션을 위해 더 높게
368
+ max_lines=100000, # 더 많은 라인 허용
369
+ max_bytes=200 * 1024 * 1024, # 큰 로그를 위해 200MB
370
+ queue_size=2000 # 더 큰 버퍼
371
+ )
372
+ ```
373
+
374
+ ## 참고
375
+
376
+ - [RayClient](../../api/clients/ray.md) - 네트워크 유틸리티의 주요 소비자
377
+ - [File Utils](./file.md) - 파일 작업 및 처리
378
+ - [Storage](./storage.md) - Storage 제공자
@@ -0,0 +1,60 @@
1
+ ---
2
+ id: storage
3
+ title: Storage Providers
4
+ sidebar_position: 2
5
+ ---
6
+
7
+ # Storage Providers
8
+
9
+ 여러 클라우드 제공자를 지원하는 스토리지 추상화 레이어입니다.
10
+
11
+ ## 지원되는 제공자
12
+
13
+ ### Amazon S3
14
+
15
+ Amazon Simple Storage Service 통합입니다.
16
+
17
+ ```python
18
+ from synapse_sdk.utils.storage.providers.s3 import S3Provider
19
+
20
+ provider = S3Provider(
21
+ bucket="my-bucket",
22
+ region="us-west-2"
23
+ )
24
+ ```
25
+
26
+ ### Google Cloud Storage
27
+
28
+ Google Cloud Storage 통합입니다.
29
+
30
+ ```python
31
+ from synapse_sdk.utils.storage.providers.gcp import GCPProvider
32
+
33
+ provider = GCPProvider(
34
+ bucket="my-bucket",
35
+ project="my-project"
36
+ )
37
+ ```
38
+
39
+ ### SFTP
40
+
41
+ Secure File Transfer Protocol 지원입니다.
42
+
43
+ ```python
44
+ from synapse_sdk.utils.storage.providers.sftp import SFTPProvider
45
+
46
+ provider = SFTPProvider(
47
+ host="sftp.example.com",
48
+ username="user"
49
+ )
50
+ ```
51
+
52
+ ## 사용법
53
+
54
+ ```python
55
+ from synapse_sdk.utils.storage import get_storage
56
+
57
+ # URL에서 자동 제공자 감지
58
+ storage = get_storage("s3://my-bucket/file.csv")
59
+ local_path = storage.download()
60
+ ```
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: types
3
+ title: Custom Types
4
+ sidebar_position: 3
5
+ ---
6
+
7
+ # Custom Types
8
+
9
+ SDK 전반에 걸쳐 사용되는 사용자 정의 타입 및 Pydantic 필드입니다.
10
+
11
+ ## FileField
12
+
13
+ 자동 다운로드 기능이 있는 파일 URL 처리를 위한 사용자 정의 Pydantic 필드입니다.
14
+
15
+ ```python
16
+ from synapse_sdk.types import FileField
17
+ from pydantic import BaseModel
18
+
19
+ class MyParams(BaseModel):
20
+ input_file: FileField # 파일을 자동으로 다운로드
21
+
22
+ def process(params: MyParams):
23
+ file_path = params.input_file # 로컬 파일 경로
24
+ # 파일 처리...
25
+ ```
26
+
27
+ ### 기능
28
+
29
+ - URL에서 자동 파일 다운로드
30
+ - 임시 파일 관리
31
+ - 다양한 파일 형식 지원
32
+ - 파일 존재 여부 유효성 검사
33
+
34
+ ## 사용 예제
35
+
36
+ ```python
37
+ # 플러그인 매개변수에서
38
+ class ProcessParams(BaseModel):
39
+ data_file: FileField
40
+ config_file: FileField = None # 선택적 파일
41
+
42
+ # FileField는 자동으로:
43
+ # 1. URL에서 파일 다운로드
44
+ # 2. 파일 존재 여부 유효성 검사
45
+ # 3. 로컬 파일 경로 반환
46
+ # 4. 임시 파일 정리
47
+ ```
48
+
49
+ ## 타입 유효성 검사
50
+
51
+ SDK 전반에 걸쳐 타입 안전성을 보장하기 위한 사용자 정의 유효성 검사기입니다.
@@ -0,0 +1,94 @@
1
+ ---
2
+ id: installation
3
+ title: 설치 & 설정
4
+ sidebar_position: 2
5
+ ---
6
+
7
+ # 설치 & 설정
8
+
9
+ Synapse SDK를 몇 분 안에 시작해보세요.
10
+
11
+ ## 사전 요구사항
12
+
13
+ Synapse SDK를 설치하기 전에 다음을 확인하세요:
14
+
15
+ - **Python 3.10 이상** 설치됨
16
+
17
+ ## 설치 방법
18
+
19
+ ### PyPI에서 설치
20
+
21
+ Synapse SDK를 설치하는 가장 쉬운 방법은 pip를 사용하는 것입니다:
22
+
23
+ ```bash
24
+ pip install synapse-sdk
25
+ ```
26
+
27
+ ### 선택적 종속성과 함께 설치
28
+
29
+ 추가 기능을 위해 extras와 함께 설치하세요:
30
+
31
+ ```bash
32
+ # 모든 종속성과 함께 설치 (분산 컴퓨팅, 최적화 라이브러리)
33
+ pip install synapse-sdk[all]
34
+
35
+ # 대시보드 종속성과 함께 설치 (FastAPI, Uvicorn)
36
+ pip install synapse-sdk[devtools]
37
+
38
+ # 둘 다 설치
39
+ pip install "synapse-sdk[all,devtools]"
40
+ ```
41
+
42
+ ### 소스에서 설치
43
+
44
+ 최신 개발 버전을 가져오려면:
45
+
46
+ ```bash
47
+ git clone https://github.com/datamaker/synapse-sdk.git
48
+ cd synapse-sdk
49
+ pip install -e .
50
+
51
+ # 선택적 종속성과 함께
52
+ pip install -e ".[all,devtools]"
53
+ ```
54
+
55
+ ## 설치 확인
56
+
57
+ 설치 후 모든 것이 작동하는지 확인하세요:
58
+
59
+ ```bash
60
+ # 버전 확인
61
+ synapse --version
62
+
63
+ # 대화형 CLI 실행
64
+ synapse
65
+
66
+ # devtools와 함께 실행
67
+ synapse --dev-tools
68
+ ```
69
+
70
+ ## 문제 해결
71
+
72
+ ### 일반적인 문제들
73
+
74
+ 1. **ImportError: No module named 'synapse_sdk'**
75
+ - 가상 환경을 활성화했는지 확인하세요
76
+ - Python 경로 확인: `python -c "import sys; print(sys.path)"`
77
+
78
+ 2. **백엔드 연결 시간 초과**
79
+ - API 토큰이 올바른지 확인하세요
80
+ - 네트워크 연결을 확인하세요
81
+ - 백엔드 URL에 접근 가능한지 확인하세요
82
+
83
+ ### 도움 받기
84
+
85
+ 문제가 발생하면:
86
+
87
+ 1. [문제 해결 가이드](./troubleshooting.md)를 확인하세요
88
+ 2. [GitHub Issues](https://github.com/datamaker/synapse-sdk/issues) 검색
89
+ 3. [Discord 커뮤니티](https://discord.gg/synapse-sdk)에 참여하세요
90
+
91
+ ## 다음 단계
92
+
93
+ - [빠른 시작 가이드](./quickstart.md) 따라하기
94
+ - [핵심 개념](./concepts/index.md)에 대해 학습하기
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: introduction
3
+ title: 소개
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # Synapse SDK
8
+
9
+ ML 및 데이터 처리 플러그인을 구축하세요.
10
+
11
+ ## 개요
12
+
13
+ Synapse SDK는...
14
+
15
+ ### 주요 기능
16
+
17
+ - **🚀 플러그인 개발 및 테스트**: Synapse용 카테고리별로 구성된 모듈화되고 재사용 가능한 컴포넌트 개발
18
+ - **⚡ 분산 컴퓨팅**: 확장 가능한 분산 실행을 위해 구축됨
19
+ - **🔧 다중 실행 모드**: Job, Task 및 REST API 지원
20
+ - **📦 격리된 런타임 환경**: 각 플러그인은 종속성 관리와 함께 자체 환경에서 실행됨
21
+ - **📊 진행률 추적**: 내장된 진행률 모니터링 및 메트릭 보고
22
+
23
+ ### 플러그인 카테고리
24
+
25
+ SDK는 플러그인을 특정 카테고리로 구성합니다:
26
+
27
+ 1. **신경망** (`NEURAL_NET`): ML 모델 학습, 추론 및 배포
28
+ 2. **내보내기** (`EXPORT`): 데이터 내보내기 및 변환 작업
29
+ 3. **업로드** (`UPLOAD`): 파일 및 데이터 업로드 기능
30
+ 4. **스마트 도구** (`SMART_TOOL`): 지능형 자동화 도구
31
+ 5. **사후 어노테이션** (`POST_ANNOTATION`): 데이터 어노테이션 후 후처리
32
+ 6. **사전 어노테이션** (`PRE_ANNOTATION`): 데이터 어노테이션 전 전처리
33
+ 7. **데이터 검증** (`DATA_VALIDATION`): 데이터 품질 및 검증 확인
34
+
35
+ ## 시작하기
36
+
37
+ Synapse SDK를 시작하려면:
38
+
39
+ 1. [SDK 설치](./installation.md)
40
+ 2. [빠른 시작 가이드 따라하기](./quickstart.md)
41
+ 3. [API 참조 탐색](./api/index.md)
42
+ 4. [예제 확인](./examples/index.md)
43
+
44
+ ## 다음 단계
45
+
46
+ - [핵심 개념](./concepts/index.md) 학습하기
47
+ - [백엔드 연결](./configuration.md) 구성하기