pygeai 0.6.0b6__py3-none-any.whl → 0.6.0b10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. pygeai/_docs/source/conf.py +78 -6
  2. pygeai/_docs/source/content/api_reference/admin.rst +161 -0
  3. pygeai/_docs/source/content/api_reference/assistant.rst +326 -0
  4. pygeai/_docs/source/content/api_reference/auth.rst +379 -0
  5. pygeai/_docs/source/content/api_reference/embeddings.rst +31 -1
  6. pygeai/_docs/source/content/api_reference/evaluation.rst +590 -0
  7. pygeai/_docs/source/content/api_reference/feedback.rst +237 -0
  8. pygeai/_docs/source/content/api_reference/files.rst +592 -0
  9. pygeai/_docs/source/content/api_reference/gam.rst +401 -0
  10. pygeai/_docs/source/content/api_reference/health.rst +58 -0
  11. pygeai/_docs/source/content/api_reference/project.rst +20 -18
  12. pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
  13. pygeai/_docs/source/content/api_reference/rerank.rst +94 -0
  14. pygeai/_docs/source/content/api_reference/secrets.rst +495 -0
  15. pygeai/_docs/source/content/api_reference/usage_limits.rst +390 -0
  16. pygeai/_docs/source/content/api_reference.rst +13 -1
  17. pygeai/_docs/source/content/debugger.rst +376 -83
  18. pygeai/_docs/source/content/migration.rst +528 -0
  19. pygeai/_docs/source/content/modules.rst +1 -1
  20. pygeai/_docs/source/index.rst +59 -7
  21. pygeai/_docs/source/pygeai.auth.rst +29 -0
  22. pygeai/_docs/source/pygeai.cli.commands.rst +16 -0
  23. pygeai/_docs/source/pygeai.cli.rst +8 -0
  24. pygeai/_docs/source/pygeai.core.utils.rst +16 -0
  25. pygeai/_docs/source/pygeai.rst +1 -0
  26. pygeai/_docs/source/pygeai.tests.auth.rst +21 -0
  27. pygeai/_docs/source/pygeai.tests.cli.commands.rst +16 -0
  28. pygeai/_docs/source/pygeai.tests.cli.rst +16 -0
  29. pygeai/_docs/source/pygeai.tests.core.base.rst +8 -0
  30. pygeai/_docs/source/pygeai.tests.core.embeddings.rst +16 -0
  31. pygeai/_docs/source/pygeai.tests.core.files.rst +8 -0
  32. pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
  33. pygeai/_docs/source/pygeai.tests.core.rst +1 -0
  34. pygeai/_docs/source/pygeai.tests.evaluation.dataset.rst +21 -0
  35. pygeai/_docs/source/pygeai.tests.evaluation.plan.rst +21 -0
  36. pygeai/_docs/source/pygeai.tests.evaluation.result.rst +21 -0
  37. pygeai/_docs/source/pygeai.tests.evaluation.rst +20 -0
  38. pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +8 -0
  39. pygeai/_docs/source/pygeai.tests.organization.rst +8 -0
  40. pygeai/_docs/source/pygeai.tests.rst +2 -0
  41. pygeai/_docs/source/pygeai.tests.snippets.auth.rst +10 -0
  42. pygeai/_docs/source/pygeai.tests.snippets.chat.rst +40 -0
  43. pygeai/_docs/source/pygeai.tests.snippets.dbg.rst +45 -0
  44. pygeai/_docs/source/pygeai.tests.snippets.embeddings.rst +40 -0
  45. pygeai/_docs/source/pygeai.tests.snippets.evaluation.dataset.rst +197 -0
  46. pygeai/_docs/source/pygeai.tests.snippets.evaluation.plan.rst +133 -0
  47. pygeai/_docs/source/pygeai.tests.snippets.evaluation.result.rst +37 -0
  48. pygeai/_docs/source/pygeai.tests.snippets.evaluation.rst +10 -0
  49. pygeai/_docs/source/pygeai.tests.snippets.organization.rst +40 -0
  50. pygeai/_docs/source/pygeai.tests.snippets.rst +2 -0
  51. pygeai/admin/clients.py +12 -32
  52. pygeai/assistant/clients.py +16 -44
  53. pygeai/assistant/data/clients.py +1 -0
  54. pygeai/assistant/data_analyst/clients.py +6 -13
  55. pygeai/assistant/rag/clients.py +24 -67
  56. pygeai/auth/clients.py +88 -14
  57. pygeai/auth/endpoints.py +4 -0
  58. pygeai/chat/clients.py +192 -25
  59. pygeai/chat/endpoints.py +2 -1
  60. pygeai/cli/commands/auth.py +178 -2
  61. pygeai/cli/commands/chat.py +227 -1
  62. pygeai/cli/commands/embeddings.py +56 -8
  63. pygeai/cli/commands/lab/ai_lab.py +0 -2
  64. pygeai/cli/commands/migrate.py +994 -434
  65. pygeai/cli/commands/organization.py +241 -0
  66. pygeai/cli/error_handler.py +116 -0
  67. pygeai/cli/geai.py +28 -10
  68. pygeai/cli/parsers.py +8 -2
  69. pygeai/core/base/clients.py +4 -1
  70. pygeai/core/common/exceptions.py +11 -10
  71. pygeai/core/embeddings/__init__.py +19 -0
  72. pygeai/core/embeddings/clients.py +20 -9
  73. pygeai/core/embeddings/mappers.py +16 -2
  74. pygeai/core/embeddings/responses.py +9 -2
  75. pygeai/core/feedback/clients.py +4 -8
  76. pygeai/core/files/clients.py +10 -25
  77. pygeai/core/files/managers.py +42 -0
  78. pygeai/core/llm/clients.py +11 -26
  79. pygeai/core/models.py +107 -0
  80. pygeai/core/plugins/clients.py +4 -7
  81. pygeai/core/rerank/clients.py +4 -8
  82. pygeai/core/secrets/clients.py +14 -37
  83. pygeai/core/services/rest.py +1 -1
  84. pygeai/core/utils/parsers.py +32 -0
  85. pygeai/core/utils/validators.py +10 -0
  86. pygeai/dbg/__init__.py +3 -0
  87. pygeai/dbg/debugger.py +565 -70
  88. pygeai/evaluation/clients.py +2 -1
  89. pygeai/evaluation/dataset/clients.py +46 -44
  90. pygeai/evaluation/plan/clients.py +28 -26
  91. pygeai/evaluation/result/clients.py +38 -5
  92. pygeai/gam/clients.py +10 -25
  93. pygeai/health/clients.py +4 -7
  94. pygeai/lab/agents/clients.py +21 -54
  95. pygeai/lab/agents/endpoints.py +2 -0
  96. pygeai/lab/clients.py +1 -0
  97. pygeai/lab/models.py +3 -3
  98. pygeai/lab/processes/clients.py +45 -127
  99. pygeai/lab/strategies/clients.py +11 -25
  100. pygeai/lab/tools/clients.py +23 -67
  101. pygeai/lab/tools/endpoints.py +3 -0
  102. pygeai/migration/__init__.py +31 -0
  103. pygeai/migration/strategies.py +404 -155
  104. pygeai/migration/tools.py +170 -3
  105. pygeai/organization/clients.py +135 -51
  106. pygeai/organization/endpoints.py +6 -1
  107. pygeai/organization/limits/clients.py +32 -91
  108. pygeai/organization/managers.py +157 -1
  109. pygeai/organization/mappers.py +76 -2
  110. pygeai/organization/responses.py +25 -1
  111. pygeai/proxy/clients.py +4 -1
  112. pygeai/tests/admin/test_clients.py +16 -11
  113. pygeai/tests/assistants/rag/test_clients.py +35 -23
  114. pygeai/tests/assistants/test_clients.py +22 -15
  115. pygeai/tests/auth/test_clients.py +191 -7
  116. pygeai/tests/chat/test_clients.py +211 -1
  117. pygeai/tests/cli/commands/test_embeddings.py +32 -9
  118. pygeai/tests/cli/commands/test_evaluation.py +7 -0
  119. pygeai/tests/cli/commands/test_migrate.py +112 -243
  120. pygeai/tests/cli/test_error_handler.py +225 -0
  121. pygeai/tests/cli/test_geai_driver.py +154 -0
  122. pygeai/tests/cli/test_parsers.py +5 -5
  123. pygeai/tests/core/embeddings/test_clients.py +144 -0
  124. pygeai/tests/core/embeddings/test_managers.py +171 -0
  125. pygeai/tests/core/embeddings/test_mappers.py +142 -0
  126. pygeai/tests/core/feedback/test_clients.py +2 -0
  127. pygeai/tests/core/files/test_clients.py +1 -0
  128. pygeai/tests/core/llm/test_clients.py +14 -9
  129. pygeai/tests/core/plugins/test_clients.py +5 -3
  130. pygeai/tests/core/rerank/test_clients.py +1 -0
  131. pygeai/tests/core/secrets/test_clients.py +19 -13
  132. pygeai/tests/dbg/test_debugger.py +453 -75
  133. pygeai/tests/evaluation/dataset/test_clients.py +3 -1
  134. pygeai/tests/evaluation/plan/test_clients.py +4 -2
  135. pygeai/tests/evaluation/result/test_clients.py +7 -5
  136. pygeai/tests/gam/test_clients.py +1 -1
  137. pygeai/tests/health/test_clients.py +1 -0
  138. pygeai/tests/lab/agents/test_clients.py +9 -0
  139. pygeai/tests/lab/processes/test_clients.py +36 -0
  140. pygeai/tests/lab/processes/test_mappers.py +3 -0
  141. pygeai/tests/lab/strategies/test_clients.py +14 -9
  142. pygeai/tests/migration/test_strategies.py +45 -218
  143. pygeai/tests/migration/test_tools.py +133 -9
  144. pygeai/tests/organization/limits/test_clients.py +17 -0
  145. pygeai/tests/organization/test_clients.py +206 -1
  146. pygeai/tests/organization/test_managers.py +122 -1
  147. pygeai/tests/proxy/test_clients.py +2 -0
  148. pygeai/tests/proxy/test_integration.py +1 -0
  149. pygeai/tests/snippets/auth/__init__.py +0 -0
  150. pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
  151. pygeai/tests/snippets/chat/get_response.py +15 -0
  152. pygeai/tests/snippets/chat/get_response_streaming.py +20 -0
  153. pygeai/tests/snippets/chat/get_response_with_files.py +16 -0
  154. pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
  155. pygeai/tests/snippets/dbg/__init__.py +0 -0
  156. pygeai/tests/snippets/dbg/basic_debugging.py +32 -0
  157. pygeai/tests/snippets/dbg/breakpoint_management.py +48 -0
  158. pygeai/tests/snippets/dbg/stack_navigation.py +45 -0
  159. pygeai/tests/snippets/dbg/stepping_example.py +40 -0
  160. pygeai/tests/snippets/embeddings/cache_example.py +31 -0
  161. pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
  162. pygeai/tests/snippets/embeddings/openai_base64_example.py +27 -0
  163. pygeai/tests/snippets/embeddings/openai_example.py +30 -0
  164. pygeai/tests/snippets/embeddings/similarity_example.py +42 -0
  165. pygeai/tests/snippets/evaluation/dataset/__init__.py +0 -0
  166. pygeai/tests/snippets/evaluation/dataset/complete_workflow_example.py +195 -0
  167. pygeai/tests/snippets/evaluation/dataset/create_dataset.py +26 -0
  168. pygeai/tests/snippets/evaluation/dataset/create_dataset_from_file.py +11 -0
  169. pygeai/tests/snippets/evaluation/dataset/create_dataset_row.py +17 -0
  170. pygeai/tests/snippets/evaluation/dataset/create_expected_source.py +18 -0
  171. pygeai/tests/snippets/evaluation/dataset/create_filter_variable.py +19 -0
  172. pygeai/tests/snippets/evaluation/dataset/delete_dataset.py +9 -0
  173. pygeai/tests/snippets/evaluation/dataset/delete_dataset_row.py +10 -0
  174. pygeai/tests/snippets/evaluation/dataset/delete_expected_source.py +15 -0
  175. pygeai/tests/snippets/evaluation/dataset/delete_filter_variable.py +15 -0
  176. pygeai/tests/snippets/evaluation/dataset/get_dataset.py +9 -0
  177. pygeai/tests/snippets/evaluation/dataset/get_dataset_row.py +10 -0
  178. pygeai/tests/snippets/evaluation/dataset/get_expected_source.py +15 -0
  179. pygeai/tests/snippets/evaluation/dataset/get_filter_variable.py +15 -0
  180. pygeai/tests/snippets/evaluation/dataset/list_dataset_rows.py +9 -0
  181. pygeai/tests/snippets/evaluation/dataset/list_datasets.py +6 -0
  182. pygeai/tests/snippets/evaluation/dataset/list_expected_sources.py +10 -0
  183. pygeai/tests/snippets/evaluation/dataset/list_filter_variables.py +10 -0
  184. pygeai/tests/snippets/evaluation/dataset/update_dataset.py +15 -0
  185. pygeai/tests/snippets/evaluation/dataset/update_dataset_row.py +20 -0
  186. pygeai/tests/snippets/evaluation/dataset/update_expected_source.py +18 -0
  187. pygeai/tests/snippets/evaluation/dataset/update_filter_variable.py +19 -0
  188. pygeai/tests/snippets/evaluation/dataset/upload_dataset_rows_file.py +10 -0
  189. pygeai/tests/snippets/evaluation/plan/__init__.py +0 -0
  190. pygeai/tests/snippets/evaluation/plan/add_plan_system_metric.py +13 -0
  191. pygeai/tests/snippets/evaluation/plan/complete_workflow_example.py +136 -0
  192. pygeai/tests/snippets/evaluation/plan/create_evaluation_plan.py +24 -0
  193. pygeai/tests/snippets/evaluation/plan/create_rag_evaluation_plan.py +22 -0
  194. pygeai/tests/snippets/evaluation/plan/delete_evaluation_plan.py +9 -0
  195. pygeai/tests/snippets/evaluation/plan/delete_plan_system_metric.py +13 -0
  196. pygeai/tests/snippets/evaluation/plan/execute_evaluation_plan.py +11 -0
  197. pygeai/tests/snippets/evaluation/plan/get_evaluation_plan.py +9 -0
  198. pygeai/tests/snippets/evaluation/plan/get_plan_system_metric.py +13 -0
  199. pygeai/tests/snippets/evaluation/plan/get_system_metric.py +9 -0
  200. pygeai/tests/snippets/evaluation/plan/list_evaluation_plans.py +7 -0
  201. pygeai/tests/snippets/evaluation/plan/list_plan_system_metrics.py +9 -0
  202. pygeai/tests/snippets/evaluation/plan/list_system_metrics.py +7 -0
  203. pygeai/tests/snippets/evaluation/plan/update_evaluation_plan.py +22 -0
  204. pygeai/tests/snippets/evaluation/plan/update_plan_system_metric.py +14 -0
  205. pygeai/tests/snippets/evaluation/result/__init__.py +0 -0
  206. pygeai/tests/snippets/evaluation/result/complete_workflow_example.py +150 -0
  207. pygeai/tests/snippets/evaluation/result/get_evaluation_result.py +26 -0
  208. pygeai/tests/snippets/evaluation/result/list_evaluation_results.py +17 -0
  209. pygeai/tests/snippets/migrate/__init__.py +45 -0
  210. pygeai/tests/snippets/migrate/agent_migration.py +110 -0
  211. pygeai/tests/snippets/migrate/assistant_migration.py +64 -0
  212. pygeai/tests/snippets/migrate/orchestrator_examples.py +179 -0
  213. pygeai/tests/snippets/migrate/process_migration.py +64 -0
  214. pygeai/tests/snippets/migrate/project_migration.py +42 -0
  215. pygeai/tests/snippets/migrate/tool_migration.py +64 -0
  216. pygeai/tests/snippets/organization/create_project.py +2 -2
  217. pygeai/tests/snippets/organization/get_memberships.py +12 -0
  218. pygeai/tests/snippets/organization/get_organization_members.py +6 -0
  219. pygeai/tests/snippets/organization/get_project_members.py +6 -0
  220. pygeai/tests/snippets/organization/get_project_memberships.py +12 -0
  221. pygeai/tests/snippets/organization/get_project_roles.py +6 -0
  222. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/METADATA +1 -1
  223. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/RECORD +227 -124
  224. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/WHEEL +0 -0
  225. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/entry_points.txt +0 -0
  226. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/licenses/LICENSE +0 -0
  227. {pygeai-0.6.0b6.dist-info → pygeai-0.6.0b10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,64 @@
1
+ """
2
+ RAG Assistant Migration Examples
3
+
4
+ Demonstrates how to migrate RAG assistants between projects.
5
+ Uses project-scope API keys.
6
+ """
7
+
8
+ from pygeai.migration.strategies import RAGAssistantMigrationStrategy
9
+
10
+
11
+ def example_migrate_all_assistants():
12
+ """
13
+ Migrate all RAG assistants from source project.
14
+ """
15
+ strategy = RAGAssistantMigrationStrategy(
16
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
17
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
18
+ from_instance="https://api.test.example.ai",
19
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
20
+ to_project_id="3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
21
+ to_instance="https://api.prod.example.ai",
22
+ assistant_names=None # None for all assistants
23
+ )
24
+
25
+ result = strategy.migrate()
26
+ print(f"Migrated {len(result['migrated_assistants'])} assistants")
27
+
28
+ return result
29
+
30
+
31
+ def example_migrate_specific_assistants():
32
+ """
33
+ Migrate specific RAG assistants by name.
34
+ """
35
+ assistant_names = [
36
+ "Customer Support Assistant",
37
+ "Product Documentation Assistant"
38
+ ]
39
+
40
+ strategy = RAGAssistantMigrationStrategy(
41
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
42
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
43
+ from_instance="https://api.test.example.ai",
44
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
45
+ to_project_id="3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
46
+ to_instance="https://api.prod.example.ai",
47
+ assistant_names=assistant_names
48
+ )
49
+
50
+ result = strategy.migrate()
51
+ print(f"Migrated {len(result['migrated_assistants'])} specific assistants")
52
+
53
+ return result
54
+
55
+
56
+ if __name__ == "__main__":
57
+ print("RAG Assistant Migration Examples")
58
+ print("=" * 80)
59
+ print("\nThese examples demonstrate RAG assistant migration patterns.")
60
+ print("Uncomment to run specific examples:\n")
61
+
62
+ # Uncomment to run specific examples:
63
+ # example_migrate_all_assistants()
64
+ # example_migrate_specific_assistants()
@@ -0,0 +1,179 @@
1
+ """
2
+ Migration Orchestrator Examples
3
+
4
+ Demonstrates how to orchestrate complex migrations with multiple strategies
5
+ and handle error scenarios.
6
+ """
7
+
8
+ from pygeai.migration.strategies import (
9
+ ProjectMigrationStrategy,
10
+ AgentMigrationStrategy,
11
+ ToolMigrationStrategy,
12
+ RAGAssistantMigrationStrategy
13
+ )
14
+ from pygeai.migration.tools import MigrationOrchestrator
15
+
16
+
17
+ def example_orchestrated_migration():
18
+ """
19
+ Use the orchestrator to execute multiple migration strategies in sequence.
20
+ This is useful for complex migrations with multiple resource types.
21
+ """
22
+ # First, create the project
23
+ project_strategy = ProjectMigrationStrategy(
24
+ from_api_key="source_org_key_abc123def456ghi789jkl012mno345pqr678",
25
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
26
+ from_instance="https://api.test.example.ai",
27
+ to_api_key="dest_org_key_stu901vwx234yz567abc890def123ghi456jkl789",
28
+ to_project_name="Orchestrated Migration Project",
29
+ admin_email="admin@example.com"
30
+ )
31
+
32
+ # Create the orchestrator
33
+ orchestrator = MigrationOrchestrator()
34
+
35
+ # Add the project creation strategy
36
+ orchestrator.add_strategy(project_strategy)
37
+
38
+ # After project creation, we'll need the new project ID
39
+ # The orchestrator will handle this automatically
40
+
41
+ # Add agent migration strategy
42
+ agent_strategy = AgentMigrationStrategy(
43
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
44
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
45
+ from_instance="https://api.test.example.ai",
46
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
47
+ to_project_id=None, # Will be filled by orchestrator after project creation
48
+ agent_ids=None # Migrate all agents
49
+ )
50
+ orchestrator.add_strategy(agent_strategy)
51
+
52
+ # Add tool migration strategy
53
+ tool_strategy = ToolMigrationStrategy(
54
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
55
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
56
+ from_instance="https://api.test.example.ai",
57
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
58
+ to_project_id=None, # Will be filled by orchestrator
59
+ tool_ids=None # Migrate all tools
60
+ )
61
+ orchestrator.add_strategy(tool_strategy)
62
+
63
+ # Execute all strategies in order
64
+ results = orchestrator.execute()
65
+
66
+ print(f"Migration completed:")
67
+ print(f" Total strategies: {results['total']}")
68
+ print(f" Successful: {results['completed']}")
69
+ print(f" Failed: {results['failed']}")
70
+
71
+ return results
72
+
73
+
74
+ def example_migration_with_error_handling():
75
+ """
76
+ Demonstrate proper error handling during migrations.
77
+ """
78
+ from pygeai.core.common.exceptions import MigrationException
79
+
80
+ try:
81
+ strategy = AgentMigrationStrategy(
82
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
83
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
84
+ from_instance="https://api.test.example.ai",
85
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
86
+ to_project_id="3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
87
+ agent_ids=None
88
+ )
89
+
90
+ result = strategy.migrate()
91
+
92
+ print(f"✓ Migration successful: {result['summary']}")
93
+
94
+ except MigrationException as e:
95
+ print(f"✗ Migration failed: {e}")
96
+ print(f" Details: {e.details}")
97
+
98
+ except Exception as e:
99
+ print(f"✗ Unexpected error: {e}")
100
+
101
+
102
+ def example_full_migration_workflow():
103
+ """
104
+ Complete workflow: create project, migrate all resources, verify.
105
+ """
106
+ # Step 1: Create new project with usage limits
107
+ print("Step 1: Creating new project...")
108
+ project_strategy = ProjectMigrationStrategy(
109
+ from_api_key="source_org_key_abc123def456ghi789jkl012mno345pqr678",
110
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
111
+ from_instance="https://api.test.example.ai",
112
+ to_api_key="dest_org_key_stu901vwx234yz567abc890def123ghi456jkl789",
113
+ to_project_name="Complete Migration",
114
+ admin_email="admin@example.com"
115
+ )
116
+
117
+ project_result = project_strategy.migrate()
118
+ new_project_id = project_result['project_id']
119
+ print(f"✓ Project created: {new_project_id}")
120
+
121
+ # Step 2: Migrate agents
122
+ print("\nStep 2: Migrating agents...")
123
+ agent_strategy = AgentMigrationStrategy(
124
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
125
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
126
+ from_instance="https://api.test.example.ai",
127
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
128
+ to_project_id=new_project_id,
129
+ agent_ids=None
130
+ )
131
+ agent_result = agent_strategy.migrate()
132
+ print(f"✓ Migrated {len(agent_result['migrated_agents'])} agents")
133
+
134
+ # Step 3: Migrate tools
135
+ print("\nStep 3: Migrating tools...")
136
+ tool_strategy = ToolMigrationStrategy(
137
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
138
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
139
+ from_instance="https://api.test.example.ai",
140
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
141
+ to_project_id=new_project_id,
142
+ tool_ids=None
143
+ )
144
+ tool_result = tool_strategy.migrate()
145
+ print(f"✓ Migrated {len(tool_result['migrated_tools'])} tools")
146
+
147
+ # Step 4: Migrate RAG assistants
148
+ print("\nStep 4: Migrating RAG assistants...")
149
+ assistant_strategy = RAGAssistantMigrationStrategy(
150
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
151
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
152
+ from_instance="https://api.test.example.ai",
153
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
154
+ to_project_id=new_project_id,
155
+ assistant_names=None
156
+ )
157
+ assistant_result = assistant_strategy.migrate()
158
+ print(f"✓ Migrated {len(assistant_result['migrated_assistants'])} assistants")
159
+
160
+ print("\n✓ Complete migration finished successfully!")
161
+
162
+ return {
163
+ 'project': project_result,
164
+ 'agents': agent_result,
165
+ 'tools': tool_result,
166
+ 'assistants': assistant_result
167
+ }
168
+
169
+
170
+ if __name__ == "__main__":
171
+ print("Migration Orchestrator Examples")
172
+ print("=" * 80)
173
+ print("\nThese examples demonstrate complex migration workflows.")
174
+ print("Uncomment to run specific examples:\n")
175
+
176
+ # Uncomment to run specific examples:
177
+ # example_orchestrated_migration()
178
+ # example_migration_with_error_handling()
179
+ # example_full_migration_workflow()
@@ -0,0 +1,64 @@
1
+ """
2
+ Agentic Process Migration Examples
3
+
4
+ Demonstrates how to migrate agentic processes between projects.
5
+ Uses project-scope API keys.
6
+ """
7
+
8
+ from pygeai.migration.strategies import AgenticProcessMigrationStrategy
9
+
10
+
11
+ def example_migrate_all_processes():
12
+ """
13
+ Migrate all agentic processes from source project.
14
+ """
15
+ strategy = AgenticProcessMigrationStrategy(
16
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
17
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
18
+ from_instance="https://api.test.example.ai",
19
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
20
+ to_project_id="3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
21
+ to_instance="https://api.prod.example.ai",
22
+ process_ids=None # None for all processes
23
+ )
24
+
25
+ result = strategy.migrate()
26
+ print(f"Migrated {len(result['migrated_processes'])} processes")
27
+
28
+ return result
29
+
30
+
31
+ def example_migrate_specific_processes():
32
+ """
33
+ Migrate specific agentic processes by ID.
34
+ """
35
+ process_ids = [
36
+ "4b5c6d7e-8f9g-0h1i-2j3k-4l5m6n7o8p9q",
37
+ "5c6d7e8f-9g0h-1i2j-3k4l-5m6n7o8p9q0r"
38
+ ]
39
+
40
+ strategy = AgenticProcessMigrationStrategy(
41
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
42
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
43
+ from_instance="https://api.test.example.ai",
44
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
45
+ to_project_id="3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
46
+ to_instance="https://api.prod.example.ai",
47
+ process_ids=process_ids
48
+ )
49
+
50
+ result = strategy.migrate()
51
+ print(f"Migrated {len(result['migrated_processes'])} specific processes")
52
+
53
+ return result
54
+
55
+
56
+ if __name__ == "__main__":
57
+ print("Agentic Process Migration Examples")
58
+ print("=" * 80)
59
+ print("\nThese examples demonstrate agentic process migration patterns.")
60
+ print("Uncomment to run specific examples:\n")
61
+
62
+ # Uncomment to run specific examples:
63
+ # example_migrate_all_processes()
64
+ # example_migrate_specific_processes()
@@ -0,0 +1,42 @@
1
+ """
2
+ Project Migration Examples
3
+
4
+ Demonstrates how to create new projects and migrate usage limits.
5
+ Requires organization-scope API keys.
6
+ """
7
+
8
+ from pygeai.migration.strategies import ProjectMigrationStrategy
9
+
10
+
11
+ def example_create_project_with_usage_limits():
12
+ """
13
+ Create a new project and migrate usage limits from an existing project.
14
+ Requires organization-scope API keys.
15
+ """
16
+ strategy = ProjectMigrationStrategy(
17
+ from_api_key="source_org_key_abc123def456ghi789jkl012mno345pqr678",
18
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
19
+ from_instance="https://api.test.example.ai",
20
+ to_api_key="dest_org_key_stu901vwx234yz567abc890def123ghi456jkl789",
21
+ to_project_name="New Migrated Project",
22
+ admin_email="admin@example.com",
23
+ to_instance="https://api.prod.example.ai" # Optional: different instance
24
+ )
25
+
26
+ # Execute the migration
27
+ result = strategy.migrate()
28
+
29
+ print(f"Project created with ID: {result['project_id']}")
30
+ print(f"Migration result: {result}")
31
+
32
+ return result
33
+
34
+
35
+ if __name__ == "__main__":
36
+ print("Project Migration Example")
37
+ print("=" * 80)
38
+ print("\nThis example demonstrates creating a new project with usage limits.")
39
+ print("Uncomment to run:\n")
40
+
41
+ # Uncomment to run:
42
+ # example_create_project_with_usage_limits()
@@ -0,0 +1,64 @@
1
+ """
2
+ Tool Migration Examples
3
+
4
+ Demonstrates how to migrate tools between projects.
5
+ Uses project-scope API keys.
6
+ """
7
+
8
+ from pygeai.migration.strategies import ToolMigrationStrategy
9
+
10
+
11
+ def example_migrate_specific_tools():
12
+ """
13
+ Migrate specific tools by ID.
14
+ """
15
+ tool_ids = [
16
+ "2a3b4c5d-6e7f-8g9h-0i1j-2k3l4m5n6o7p",
17
+ "3b4c5d6e-7f8g-9h0i-1j2k-3l4m5n6o7p8q"
18
+ ]
19
+
20
+ strategy = ToolMigrationStrategy(
21
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
22
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
23
+ from_instance="https://api.test.example.ai",
24
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
25
+ to_project_id="3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
26
+ to_instance="https://api.prod.example.ai",
27
+ tool_ids=tool_ids
28
+ )
29
+
30
+ result = strategy.migrate()
31
+ print(f"Migrated {len(result['migrated_tools'])} tools")
32
+
33
+ return result
34
+
35
+
36
+ def example_migrate_all_tools():
37
+ """
38
+ Migrate all tools from source project.
39
+ """
40
+ strategy = ToolMigrationStrategy(
41
+ from_api_key="source_project_key_123abc456def789ghi012jkl345mno678pqr901",
42
+ from_project_id="7x8y9z0a-1b2c-3d4e-5f6g-7h8i9j0k1l2m",
43
+ from_instance="https://api.test.example.ai",
44
+ to_api_key="dest_project_key_789stu012vwx345yz678abc901def234ghi567",
45
+ to_project_id="3c4d5e6f-7g8h-9i0j-1k2l-3m4n5o6p7q8r",
46
+ to_instance="https://api.prod.example.ai",
47
+ tool_ids=None # None means "all tools"
48
+ )
49
+
50
+ result = strategy.migrate()
51
+ print(f"Migrated all {len(result['migrated_tools'])} tools")
52
+
53
+ return result
54
+
55
+
56
+ if __name__ == "__main__":
57
+ print("Tool Migration Examples")
58
+ print("=" * 80)
59
+ print("\nThese examples demonstrate tool migration patterns.")
60
+ print("Uncomment to run specific examples:\n")
61
+
62
+ # Uncomment to run specific examples:
63
+ # example_migrate_specific_tools()
64
+ # example_migrate_all_tools()
@@ -1,7 +1,7 @@
1
1
  from pygeai.organization.managers import OrganizationManager
2
2
  from pygeai.core.models import UsageLimit, Project
3
3
 
4
- manager = OrganizationManager()
4
+ manager = OrganizationManager(alias="sdkorg")
5
5
 
6
6
  usage_limit = UsageLimit(
7
7
  subscription_type="Monthly",
@@ -12,7 +12,7 @@ usage_limit = UsageLimit(
12
12
  )
13
13
 
14
14
  project = Project(
15
- name="New AI Project",
15
+ name="New TEST Project 2",
16
16
  description="An AI project focused on natural language processing",
17
17
  email="alejandro.trinidad@globant.com",
18
18
  usage_limit=usage_limit
@@ -0,0 +1,12 @@
1
+ from pygeai.organization.managers import OrganizationManager
2
+
3
+ manager = OrganizationManager(alias="sdkorg")
4
+
5
+ response = manager.get_memberships(
6
+ email="alejandro.trinidad@globant.com",
7
+ start_page=1,
8
+ page_size=10,
9
+ #order_key="organizationName",
10
+ #order_direction="asc"
11
+ )
12
+ print(f"response: {response}")
@@ -0,0 +1,6 @@
1
+ from pygeai.organization.managers import OrganizationManager
2
+
3
+ manager = OrganizationManager()
4
+
5
+ response = manager.get_organization_members(organization_id="4aa15b61-d3c7-4a5c-99b8-052d18a04ff2")
6
+ print(f"response: {response}")
@@ -0,0 +1,6 @@
1
+ from pygeai.organization.managers import OrganizationManager
2
+
3
+ manager = OrganizationManager()
4
+
5
+ response = manager.get_project_members(project_id="1956c032-3c66-4435-acb8-6a06e52f819f")
6
+ print(f"response: {response}")
@@ -0,0 +1,12 @@
1
+ from pygeai.organization.managers import OrganizationManager
2
+
3
+ manager = OrganizationManager()
4
+
5
+ response = manager.get_project_memberships(
6
+ email="user@example.com",
7
+ start_page=1,
8
+ page_size=10,
9
+ order_key="projectName",
10
+ order_direction="desc"
11
+ )
12
+ print(f"response: {response}")
@@ -0,0 +1,6 @@
1
+ from pygeai.organization.managers import OrganizationManager
2
+
3
+ manager = OrganizationManager(alias="sdkorg")
4
+
5
+ response = manager.get_project_roles(project_id="2ca6883f-6778-40bb-bcc1-85451fb11107")
6
+ print(f"response: {response}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.6.0b6
3
+ Version: 0.6.0b10
4
4
  Summary: Software Development Kit to interact with Globant Enterprise AI.
5
5
  Author-email: Globant <geai-sdk@globant.com>
6
6
  License-Expression: MIT