pygeai 0.1.51b3__py3-none-any.whl → 0.6.0b15__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 pygeai might be problematic. Click here for more details.

Files changed (648) hide show
  1. pygeai/__init__.py +9 -1
  2. pygeai/_docs/Makefile +20 -0
  3. pygeai/_docs/make.bat +35 -0
  4. pygeai/_docs/source/conf.py +117 -0
  5. pygeai/_docs/source/content/ai_lab/cli.rst +747 -0
  6. pygeai/_docs/source/content/ai_lab/models.rst +1734 -0
  7. pygeai/_docs/source/content/ai_lab/runner.rst +253 -0
  8. pygeai/_docs/source/content/ai_lab/spec.rst +431 -0
  9. pygeai/_docs/source/content/ai_lab/usage.rst +1011 -0
  10. pygeai/_docs/source/content/ai_lab.rst +102 -0
  11. pygeai/_docs/source/content/analytics.rst +598 -0
  12. pygeai/_docs/source/content/api_reference/admin.rst +161 -0
  13. pygeai/_docs/source/content/api_reference/assistant.rst +326 -0
  14. pygeai/_docs/source/content/api_reference/auth.rst +379 -0
  15. pygeai/_docs/source/content/api_reference/chat.rst +754 -0
  16. pygeai/_docs/source/content/api_reference/embeddings.rst +154 -0
  17. pygeai/_docs/source/content/api_reference/evaluation.rst +590 -0
  18. pygeai/_docs/source/content/api_reference/feedback.rst +237 -0
  19. pygeai/_docs/source/content/api_reference/files.rst +592 -0
  20. pygeai/_docs/source/content/api_reference/gam.rst +401 -0
  21. pygeai/_docs/source/content/api_reference/health.rst +58 -0
  22. pygeai/_docs/source/content/api_reference/project.rst +738 -0
  23. pygeai/_docs/source/content/api_reference/proxy.rst +318 -0
  24. pygeai/_docs/source/content/api_reference/rag.rst +710 -0
  25. pygeai/_docs/source/content/api_reference/rerank.rst +94 -0
  26. pygeai/_docs/source/content/api_reference/secrets.rst +495 -0
  27. pygeai/_docs/source/content/api_reference/usage_limits.rst +390 -0
  28. pygeai/_docs/source/content/api_reference.rst +58 -0
  29. pygeai/_docs/source/content/authentication.rst +295 -0
  30. pygeai/_docs/source/content/chat_gui.rst +121 -0
  31. pygeai/_docs/source/content/cli.rst +203 -0
  32. pygeai/_docs/source/content/debugger.rst +651 -0
  33. pygeai/_docs/source/content/intro.rst +67 -0
  34. pygeai/_docs/source/content/migration.rst +929 -0
  35. pygeai/_docs/source/content/modules.rst +7 -0
  36. pygeai/_docs/source/content/quickstart.rst +143 -0
  37. pygeai/_docs/source/content/samples.rst +394 -0
  38. pygeai/_docs/source/index.rst +75 -0
  39. pygeai/_docs/source/modules.rst +7 -0
  40. pygeai/_docs/source/pygeai.admin.rst +29 -0
  41. pygeai/_docs/source/pygeai.analytics.rst +53 -0
  42. pygeai/_docs/source/pygeai.assistant.data.rst +21 -0
  43. pygeai/_docs/source/pygeai.assistant.data_analyst.rst +29 -0
  44. pygeai/_docs/source/pygeai.assistant.rag.rst +53 -0
  45. pygeai/_docs/source/pygeai.assistant.rst +55 -0
  46. pygeai/_docs/source/pygeai.auth.rst +29 -0
  47. pygeai/_docs/source/pygeai.chat.rst +69 -0
  48. pygeai/_docs/source/pygeai.cli.commands.flows.rst +10 -0
  49. pygeai/_docs/source/pygeai.cli.commands.lab.rst +53 -0
  50. pygeai/_docs/source/pygeai.cli.commands.rst +222 -0
  51. pygeai/_docs/source/pygeai.cli.rst +62 -0
  52. pygeai/_docs/source/pygeai.cli.texts.rst +21 -0
  53. pygeai/_docs/source/pygeai.core.base.rst +53 -0
  54. pygeai/_docs/source/pygeai.core.common.rst +37 -0
  55. pygeai/_docs/source/pygeai.core.embeddings.rst +61 -0
  56. pygeai/_docs/source/pygeai.core.feedback.rst +37 -0
  57. pygeai/_docs/source/pygeai.core.files.rst +61 -0
  58. pygeai/_docs/source/pygeai.core.llm.rst +29 -0
  59. pygeai/_docs/source/pygeai.core.plugins.rst +37 -0
  60. pygeai/_docs/source/pygeai.core.rerank.rst +53 -0
  61. pygeai/_docs/source/pygeai.core.rst +63 -0
  62. pygeai/_docs/source/pygeai.core.secrets.rst +29 -0
  63. pygeai/_docs/source/pygeai.core.services.llm.rst +29 -0
  64. pygeai/_docs/source/pygeai.core.services.rst +37 -0
  65. pygeai/_docs/source/pygeai.core.utils.rst +37 -0
  66. pygeai/_docs/source/pygeai.dbg.rst +21 -0
  67. pygeai/_docs/source/pygeai.evaluation.dataset.rst +29 -0
  68. pygeai/_docs/source/pygeai.evaluation.plan.rst +29 -0
  69. pygeai/_docs/source/pygeai.evaluation.result.rst +29 -0
  70. pygeai/_docs/source/pygeai.evaluation.rst +31 -0
  71. pygeai/_docs/source/pygeai.flows.rst +29 -0
  72. pygeai/_docs/source/pygeai.gam.rst +29 -0
  73. pygeai/_docs/source/pygeai.health.rst +29 -0
  74. pygeai/_docs/source/pygeai.lab.agents.rst +37 -0
  75. pygeai/_docs/source/pygeai.lab.processes.rst +37 -0
  76. pygeai/_docs/source/pygeai.lab.rst +65 -0
  77. pygeai/_docs/source/pygeai.lab.spec.rst +29 -0
  78. pygeai/_docs/source/pygeai.lab.strategies.rst +37 -0
  79. pygeai/_docs/source/pygeai.lab.tools.rst +37 -0
  80. pygeai/_docs/source/pygeai.man.man1.rst +10 -0
  81. pygeai/_docs/source/pygeai.man.rst +18 -0
  82. pygeai/_docs/source/pygeai.migration.rst +29 -0
  83. pygeai/_docs/source/pygeai.organization.limits.rst +45 -0
  84. pygeai/_docs/source/pygeai.organization.rst +61 -0
  85. pygeai/_docs/source/pygeai.proxy.rst +53 -0
  86. pygeai/_docs/source/pygeai.rst +35 -0
  87. pygeai/_docs/source/pygeai.tests.admin.rst +21 -0
  88. pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
  89. pygeai/_docs/source/pygeai.tests.assistants.rag.rst +37 -0
  90. pygeai/_docs/source/pygeai.tests.assistants.rst +45 -0
  91. pygeai/_docs/source/pygeai.tests.auth.rst +29 -0
  92. pygeai/_docs/source/pygeai.tests.chat.rst +45 -0
  93. pygeai/_docs/source/pygeai.tests.cli.commands.lab.rst +37 -0
  94. pygeai/_docs/source/pygeai.tests.cli.commands.rst +165 -0
  95. pygeai/_docs/source/pygeai.tests.cli.docker.rst +10 -0
  96. pygeai/_docs/source/pygeai.tests.cli.rst +46 -0
  97. pygeai/_docs/source/pygeai.tests.core.base.data.rst +29 -0
  98. pygeai/_docs/source/pygeai.tests.core.base.rst +45 -0
  99. pygeai/_docs/source/pygeai.tests.core.common.data.rst +10 -0
  100. pygeai/_docs/source/pygeai.tests.core.common.rst +37 -0
  101. pygeai/_docs/source/pygeai.tests.core.embeddings.rst +37 -0
  102. pygeai/_docs/source/pygeai.tests.core.feedback.rst +21 -0
  103. pygeai/_docs/source/pygeai.tests.core.files.rst +53 -0
  104. pygeai/_docs/source/pygeai.tests.core.llm.rst +21 -0
  105. pygeai/_docs/source/pygeai.tests.core.plugins.rst +21 -0
  106. pygeai/_docs/source/pygeai.tests.core.rerank.rst +37 -0
  107. pygeai/_docs/source/pygeai.tests.core.rst +39 -0
  108. pygeai/_docs/source/pygeai.tests.core.secrets.rst +21 -0
  109. pygeai/_docs/source/pygeai.tests.core.services.rst +21 -0
  110. pygeai/_docs/source/pygeai.tests.core.utils.rst +21 -0
  111. pygeai/_docs/source/pygeai.tests.dbg.rst +21 -0
  112. pygeai/_docs/source/pygeai.tests.evaluation.dataset.rst +21 -0
  113. pygeai/_docs/source/pygeai.tests.evaluation.plan.rst +21 -0
  114. pygeai/_docs/source/pygeai.tests.evaluation.result.rst +21 -0
  115. pygeai/_docs/source/pygeai.tests.evaluation.rst +20 -0
  116. pygeai/_docs/source/pygeai.tests.gam.rst +21 -0
  117. pygeai/_docs/source/pygeai.tests.health.rst +21 -0
  118. pygeai/_docs/source/pygeai.tests.integration.assistants.rag.rst +21 -0
  119. pygeai/_docs/source/pygeai.tests.integration.assistants.rst +18 -0
  120. pygeai/_docs/source/pygeai.tests.integration.chat.rst +21 -0
  121. pygeai/_docs/source/pygeai.tests.integration.lab.agents.rst +69 -0
  122. pygeai/_docs/source/pygeai.tests.integration.lab.processes.rst +77 -0
  123. pygeai/_docs/source/pygeai.tests.integration.lab.reasoning_strategies.rst +37 -0
  124. pygeai/_docs/source/pygeai.tests.integration.lab.rst +21 -0
  125. pygeai/_docs/source/pygeai.tests.integration.lab.tools.rst +77 -0
  126. pygeai/_docs/source/pygeai.tests.integration.rst +20 -0
  127. pygeai/_docs/source/pygeai.tests.lab.agents.rst +29 -0
  128. pygeai/_docs/source/pygeai.tests.lab.processes.rst +29 -0
  129. pygeai/_docs/source/pygeai.tests.lab.rst +49 -0
  130. pygeai/_docs/source/pygeai.tests.lab.spec.rst +29 -0
  131. pygeai/_docs/source/pygeai.tests.lab.strategies.rst +29 -0
  132. pygeai/_docs/source/pygeai.tests.lab.tools.rst +29 -0
  133. pygeai/_docs/source/pygeai.tests.migration.rst +29 -0
  134. pygeai/_docs/source/pygeai.tests.organization.limits.rst +29 -0
  135. pygeai/_docs/source/pygeai.tests.organization.rst +53 -0
  136. pygeai/_docs/source/pygeai.tests.proxy.rst +61 -0
  137. pygeai/_docs/source/pygeai.tests.rst +33 -0
  138. pygeai/admin/clients.py +14 -11
  139. pygeai/admin/endpoints.py +2 -2
  140. pygeai/analytics/clients.py +505 -0
  141. pygeai/analytics/endpoints.py +35 -0
  142. pygeai/analytics/managers.py +606 -0
  143. pygeai/analytics/mappers.py +207 -0
  144. pygeai/analytics/responses.py +240 -0
  145. pygeai/assistant/clients.py +18 -45
  146. pygeai/assistant/data/clients.py +1 -0
  147. pygeai/assistant/data_analyst/clients.py +8 -12
  148. pygeai/assistant/managers.py +195 -157
  149. pygeai/assistant/mappers.py +4 -2
  150. pygeai/assistant/rag/clients.py +27 -67
  151. pygeai/assistant/rag/mappers.py +12 -6
  152. pygeai/assistant/rag/models.py +301 -159
  153. pygeai/auth/__init__.py +0 -0
  154. pygeai/auth/clients.py +129 -0
  155. pygeai/auth/endpoints.py +6 -0
  156. pygeai/chat/clients.py +308 -37
  157. pygeai/chat/endpoints.py +3 -0
  158. pygeai/chat/iris.py +2 -8
  159. pygeai/chat/managers.py +9 -6
  160. pygeai/chat/session.py +38 -0
  161. pygeai/chat/settings.py +6 -0
  162. pygeai/chat/ui.py +678 -0
  163. pygeai/cli/__init__.py +0 -1
  164. pygeai/cli/commands/admin.py +7 -10
  165. pygeai/cli/commands/analytics.py +533 -0
  166. pygeai/cli/commands/assistant.py +9 -9
  167. pygeai/cli/commands/auth.py +299 -0
  168. pygeai/cli/commands/base.py +71 -9
  169. pygeai/cli/commands/chat.py +676 -19
  170. pygeai/cli/commands/common.py +28 -24
  171. pygeai/cli/commands/configuration.py +66 -13
  172. pygeai/cli/commands/docs.py +105 -0
  173. pygeai/cli/commands/embeddings.py +58 -11
  174. pygeai/cli/commands/evaluation.py +38 -38
  175. pygeai/cli/commands/feedback.py +3 -4
  176. pygeai/cli/commands/files.py +7 -8
  177. pygeai/cli/commands/gam.py +85 -10
  178. pygeai/cli/commands/lab/ai_lab.py +340 -484
  179. pygeai/cli/commands/lab/options.py +8 -0
  180. pygeai/cli/commands/lab/spec.py +273 -0
  181. pygeai/cli/commands/lab/utils.py +13 -0
  182. pygeai/cli/commands/llm.py +6 -7
  183. pygeai/cli/commands/migrate.py +1064 -436
  184. pygeai/cli/commands/organization.py +516 -11
  185. pygeai/cli/commands/rag.py +13 -14
  186. pygeai/cli/commands/rerank.py +3 -5
  187. pygeai/cli/commands/secrets.py +8 -9
  188. pygeai/cli/commands/usage_limits.py +18 -20
  189. pygeai/cli/commands/validators.py +144 -1
  190. pygeai/cli/commands/version.py +4 -5
  191. pygeai/cli/error_handler.py +151 -0
  192. pygeai/cli/geai.py +170 -31
  193. pygeai/cli/geai_proxy.py +86 -25
  194. pygeai/cli/install_man.py +93 -22
  195. pygeai/cli/parsers.py +75 -25
  196. pygeai/cli/texts/help.py +265 -28
  197. pygeai/core/base/clients.py +53 -12
  198. pygeai/core/base/mappers.py +11 -2
  199. pygeai/core/base/session.py +95 -11
  200. pygeai/core/common/config.py +78 -14
  201. pygeai/core/common/exceptions.py +96 -6
  202. pygeai/core/embeddings/__init__.py +19 -0
  203. pygeai/core/embeddings/clients.py +23 -5
  204. pygeai/core/embeddings/managers.py +9 -4
  205. pygeai/core/embeddings/mappers.py +16 -2
  206. pygeai/core/embeddings/responses.py +9 -2
  207. pygeai/core/feedback/clients.py +8 -3
  208. pygeai/core/files/clients.py +23 -24
  209. pygeai/core/files/managers.py +121 -30
  210. pygeai/core/files/responses.py +4 -3
  211. pygeai/core/handlers.py +10 -1
  212. pygeai/core/llm/clients.py +22 -29
  213. pygeai/core/models.py +127 -11
  214. pygeai/core/plugins/clients.py +6 -6
  215. pygeai/core/rerank/clients.py +9 -3
  216. pygeai/core/rerank/managers.py +22 -5
  217. pygeai/core/secrets/clients.py +16 -37
  218. pygeai/core/services/response.py +18 -0
  219. pygeai/core/services/rest.py +159 -49
  220. pygeai/core/utils/__init__.py +0 -0
  221. pygeai/core/utils/console.py +83 -0
  222. pygeai/core/utils/parsers.py +32 -0
  223. pygeai/core/utils/validators.py +10 -0
  224. pygeai/dbg/__init__.py +3 -0
  225. pygeai/dbg/debugger.py +854 -14
  226. pygeai/evaluation/clients.py +7 -4
  227. pygeai/evaluation/dataset/clients.py +46 -44
  228. pygeai/evaluation/plan/clients.py +28 -26
  229. pygeai/evaluation/result/clients.py +38 -5
  230. pygeai/gam/clients.py +50 -28
  231. pygeai/gam/endpoints.py +2 -1
  232. pygeai/health/__init__.py +0 -0
  233. pygeai/health/clients.py +24 -0
  234. pygeai/health/endpoints.py +1 -0
  235. pygeai/lab/__init__.py +0 -90
  236. pygeai/lab/agents/clients.py +203 -162
  237. pygeai/lab/agents/endpoints.py +4 -0
  238. pygeai/lab/agents/mappers.py +57 -7
  239. pygeai/lab/clients.py +24 -0
  240. pygeai/lab/constants.py +3 -0
  241. pygeai/lab/managers.py +571 -541
  242. pygeai/lab/models.py +108 -19
  243. pygeai/lab/processes/clients.py +332 -340
  244. pygeai/lab/processes/mappers.py +3 -3
  245. pygeai/lab/runners.py +90 -0
  246. pygeai/lab/spec/__init__.py +0 -0
  247. pygeai/lab/spec/loader.py +24 -0
  248. pygeai/lab/spec/parsers.py +39 -0
  249. pygeai/lab/strategies/clients.py +67 -63
  250. pygeai/lab/strategies/mappers.py +1 -1
  251. pygeai/lab/tools/clients.py +85 -118
  252. pygeai/lab/tools/endpoints.py +4 -0
  253. pygeai/lab/tools/mappers.py +5 -5
  254. pygeai/man/man1/geai-proxy.1 +116 -0
  255. pygeai/man/man1/geai.1 +2580 -66
  256. pygeai/migration/__init__.py +33 -0
  257. pygeai/migration/strategies.py +468 -146
  258. pygeai/migration/tools.py +170 -3
  259. pygeai/organization/clients.py +245 -50
  260. pygeai/organization/endpoints.py +17 -8
  261. pygeai/organization/limits/clients.py +34 -32
  262. pygeai/organization/limits/managers.py +108 -49
  263. pygeai/organization/managers.py +347 -53
  264. pygeai/organization/mappers.py +102 -2
  265. pygeai/organization/responses.py +58 -1
  266. pygeai/proxy/clients.py +6 -3
  267. pygeai/proxy/config.py +14 -1
  268. pygeai/proxy/managers.py +61 -33
  269. pygeai/proxy/servers.py +196 -51
  270. pygeai/proxy/tool.py +33 -16
  271. pygeai/tests/admin/__init__.py +0 -0
  272. pygeai/tests/admin/test_clients.py +148 -0
  273. pygeai/tests/analytics/__init__.py +0 -0
  274. pygeai/tests/analytics/test_clients.py +86 -0
  275. pygeai/tests/analytics/test_managers.py +94 -0
  276. pygeai/tests/analytics/test_mappers.py +84 -0
  277. pygeai/tests/analytics/test_responses.py +73 -0
  278. pygeai/tests/assistants/rag/test_clients.py +346 -0
  279. pygeai/tests/assistants/rag/test_models.py +292 -0
  280. pygeai/tests/assistants/test_clients.py +176 -82
  281. pygeai/tests/assistants/test_managers.py +191 -57
  282. pygeai/tests/auth/__init__.py +0 -0
  283. pygeai/tests/auth/test_clients.py +289 -0
  284. pygeai/tests/auth/test_oauth.py +172 -0
  285. pygeai/tests/auth/test_session_logging.py +150 -0
  286. pygeai/tests/chat/__init__.py +0 -0
  287. pygeai/tests/chat/test_clients.py +393 -0
  288. pygeai/tests/chat/test_iris.py +38 -0
  289. pygeai/tests/chat/test_session.py +62 -0
  290. pygeai/tests/chat/test_ui.py +224 -0
  291. pygeai/tests/cli/commands/__init__.py +0 -0
  292. pygeai/tests/cli/commands/lab/__init__.py +0 -0
  293. pygeai/tests/cli/commands/lab/test_ai_lab.py +786 -0
  294. pygeai/tests/cli/commands/lab/test_common.py +208 -0
  295. pygeai/tests/cli/commands/lab/test_spec.py +246 -0
  296. pygeai/tests/cli/commands/test_assistant.py +202 -0
  297. pygeai/tests/cli/commands/test_chat.py +130 -0
  298. pygeai/tests/cli/commands/test_common.py +350 -0
  299. pygeai/tests/cli/commands/test_embeddings.py +132 -0
  300. pygeai/tests/cli/commands/test_evaluation.py +656 -0
  301. pygeai/tests/cli/commands/test_feedback.py +65 -0
  302. pygeai/tests/cli/commands/test_files.py +161 -0
  303. pygeai/tests/cli/commands/test_gam.py +201 -0
  304. pygeai/tests/cli/commands/test_llm.py +114 -0
  305. pygeai/tests/cli/commands/test_migrate.py +176 -0
  306. pygeai/tests/cli/commands/test_organization.py +276 -0
  307. pygeai/tests/cli/commands/test_rag.py +266 -0
  308. pygeai/tests/cli/commands/test_rerank.py +110 -0
  309. pygeai/tests/cli/commands/test_secrets.py +171 -0
  310. pygeai/tests/cli/commands/test_show_help.py +41 -0
  311. pygeai/tests/cli/commands/test_usage_limits.py +412 -0
  312. pygeai/tests/cli/commands/test_validators.py +160 -0
  313. pygeai/tests/cli/commands/test_version.py +81 -0
  314. pygeai/tests/cli/docker/__init__.py +0 -0
  315. pygeai/tests/cli/test_credentials_flag.py +316 -0
  316. pygeai/tests/cli/test_error_handler.py +225 -0
  317. pygeai/tests/cli/test_geai_driver.py +154 -0
  318. pygeai/tests/cli/test_parsers.py +5 -5
  319. pygeai/tests/core/base/data/models.py +7 -0
  320. pygeai/tests/core/base/test_mappers.py +43 -11
  321. pygeai/tests/core/base/test_models.py +3 -1
  322. pygeai/tests/core/base/test_responses.py +53 -0
  323. pygeai/tests/core/common/__init__.py +0 -0
  324. pygeai/tests/core/common/data/__init__.py +0 -0
  325. pygeai/tests/core/common/test_config.py +186 -0
  326. pygeai/tests/core/common/test_decorators.py +69 -0
  327. pygeai/tests/core/embeddings/__init__.py +0 -0
  328. pygeai/tests/core/embeddings/test_clients.py +225 -0
  329. pygeai/tests/core/embeddings/test_managers.py +171 -0
  330. pygeai/tests/core/embeddings/test_mappers.py +142 -0
  331. pygeai/tests/core/feedback/__init__.py +0 -0
  332. pygeai/tests/core/feedback/test_clients.py +64 -0
  333. pygeai/tests/core/files/test_clients.py +128 -0
  334. pygeai/tests/core/files/test_managers.py +124 -78
  335. pygeai/tests/core/files/test_mappers.py +137 -0
  336. pygeai/tests/core/files/test_models.py +103 -0
  337. pygeai/tests/core/files/test_responses.py +122 -0
  338. pygeai/tests/core/llm/__init__.py +0 -0
  339. pygeai/tests/core/llm/test_clients.py +142 -0
  340. pygeai/tests/core/plugins/__init__.py +0 -0
  341. pygeai/tests/core/plugins/test_clients.py +66 -0
  342. pygeai/tests/core/rerank/test_clients.py +76 -0
  343. pygeai/tests/core/rerank/test_managers.py +61 -39
  344. pygeai/tests/core/secrets/__init__.py +0 -0
  345. pygeai/tests/core/secrets/test_clients.py +264 -0
  346. pygeai/tests/core/services/__init__.py +0 -0
  347. pygeai/tests/core/services/test_rest.py +273 -0
  348. pygeai/tests/core/test_handlers.py +66 -0
  349. pygeai/tests/core/utils/__init__.py +0 -0
  350. pygeai/tests/core/utils/test_console.py +80 -0
  351. pygeai/tests/dbg/__init__.py +0 -0
  352. pygeai/tests/dbg/test_debugger.py +591 -0
  353. pygeai/tests/evaluation/__init__.py +0 -0
  354. pygeai/tests/evaluation/dataset/__init__.py +0 -0
  355. pygeai/tests/evaluation/dataset/test_clients.py +265 -0
  356. pygeai/tests/evaluation/plan/__init__.py +0 -0
  357. pygeai/tests/evaluation/plan/test_clients.py +195 -0
  358. pygeai/tests/evaluation/result/__init__.py +0 -0
  359. pygeai/tests/evaluation/result/test_clients.py +66 -0
  360. pygeai/tests/gam/__init__.py +0 -0
  361. pygeai/tests/gam/test_clients.py +195 -0
  362. pygeai/tests/health/__init__.py +0 -0
  363. pygeai/tests/health/test_clients.py +41 -0
  364. pygeai/tests/integration/__init__.py +0 -0
  365. pygeai/tests/integration/assistants/__init__.py +0 -0
  366. pygeai/tests/integration/assistants/rag/__init__.py +0 -0
  367. pygeai/tests/integration/assistants/rag/test_create_rag.py +91 -0
  368. pygeai/tests/integration/chat/__init__.py +0 -0
  369. pygeai/tests/integration/chat/test_generate_image.py +158 -0
  370. pygeai/tests/integration/lab/__init__.py +0 -0
  371. pygeai/tests/integration/lab/agents/__init__.py +0 -0
  372. pygeai/tests/integration/lab/agents/test_agents_list.py +106 -0
  373. pygeai/tests/integration/lab/agents/test_create_agent.py +319 -0
  374. pygeai/tests/integration/lab/agents/test_create_sharing_link.py +70 -0
  375. pygeai/tests/integration/lab/agents/test_delete_agent.py +75 -0
  376. pygeai/tests/integration/lab/agents/test_get_agent.py +94 -0
  377. pygeai/tests/integration/lab/agents/test_publish_agent_revision.py +127 -0
  378. pygeai/tests/integration/lab/agents/test_update_agent.py +250 -0
  379. pygeai/tests/integration/lab/processes/__init__.py +0 -0
  380. pygeai/tests/integration/lab/processes/test_create_process.py +345 -0
  381. pygeai/tests/integration/lab/processes/test_create_task.py +211 -0
  382. pygeai/tests/integration/lab/processes/test_delete_process.py +111 -0
  383. pygeai/tests/integration/lab/processes/test_get_process.py +201 -0
  384. pygeai/tests/integration/lab/processes/test_list_process_instances.py +91 -0
  385. pygeai/tests/integration/lab/processes/test_list_processes.py +138 -0
  386. pygeai/tests/integration/lab/processes/test_publish_process_revision.py +232 -0
  387. pygeai/tests/integration/lab/processes/test_update_process.py +289 -0
  388. pygeai/tests/integration/lab/reasoning_strategies/__init__.py +0 -0
  389. pygeai/tests/integration/lab/reasoning_strategies/test_get_reasoning_strategy.py +70 -0
  390. pygeai/tests/integration/lab/reasoning_strategies/test_list_reasoning_strategies.py +93 -0
  391. pygeai/tests/integration/lab/reasoning_strategies/test_update_reasoning_strategy.py +149 -0
  392. pygeai/tests/integration/lab/tools/__init__.py +0 -0
  393. pygeai/tests/integration/lab/tools/test_create_tool.py +288 -0
  394. pygeai/tests/integration/lab/tools/test_delete_tool.py +87 -0
  395. pygeai/tests/integration/lab/tools/test_get_parameter.py +98 -0
  396. pygeai/tests/integration/lab/tools/test_get_tool.py +91 -0
  397. pygeai/tests/integration/lab/tools/test_list_tools.py +106 -0
  398. pygeai/tests/integration/lab/tools/test_publish_tool_revision.py +119 -0
  399. pygeai/tests/integration/lab/tools/test_set_parameter.py +114 -0
  400. pygeai/tests/integration/lab/tools/test_update_tool.py +267 -0
  401. pygeai/tests/lab/agents/__init__.py +0 -0
  402. pygeai/tests/lab/agents/test_clients.py +481 -0
  403. pygeai/tests/lab/agents/test_mappers.py +440 -0
  404. pygeai/tests/lab/processes/__init__.py +0 -0
  405. pygeai/tests/lab/processes/test_clients.py +1416 -0
  406. pygeai/tests/lab/processes/test_mappers.py +1092 -0
  407. pygeai/tests/lab/spec/__init__.py +0 -0
  408. pygeai/tests/lab/spec/test_loader.py +59 -0
  409. pygeai/tests/lab/spec/test_parsers.py +182 -0
  410. pygeai/tests/lab/strategies/__init__.py +0 -0
  411. pygeai/tests/lab/strategies/test_clients.py +241 -0
  412. pygeai/tests/lab/strategies/test_mappers.py +132 -0
  413. pygeai/tests/lab/test_managers.py +553 -0
  414. pygeai/tests/lab/test_models.py +500 -3
  415. pygeai/tests/lab/tools/__init__.py +0 -0
  416. pygeai/tests/lab/tools/test_clients.py +521 -0
  417. pygeai/tests/lab/tools/test_mappers.py +198 -0
  418. pygeai/tests/migration/__init__.py +0 -0
  419. pygeai/tests/migration/test_strategies.py +405 -0
  420. pygeai/tests/migration/test_tools.py +159 -0
  421. pygeai/tests/organization/limits/test_clients.py +567 -0
  422. pygeai/tests/organization/limits/test_managers.py +298 -56
  423. pygeai/tests/organization/test_clients.py +600 -30
  424. pygeai/tests/organization/test_managers.py +424 -0
  425. pygeai/tests/organization/test_mappers.py +153 -0
  426. pygeai/tests/organization/test_responses.py +137 -0
  427. pygeai/tests/proxy/__init__.py +1 -0
  428. pygeai/tests/proxy/test_clients.py +397 -0
  429. pygeai/tests/proxy/test_config.py +171 -0
  430. pygeai/tests/proxy/test_integration.py +305 -0
  431. pygeai/tests/proxy/test_managers.py +312 -0
  432. pygeai/tests/proxy/test_servers.py +387 -0
  433. pygeai/tests/proxy/test_tool.py +176 -0
  434. pygeai/tests/snippets/analytics/__init__.py +0 -0
  435. pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
  436. pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
  437. pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
  438. pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
  439. pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
  440. pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
  441. pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
  442. pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
  443. pygeai/tests/snippets/analytics/get_total_tokens.py +12 -0
  444. pygeai/tests/snippets/auth/__init__.py +0 -0
  445. pygeai/tests/snippets/chat/chat_completion_with_reasoning_effort.py +18 -0
  446. pygeai/tests/snippets/chat/get_response.py +15 -0
  447. pygeai/tests/snippets/chat/get_response_complete_example.py +67 -0
  448. pygeai/tests/snippets/chat/get_response_streaming.py +20 -0
  449. pygeai/tests/snippets/chat/get_response_with_files.py +16 -0
  450. pygeai/tests/snippets/chat/get_response_with_instructions.py +19 -0
  451. pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
  452. pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
  453. pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
  454. pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
  455. pygeai/tests/snippets/chat/get_response_with_tools.py +36 -0
  456. pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -0
  457. pygeai/tests/snippets/dbg/__init__.py +0 -0
  458. pygeai/tests/snippets/dbg/basic_debugging.py +32 -0
  459. pygeai/tests/snippets/dbg/breakpoint_management.py +48 -0
  460. pygeai/tests/snippets/dbg/file_debugging.py +72 -0
  461. pygeai/tests/snippets/dbg/module_debugging.py +61 -0
  462. pygeai/tests/snippets/dbg/stack_navigation.py +45 -0
  463. pygeai/tests/snippets/dbg/stepping_example.py +40 -0
  464. pygeai/tests/snippets/embeddings/cache_example.py +31 -0
  465. pygeai/tests/snippets/embeddings/cohere_example.py +41 -0
  466. pygeai/tests/snippets/embeddings/openai_base64_example.py +27 -0
  467. pygeai/tests/snippets/embeddings/openai_example.py +30 -0
  468. pygeai/tests/snippets/embeddings/similarity_example.py +42 -0
  469. pygeai/tests/snippets/evaluation/dataset/__init__.py +0 -0
  470. pygeai/tests/snippets/evaluation/dataset/complete_workflow_example.py +195 -0
  471. pygeai/tests/snippets/evaluation/dataset/create_dataset.py +26 -0
  472. pygeai/tests/snippets/evaluation/dataset/create_dataset_from_file.py +11 -0
  473. pygeai/tests/snippets/evaluation/dataset/create_dataset_row.py +17 -0
  474. pygeai/tests/snippets/evaluation/dataset/create_expected_source.py +18 -0
  475. pygeai/tests/snippets/evaluation/dataset/create_filter_variable.py +19 -0
  476. pygeai/tests/snippets/evaluation/dataset/delete_dataset.py +9 -0
  477. pygeai/tests/snippets/evaluation/dataset/delete_dataset_row.py +10 -0
  478. pygeai/tests/snippets/evaluation/dataset/delete_expected_source.py +15 -0
  479. pygeai/tests/snippets/evaluation/dataset/delete_filter_variable.py +15 -0
  480. pygeai/tests/snippets/evaluation/dataset/get_dataset.py +9 -0
  481. pygeai/tests/snippets/evaluation/dataset/get_dataset_row.py +10 -0
  482. pygeai/tests/snippets/evaluation/dataset/get_expected_source.py +15 -0
  483. pygeai/tests/snippets/evaluation/dataset/get_filter_variable.py +15 -0
  484. pygeai/tests/snippets/evaluation/dataset/list_dataset_rows.py +9 -0
  485. pygeai/tests/snippets/evaluation/dataset/list_datasets.py +6 -0
  486. pygeai/tests/snippets/evaluation/dataset/list_expected_sources.py +10 -0
  487. pygeai/tests/snippets/evaluation/dataset/list_filter_variables.py +10 -0
  488. pygeai/tests/snippets/evaluation/dataset/update_dataset.py +15 -0
  489. pygeai/tests/snippets/evaluation/dataset/update_dataset_row.py +20 -0
  490. pygeai/tests/snippets/evaluation/dataset/update_expected_source.py +18 -0
  491. pygeai/tests/snippets/evaluation/dataset/update_filter_variable.py +19 -0
  492. pygeai/tests/snippets/evaluation/dataset/upload_dataset_rows_file.py +10 -0
  493. pygeai/tests/snippets/evaluation/plan/__init__.py +0 -0
  494. pygeai/tests/snippets/evaluation/plan/add_plan_system_metric.py +13 -0
  495. pygeai/tests/snippets/evaluation/plan/complete_workflow_example.py +136 -0
  496. pygeai/tests/snippets/evaluation/plan/create_evaluation_plan.py +24 -0
  497. pygeai/tests/snippets/evaluation/plan/create_rag_evaluation_plan.py +22 -0
  498. pygeai/tests/snippets/evaluation/plan/delete_evaluation_plan.py +9 -0
  499. pygeai/tests/snippets/evaluation/plan/delete_plan_system_metric.py +13 -0
  500. pygeai/tests/snippets/evaluation/plan/execute_evaluation_plan.py +11 -0
  501. pygeai/tests/snippets/evaluation/plan/get_evaluation_plan.py +9 -0
  502. pygeai/tests/snippets/evaluation/plan/get_plan_system_metric.py +13 -0
  503. pygeai/tests/snippets/evaluation/plan/get_system_metric.py +9 -0
  504. pygeai/tests/snippets/evaluation/plan/list_evaluation_plans.py +7 -0
  505. pygeai/tests/snippets/evaluation/plan/list_plan_system_metrics.py +9 -0
  506. pygeai/tests/snippets/evaluation/plan/list_system_metrics.py +7 -0
  507. pygeai/tests/snippets/evaluation/plan/update_evaluation_plan.py +22 -0
  508. pygeai/tests/snippets/evaluation/plan/update_plan_system_metric.py +14 -0
  509. pygeai/tests/snippets/evaluation/result/__init__.py +0 -0
  510. pygeai/tests/snippets/evaluation/result/complete_workflow_example.py +150 -0
  511. pygeai/tests/snippets/evaluation/result/get_evaluation_result.py +26 -0
  512. pygeai/tests/snippets/evaluation/result/list_evaluation_results.py +17 -0
  513. pygeai/tests/snippets/files/delete_file.py +1 -4
  514. pygeai/tests/snippets/files/get_file_content.py +2 -4
  515. pygeai/tests/snippets/files/get_file_data.py +1 -4
  516. pygeai/tests/snippets/files/get_file_list.py +1 -6
  517. pygeai/tests/snippets/files/upload_file.py +1 -5
  518. pygeai/tests/snippets/gam/gam_access_token.py +87 -0
  519. pygeai/tests/snippets/lab/agentic_flow_example_1.py +25 -23
  520. pygeai/tests/snippets/lab/agentic_flow_example_4.py +23 -23
  521. pygeai/tests/snippets/lab/agents/create_agent.py +5 -8
  522. pygeai/tests/snippets/lab/agents/create_agent_2.py +1 -5
  523. pygeai/tests/snippets/lab/agents/create_agent_edge_case.py +48 -0
  524. pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
  525. pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
  526. pygeai/tests/snippets/lab/agents/create_agent_without_instructions.py +48 -0
  527. pygeai/tests/snippets/lab/agents/delete_agent.py +1 -5
  528. pygeai/tests/snippets/lab/agents/get_agent.py +2 -11
  529. pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
  530. pygeai/tests/snippets/lab/agents/get_sharing_link.py +2 -7
  531. pygeai/tests/snippets/lab/agents/list_agents.py +4 -7
  532. pygeai/tests/snippets/lab/agents/publish_agent_revision.py +2 -6
  533. pygeai/tests/snippets/lab/agents/update_agent.py +1 -5
  534. pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
  535. pygeai/tests/snippets/lab/assistant_to_agent.py +191 -0
  536. pygeai/tests/snippets/lab/crud_ui.py +462 -0
  537. pygeai/tests/snippets/lab/processes/create_process.py +3 -5
  538. pygeai/tests/snippets/lab/processes/create_task.py +3 -5
  539. pygeai/tests/snippets/lab/processes/jobs/list_jobs.py +10 -19
  540. pygeai/tests/snippets/lab/processes/kbs/create_kb.py +2 -5
  541. pygeai/tests/snippets/lab/processes/kbs/get_kb.py +10 -16
  542. pygeai/tests/snippets/lab/processes/kbs/list_kbs.py +13 -20
  543. pygeai/tests/snippets/lab/processes/kbs/try_all.py +5 -7
  544. pygeai/tests/snippets/lab/processes/list_processes.py +5 -7
  545. pygeai/tests/snippets/lab/runner_1.py +1 -1
  546. pygeai/tests/snippets/lab/samples/summarize_files.py +3 -3
  547. pygeai/tests/snippets/lab/strategies/create_reasoning_strategy.py +2 -5
  548. pygeai/tests/snippets/lab/strategies/get_reasoning_strategy.py +2 -5
  549. pygeai/tests/snippets/lab/strategies/list_reasoning_strategies.py +3 -6
  550. pygeai/tests/snippets/lab/strategies/update_reasoning_strategy.py +2 -5
  551. pygeai/tests/snippets/lab/tools/create_tool.py +4 -10
  552. pygeai/tests/snippets/lab/tools/create_tool_edge_case.py +50 -0
  553. pygeai/tests/snippets/lab/tools/delete_tool.py +2 -6
  554. pygeai/tests/snippets/lab/tools/get_parameter.py +5 -7
  555. pygeai/tests/snippets/lab/tools/get_tool.py +5 -7
  556. pygeai/tests/snippets/lab/tools/list_tools.py +3 -7
  557. pygeai/tests/snippets/lab/tools/publish_tool_revision.py +3 -5
  558. pygeai/tests/snippets/lab/tools/set_parameters.py +4 -9
  559. pygeai/tests/snippets/lab/tools/update_tool.py +4 -8
  560. pygeai/tests/snippets/lab/use_cases/__init__.py +0 -0
  561. pygeai/tests/snippets/lab/use_cases/create_cli_expert.py +1640 -0
  562. pygeai/tests/snippets/lab/use_cases/create_lab_expert.py +4541 -0
  563. pygeai/tests/snippets/lab/use_cases/create_tool_headless_web_browser.py +133 -0
  564. pygeai/tests/snippets/lab/use_cases/create_web_designer.py +189 -0
  565. pygeai/tests/snippets/lab/use_cases/create_web_reader.py +185 -0
  566. pygeai/tests/snippets/lab/{file_summarizer_example.py → use_cases/file_summarizer_example.py} +3 -3
  567. pygeai/tests/snippets/lab/{file_summarizer_example_2.py → use_cases/file_summarizer_example_2.py} +12 -12
  568. pygeai/tests/snippets/lab/use_cases/update_cli_expert.py +1773 -0
  569. pygeai/tests/snippets/lab/use_cases/update_lab_expert.py +4541 -0
  570. pygeai/tests/snippets/lab/use_cases/update_web_designer.py +188 -0
  571. pygeai/tests/snippets/lab/use_cases/update_web_reader.py +195 -0
  572. pygeai/tests/snippets/lab/use_cases/update_web_reader_with_tool.py +210 -0
  573. pygeai/tests/snippets/migrate/__init__.py +45 -0
  574. pygeai/tests/snippets/migrate/agent_migration.py +110 -0
  575. pygeai/tests/snippets/migrate/assistant_migration.py +64 -0
  576. pygeai/tests/snippets/migrate/orchestrator_examples.py +179 -0
  577. pygeai/tests/snippets/migrate/process_migration.py +64 -0
  578. pygeai/tests/snippets/migrate/project_migration.py +42 -0
  579. pygeai/tests/snippets/migrate/tool_migration.py +64 -0
  580. pygeai/tests/snippets/organization/add_project_member.py +10 -0
  581. pygeai/tests/snippets/organization/add_project_member_batch.py +44 -0
  582. pygeai/tests/snippets/organization/create_project.py +2 -2
  583. pygeai/tests/snippets/organization/get_memberships.py +12 -0
  584. pygeai/tests/snippets/organization/get_organization_members.py +6 -0
  585. pygeai/tests/snippets/organization/get_project_members.py +6 -0
  586. pygeai/tests/snippets/organization/get_project_memberships.py +12 -0
  587. pygeai/tests/snippets/organization/get_project_roles.py +6 -0
  588. pygeai/vendor/a2a/__init__.py +1 -0
  589. pygeai/vendor/a2a/auth/__init__.py +0 -0
  590. pygeai/vendor/a2a/auth/user.py +31 -0
  591. pygeai/vendor/a2a/client/__init__.py +19 -0
  592. pygeai/vendor/a2a/client/client.py +425 -0
  593. pygeai/vendor/a2a/client/errors.py +33 -0
  594. pygeai/vendor/a2a/client/helpers.py +22 -0
  595. pygeai/vendor/a2a/py.typed +0 -0
  596. pygeai/vendor/a2a/server/__init__.py +1 -0
  597. pygeai/vendor/a2a/server/agent_execution/__init__.py +18 -0
  598. pygeai/vendor/a2a/server/agent_execution/agent_executor.py +44 -0
  599. pygeai/vendor/a2a/server/agent_execution/context.py +155 -0
  600. pygeai/vendor/a2a/server/agent_execution/request_context_builder.py +20 -0
  601. pygeai/vendor/a2a/server/agent_execution/simple_request_context_builder.py +77 -0
  602. pygeai/vendor/a2a/server/apps/__init__.py +16 -0
  603. pygeai/vendor/a2a/server/apps/jsonrpc/__init__.py +16 -0
  604. pygeai/vendor/a2a/server/apps/jsonrpc/fastapi_app.py +88 -0
  605. pygeai/vendor/a2a/server/apps/jsonrpc/jsonrpc_app.py +426 -0
  606. pygeai/vendor/a2a/server/apps/jsonrpc/starlette_app.py +123 -0
  607. pygeai/vendor/a2a/server/context.py +23 -0
  608. pygeai/vendor/a2a/server/events/__init__.py +21 -0
  609. pygeai/vendor/a2a/server/events/event_consumer.py +149 -0
  610. pygeai/vendor/a2a/server/events/event_queue.py +156 -0
  611. pygeai/vendor/a2a/server/events/in_memory_queue_manager.py +85 -0
  612. pygeai/vendor/a2a/server/events/queue_manager.py +35 -0
  613. pygeai/vendor/a2a/server/request_handlers/__init__.py +20 -0
  614. pygeai/vendor/a2a/server/request_handlers/default_request_handler.py +435 -0
  615. pygeai/vendor/a2a/server/request_handlers/jsonrpc_handler.py +327 -0
  616. pygeai/vendor/a2a/server/request_handlers/request_handler.py +161 -0
  617. pygeai/vendor/a2a/server/request_handlers/response_helpers.py +133 -0
  618. pygeai/vendor/a2a/server/tasks/__init__.py +20 -0
  619. pygeai/vendor/a2a/server/tasks/inmemory_push_notifier.py +62 -0
  620. pygeai/vendor/a2a/server/tasks/inmemory_task_store.py +51 -0
  621. pygeai/vendor/a2a/server/tasks/push_notifier.py +25 -0
  622. pygeai/vendor/a2a/server/tasks/result_aggregator.py +151 -0
  623. pygeai/vendor/a2a/server/tasks/task_manager.py +253 -0
  624. pygeai/vendor/a2a/server/tasks/task_store.py +22 -0
  625. pygeai/vendor/a2a/server/tasks/task_updater.py +155 -0
  626. pygeai/vendor/a2a/types.py +1624 -0
  627. pygeai/vendor/a2a/utils/__init__.py +40 -0
  628. pygeai/vendor/a2a/utils/artifact.py +72 -0
  629. pygeai/vendor/a2a/utils/errors.py +69 -0
  630. pygeai/vendor/a2a/utils/helpers.py +176 -0
  631. pygeai/vendor/a2a/utils/message.py +83 -0
  632. pygeai/vendor/a2a/utils/task.py +57 -0
  633. pygeai/vendor/a2a/utils/telemetry.py +299 -0
  634. pygeai-0.6.0b15.dist-info/METADATA +205 -0
  635. pygeai-0.6.0b15.dist-info/RECORD +799 -0
  636. {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/WHEEL +1 -1
  637. {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/entry_points.txt +2 -1
  638. {pygeai-0.1.51b3.dist-info → pygeai-0.6.0b15.dist-info}/licenses/LICENSE +13 -1
  639. pygeai-0.6.0b15.dist-info/top_level.txt +1 -0
  640. docs/geai-proxy/README.md +0 -145
  641. docs/source/conf.py +0 -45
  642. pygeai/tests/core/test_managers.py +0 -233
  643. pygeai-0.1.51b3.dist-info/METADATA +0 -130
  644. pygeai-0.1.51b3.dist-info/RECORD +0 -324
  645. pygeai-0.1.51b3.dist-info/top_level.txt +0 -3
  646. scripts/bump_beta_version.py +0 -56
  647. {scripts → pygeai/analytics}/__init__.py +0 -0
  648. /pygeai/tests/snippets/lab/{c_code_fixer_agent_flow.py → use_cases/c_code_fixer_agent_flow.py} +0 -0
@@ -1,17 +1,13 @@
1
- from pygeai.core.models import Organization, Project
2
1
  from pygeai.core.files.managers import FileManager
3
2
  from pygeai.core.files.models import UploadFile
4
3
 
5
- organization = Organization(id="4aa15b61-d3c7-4a5c-99b8-052d18a04ff2")
6
- project = Project(id="1956c032-3c66-4435-acb8-6a06e52f819f")
7
-
8
4
  file = UploadFile(
9
5
  path="test.txt",
10
6
  name="TestyFile",
11
7
  folder="TestyTestTemp"
12
8
  )
13
9
 
14
- file_manager = FileManager(organization_id=organization.id, project_id=project.id)
10
+ file_manager = FileManager()
15
11
 
16
12
  response = file_manager.upload_file(file)
17
13
  print(response)
@@ -0,0 +1,87 @@
1
+ """
2
+ Sample script demonstrating the usage of GAMClient to interact with GAM OAuth 2.0 endpoints.
3
+
4
+ This script shows how to:
5
+ 1. Obtain an access token using username and password.
6
+ 2. Fetch user information using the access token.
7
+ 3. Refresh an access token using a refresh token.
8
+ """
9
+
10
+ import argparse
11
+ import getpass
12
+ from pygeai.gam.clients import GAMClient
13
+
14
+
15
+ def main():
16
+ """
17
+ Main function to demonstrate the usage of GAMClient for GAM OAuth 2.0 authentication.
18
+ """
19
+ parser = argparse.ArgumentParser(description="GAM OAuth 2.0 Authentication Script")
20
+ parser.add_argument("--username", "-u", required=True, help="Username for authentication")
21
+ parser.add_argument("--client-id", "--cid", required=True, help="Client ID for the application")
22
+ parser.add_argument("--client-secret", "--cs", required=True, help="Client secret for the application")
23
+ args = parser.parse_args()
24
+
25
+ password = getpass.getpass("Enter password for {}: ".format(args.username))
26
+
27
+ try:
28
+ gam_client = GAMClient()
29
+ except Exception as e:
30
+ print(f"Error initializing GAMClient: {e}")
31
+ return
32
+
33
+ # Step 1: Get Access Token
34
+ print("=== Step 1: Obtaining Access Token ===")
35
+ try:
36
+ access_token_response = gam_client.get_access_token(
37
+ client_id=args.client_id,
38
+ client_secret=args.client_secret,
39
+ username=args.username,
40
+ password=password,
41
+ scope="gam_user_data+gam_user_roles",
42
+ authentication_type_name="local",
43
+ initial_properties={"Id": "Company", "Value": "GeneXus"},
44
+ repository="",
45
+ request_token_type="OAuth"
46
+ )
47
+ print("Access Token Response:")
48
+ print(access_token_response)
49
+
50
+ access_token = access_token_response.get("access_token", "")
51
+ refresh_token = access_token_response.get("refresh_token", "")
52
+ if not access_token:
53
+ print("Error: No access token received.")
54
+ return
55
+ except Exception as e:
56
+ print(f"Error obtaining access token: {e}")
57
+ return
58
+
59
+ # Step 2: Get User Information
60
+ print("\n=== Step 2: Fetching User Information ===")
61
+ try:
62
+ user_info_response = gam_client.get_user_info(access_token=access_token)
63
+ print("User Info Response:")
64
+ print(user_info_response)
65
+ except Exception as e:
66
+ print(f"Error fetching user information: {e}")
67
+ return
68
+
69
+ # Step 3: Refresh Access Token (if refresh_token is available)
70
+ if refresh_token:
71
+ print("\n=== Step 3: Refreshing Access Token ===")
72
+ try:
73
+ refresh_token_response = gam_client.refresh_access_token(
74
+ client_id=args.client_id,
75
+ client_secret=args.client_secret,
76
+ refresh_token=refresh_token
77
+ )
78
+ print("Refresh Token Response:")
79
+ print(refresh_token_response)
80
+ except Exception as e:
81
+ print(f"Error refreshing access token: {e}")
82
+ else:
83
+ print("\n=== Step 3: Skipping Refresh Token (No refresh token available) ===")
84
+
85
+
86
+ if __name__ == "__main__":
87
+ main()
@@ -24,23 +24,23 @@ def rollback():
24
24
  print("\n=== Initiating Rollback ===")
25
25
  if created_entities["instance_id"]:
26
26
  print(f"Deleting instance {created_entities['instance_id']}...")
27
- result = manager.abort_instance(project_id=project_id, instance_id=created_entities["instance_id"])
27
+ result = manager.abort_instance(instance_id=created_entities["instance_id"])
28
28
  print(f"Rollback: {result}")
29
29
  if created_entities["process_id"]:
30
30
  print(f"Deleting process {created_entities['process_id']}...")
31
- result = manager.delete_process(project_id=project_id, process_id=created_entities["process_id"])
31
+ result = manager.delete_process(process_id=created_entities["process_id"])
32
32
  print(f"Rollback: {result}")
33
33
  if created_entities["task_id"]:
34
34
  print(f"Deleting task {created_entities['task_id']}...")
35
- result = manager.delete_task(project_id=project_id, task_id=created_entities["task_id"])
35
+ result = manager.delete_task(task_id=created_entities["task_id"])
36
36
  print(f"Rollback: {result}")
37
37
  if created_entities["tool_id"]:
38
38
  print(f"Deleting tool {created_entities['tool_id']}...")
39
- result = manager.delete_tool(project_id=project_id, tool_id=created_entities["tool_id"])
39
+ result = manager.delete_tool(tool_id=created_entities["tool_id"])
40
40
  print(f"Rollback: {result}")
41
41
  if created_entities["agent_id"]:
42
42
  print(f"Deleting agent {created_entities['agent_id']}...")
43
- result = manager.delete_agent(project_id=project_id, agent_id=created_entities["agent_id"])
43
+ result = manager.delete_agent(agent_id=created_entities["agent_id"])
44
44
  print(f"Rollback: {result}")
45
45
  print("Rollback complete.")
46
46
 
@@ -67,13 +67,14 @@ def main():
67
67
  timeout=30,
68
68
  sampling=Sampling(temperature=0.7, top_k=40, top_p=0.9)
69
69
  ),
70
+ strategy_name="Dynamic Prompting",
70
71
  models=ModelList(models=[
71
72
  Model(name="gpt-4"),
72
73
  Model(name="gpt-3.5-turbo")
73
74
  ])
74
75
  )
75
76
  )
76
- create_agent_result = manager.create_agent(project_id=project_id, agent=agent, automatic_publish=False)
77
+ create_agent_result = manager.create_agent(agent=agent, automatic_publish=False)
77
78
  if isinstance(create_agent_result, Agent):
78
79
  print(f"Success: Created Agent: {create_agent_result.name}, ID: {create_agent_result.id}")
79
80
  created_entities["agent_id"] = create_agent_result.id
@@ -84,7 +85,7 @@ def main():
84
85
 
85
86
  print("Updating agent description...")
86
87
  agent.description = "Updated agent for testing workflows with enhanced capabilities"
87
- update_agent_result = manager.update_agent(project_id=project_id, agent=agent, automatic_publish=False)
88
+ update_agent_result = manager.update_agent(agent=agent, automatic_publish=False)
88
89
  if isinstance(update_agent_result, Agent):
89
90
  print(f"Success: Updated Agent: {update_agent_result.description}")
90
91
  else:
@@ -93,7 +94,7 @@ def main():
93
94
  exit()
94
95
 
95
96
  print("Publishing agent revision '1'...")
96
- publish_agent_result = manager.publish_agent_revision(project_id=project_id, agent_id=created_entities["agent_id"], revision="1")
97
+ publish_agent_result = manager.publish_agent_revision(agent_id=created_entities["agent_id"], revision="1")
97
98
  if isinstance(publish_agent_result, Agent):
98
99
  print(f"Success: Published Agent Revision: {publish_agent_result.name}")
99
100
  else:
@@ -102,7 +103,7 @@ def main():
102
103
  exit()
103
104
 
104
105
  print("Retrieving latest agent version...")
105
- latest_agent = manager.get_agent(project_id=project_id, agent_id=created_entities["agent_id"])
106
+ latest_agent = manager.get_agent(agent_id=created_entities["agent_id"])
106
107
  if isinstance(latest_agent, Agent):
107
108
  print(f"Success: Latest Agent: {latest_agent.name}, Description: {latest_agent.description}")
108
109
  else:
@@ -121,7 +122,7 @@ def main():
121
122
  ToolParameter(key="max_length", data_type="Integer", description="Maximum length of output", is_required=False, value="100")
122
123
  ]
123
124
  )
124
- create_tool_result = manager.create_tool(project_id=project_id, tool=tool, automatic_publish=False)
125
+ create_tool_result = manager.create_tool(tool=tool, automatic_publish=False)
125
126
  if isinstance(create_tool_result, Tool):
126
127
  print(f"Success: Created Tool: {create_tool_result.name}, ID: {create_tool_result.id}")
127
128
  created_entities["tool_id"] = create_tool_result.id
@@ -132,7 +133,7 @@ def main():
132
133
 
133
134
  print("Updating tool description...")
134
135
  tool.description = "Updated tool for enhanced text processing"
135
- update_tool_result = manager.update_tool(project_id=project_id, tool=tool, automatic_publish=False)
136
+ update_tool_result = manager.update_tool(tool=tool, automatic_publish=False)
136
137
  if isinstance(update_tool_result, Tool):
137
138
  print(f"Success: Updated Tool: {update_tool_result.description}")
138
139
  else:
@@ -141,7 +142,7 @@ def main():
141
142
  exit()
142
143
 
143
144
  print("Publishing tool revision '1'...")
144
- publish_tool_result = manager.publish_tool_revision(project_id=project_id, tool_id=created_entities["tool_id"], revision="1")
145
+ publish_tool_result = manager.publish_tool_revision(tool_id=created_entities["tool_id"], revision="1")
145
146
  if isinstance(publish_tool_result, Tool):
146
147
  print(f"Success: Published Tool Revision: {publish_tool_result.name}")
147
148
  else:
@@ -150,7 +151,7 @@ def main():
150
151
  exit()
151
152
 
152
153
  print("Retrieving latest tool version...")
153
- latest_tool = manager.get_tool(project_id=project_id, tool_id=created_entities["tool_id"])
154
+ latest_tool = manager.get_tool(tool_id=created_entities["tool_id"])
154
155
  if isinstance(latest_tool, Tool):
155
156
  print(f"Success: Latest Tool: {latest_tool.name}, Description: {latest_tool.description}")
156
157
  else:
@@ -166,7 +167,7 @@ def main():
166
167
  description="Processes text data using an agent",
167
168
  title_template="Text Processing Task #{{id}}"
168
169
  )
169
- create_task_result = manager.create_task(project_id=project_id, task=task, automatic_publish=False)
170
+ create_task_result = manager.create_task(task=task, automatic_publish=False)
170
171
  if isinstance(create_task_result, Task):
171
172
  print(f"Success: Created Task: {create_task_result.name}, ID: {create_task_result.id}")
172
173
  created_entities["task_id"] = create_task_result.id
@@ -180,7 +181,7 @@ def main():
180
181
 
181
182
  print("Updating task description...")
182
183
  task.description = "Updated task for text processing with agent collaboration"
183
- update_task_result = manager.update_task(project_id=project_id, task=task, automatic_publish=False)
184
+ update_task_result = manager.update_task(task=task, automatic_publish=False)
184
185
  if isinstance(update_task_result, Task):
185
186
  print(f"Success: Updated Task: {update_task_result.description}")
186
187
  else:
@@ -189,7 +190,7 @@ def main():
189
190
  exit()
190
191
 
191
192
  print("Publishing task revision '1'...")
192
- publish_task_result = manager.publish_task_revision(project_id=project_id, task_id=created_entities["task_id"], revision="1")
193
+ publish_task_result = manager.publish_task_revision(task_id=created_entities["task_id"], revision="1")
193
194
  if isinstance(publish_task_result, Task):
194
195
  print(f"Success: Published Task Revision: {publish_task_result.name}")
195
196
  else:
@@ -198,7 +199,7 @@ def main():
198
199
  exit()
199
200
 
200
201
  print("Retrieving latest task version...")
201
- latest_task = manager.get_task(project_id=project_id, task_id=created_entities["task_id"])
202
+ latest_task = manager.get_task(task_id=created_entities["task_id"])
202
203
  if isinstance(latest_task, Task):
203
204
  print(f"Success: Latest Task: {latest_task.name}, Description: {latest_task.description}")
204
205
  else:
@@ -238,7 +239,7 @@ def main():
238
239
  SequenceFlow(key="flow4", source_key="analysis_complete", target_key="end")
239
240
  ]
240
241
  )
241
- create_process_result = manager.create_process(project_id=project_id, process=process, automatic_publish=False)
242
+ create_process_result = manager.create_process(process=process, automatic_publish=False)
242
243
  if isinstance(create_process_result, AgenticProcess):
243
244
  print(f"Success: Created Process: {create_process_result.name}, ID: {create_process_result.id}")
244
245
  created_entities["process_id"] = create_process_result.id
@@ -249,7 +250,7 @@ def main():
249
250
 
250
251
  print("Updating process description...")
251
252
  process.description = "Updated process for advanced text analysis"
252
- update_process_result = manager.update_process(project_id=project_id, process=process, automatic_publish=False)
253
+ update_process_result = manager.update_process(process=process, automatic_publish=False)
253
254
  if isinstance(update_process_result, AgenticProcess):
254
255
  print(f"Success: Updated Process: {update_process_result.description}")
255
256
  else:
@@ -258,7 +259,7 @@ def main():
258
259
  exit()
259
260
 
260
261
  print("Publishing process revision '1'...")
261
- publish_process_result = manager.publish_process_revision(project_id=project_id, process_id=created_entities["process_id"], revision="1")
262
+ publish_process_result = manager.publish_process_revision(process_id=created_entities["process_id"], revision="1")
262
263
  if isinstance(publish_process_result, AgenticProcess):
263
264
  print(f"Success: Published Process Revision: {publish_process_result.name}")
264
265
  else:
@@ -267,7 +268,7 @@ def main():
267
268
  exit()
268
269
 
269
270
  print("Retrieving latest process version...")
270
- latest_process = manager.get_process(project_id=project_id, process_id=created_entities["process_id"])
271
+ latest_process = manager.get_process(process_id=created_entities["process_id"])
271
272
  if isinstance(latest_process, AgenticProcess):
272
273
  print(f"Success: Latest Process: {latest_process.name}, Description: {latest_process.description}")
273
274
  else:
@@ -296,7 +297,7 @@ def main():
296
297
  exit()
297
298
 
298
299
  print("Retrieving instance information...")
299
- instance_info = manager.get_instance(project_id=project_id, instance_id=created_entities["instance_id"])
300
+ instance_info = manager.get_instance(instance_id=created_entities["instance_id"])
300
301
  if isinstance(instance_info, ProcessInstance):
301
302
  print(f"Success: Instance Info: Process: {instance_info.process.name}, Subject: {instance_info.subject}")
302
303
  else:
@@ -305,7 +306,7 @@ def main():
305
306
  exit()
306
307
 
307
308
  print("Retrieving instance history...")
308
- history = manager.get_instance_history(project_id=project_id, instance_id=created_entities["instance_id"])
309
+ history = manager.get_instance_history(instance_id=created_entities["instance_id"])
309
310
  if isinstance(history, dict):
310
311
  print(f"Success: Instance History: {history}")
311
312
  else:
@@ -320,5 +321,6 @@ if __name__ == "__main__":
320
321
  try:
321
322
  main()
322
323
  except Exception as e:
324
+ breakpoint()
323
325
  rollback()
324
326
  print(f"\n# Critical error: {e}")
@@ -22,23 +22,23 @@ def rollback():
22
22
  print("\n=== Initiating Rollback ===")
23
23
  if created_entities["instance_id"]:
24
24
  print(f"Deleting instance {created_entities['instance_id']}...")
25
- result = manager.abort_instance(project_id=project_id, instance_id=created_entities["instance_id"])
25
+ result = manager.abort_instance(instance_id=created_entities["instance_id"])
26
26
  print(f"Rollback: {result}")
27
27
  if created_entities["process_id"]:
28
28
  print(f"Deleting process {created_entities['process_id']}...")
29
- result = manager.delete_process(project_id=project_id, process_id=created_entities["process_id"])
29
+ result = manager.delete_process(process_id=created_entities["process_id"])
30
30
  print(f"Rollback: {result}")
31
31
  if created_entities["task_id"]:
32
32
  print(f"Deleting task {created_entities['task_id']}...")
33
- result = manager.delete_task(project_id=project_id, task_id=created_entities["task_id"])
33
+ result = manager.delete_task(task_id=created_entities["task_id"])
34
34
  print(f"Rollback: {result}")
35
35
  if created_entities["tool_id"]:
36
36
  print(f"Deleting tool {created_entities['tool_id']}...")
37
- result = manager.delete_tool(project_id=project_id, tool_id=created_entities["tool_id"])
37
+ result = manager.delete_tool(tool_id=created_entities["tool_id"])
38
38
  print(f"Rollback: {result}")
39
39
  if created_entities["agent_id"]:
40
40
  print(f"Deleting agent {created_entities['agent_id']}...")
41
- result = manager.delete_agent(project_id=project_id, agent_id=created_entities["agent_id"])
41
+ result = manager.delete_agent(agent_id=created_entities["agent_id"])
42
42
  print(f"Rollback: {result}")
43
43
  print("Rollback complete.")
44
44
 
@@ -82,7 +82,7 @@ def main():
82
82
  revision=1,
83
83
  status="pending"
84
84
  )
85
- create_tool_result = manager.create_tool(project_id=project_id, tool=tool, automatic_publish=False)
85
+ create_tool_result = manager.create_tool(tool=tool, automatic_publish=False)
86
86
  if isinstance(create_tool_result, Tool):
87
87
  print(f"Success: Created Tool: {create_tool_result.name}, ID: {create_tool_result.id}")
88
88
  created_entities["tool_id"] = create_tool_result.id
@@ -107,7 +107,7 @@ def main():
107
107
  value="English"
108
108
  )
109
109
  )
110
- update_tool_result = manager.update_tool(project_id=project_id, tool=tool, automatic_publish=False)
110
+ update_tool_result = manager.update_tool(tool=tool, automatic_publish=False)
111
111
  if isinstance(update_tool_result, Tool):
112
112
  print(f"Success: Updated Tool: {update_tool_result.description}")
113
113
  else:
@@ -116,7 +116,7 @@ def main():
116
116
  exit()
117
117
 
118
118
  print("Publishing tool revision '1'...")
119
- publish_tool_result = manager.publish_tool_revision(project_id=project_id, tool_id=created_entities["tool_id"], revision="1")
119
+ publish_tool_result = manager.publish_tool_revision(tool_id=created_entities["tool_id"], revision="1")
120
120
  if isinstance(publish_tool_result, Tool):
121
121
  print(f"Success: Published Tool Revision: {publish_tool_result.name}")
122
122
  else:
@@ -125,7 +125,7 @@ def main():
125
125
  exit()
126
126
 
127
127
  print("Retrieving latest tool version...")
128
- latest_tool = manager.get_tool(project_id=project_id, tool_id=created_entities["tool_id"])
128
+ latest_tool = manager.get_tool(tool_id=created_entities["tool_id"])
129
129
  if isinstance(latest_tool, Tool):
130
130
  print(f"Success: Latest Tool: {latest_tool.name}, Description: {latest_tool.description}")
131
131
  else:
@@ -184,7 +184,7 @@ def main():
184
184
  revision=1,
185
185
  status="pending"
186
186
  )
187
- create_agent_result = manager.create_agent(project_id=project_id, agent=agent, automatic_publish=False)
187
+ create_agent_result = manager.create_agent(agent=agent, automatic_publish=False)
188
188
  if isinstance(create_agent_result, Agent):
189
189
  print(f"Success: Created Agent: {create_agent_result.name}, ID: {create_agent_result.id}")
190
190
  created_entities["agent_id"] = create_agent_result.id
@@ -200,7 +200,7 @@ def main():
200
200
  agent.description = "Improved agent for text summarization tasks"
201
201
  agent.job_description = "Summarizes text and extracts key insights"
202
202
 
203
- update_agent_result = manager.update_agent(project_id=project_id, agent=agent, automatic_publish=False)
203
+ update_agent_result = manager.update_agent(agent=agent, automatic_publish=False)
204
204
  if isinstance(update_agent_result, Agent):
205
205
  print(f"Success: Updated Agent: {update_agent_result.description}")
206
206
  else:
@@ -209,7 +209,7 @@ def main():
209
209
  exit()
210
210
 
211
211
  print("Publishing agent revision '1'...")
212
- publish_agent_result = manager.publish_agent_revision(project_id=project_id, agent_id=created_entities["agent_id"], revision="1")
212
+ publish_agent_result = manager.publish_agent_revision(agent_id=created_entities["agent_id"], revision="1")
213
213
  if isinstance(publish_agent_result, Agent):
214
214
  print(f"Success: Published Agent Revision: {publish_agent_result.name}")
215
215
  else:
@@ -218,7 +218,7 @@ def main():
218
218
  exit()
219
219
 
220
220
  print("Retrieving latest agent version...")
221
- latest_agent = manager.get_agent(project_id=project_id, agent_id=created_entities["agent_id"])
221
+ latest_agent = manager.get_agent(agent_id=created_entities["agent_id"])
222
222
  if isinstance(latest_agent, Agent):
223
223
  print(f"Success: Latest Agent: {latest_agent.name}, Description: {latest_agent.description}")
224
224
  else:
@@ -259,7 +259,7 @@ def main():
259
259
  revision=1,
260
260
  status="pending"
261
261
  )
262
- create_task_result = manager.create_task(project_id=project_id, task=task, automatic_publish=False)
262
+ create_task_result = manager.create_task(task=task, automatic_publish=False)
263
263
  if isinstance(create_task_result, Task):
264
264
  print(f"Success: Created Task: {create_task_result.name}, ID: {create_task_result.id}")
265
265
  created_entities["task_id"] = create_task_result.id
@@ -275,7 +275,7 @@ def main():
275
275
  task.description = "Enhanced task for text summarization and analysis"
276
276
  task.prompt_data.instructions = "Summarize text and highlight key insights."
277
277
 
278
- update_task_result = manager.update_task(project_id=project_id, task=task, automatic_publish=False)
278
+ update_task_result = manager.update_task(task=task, automatic_publish=False)
279
279
  if isinstance(update_task_result, Task):
280
280
  print(f"Success: Updated Task: {update_task_result.description}")
281
281
  else:
@@ -284,7 +284,7 @@ def main():
284
284
  exit()
285
285
 
286
286
  print("Publishing task revision '1'...")
287
- publish_task_result = manager.publish_task_revision(project_id=project_id, task_id=created_entities["task_id"], revision="1")
287
+ publish_task_result = manager.publish_task_revision(task_id=created_entities["task_id"], revision="1")
288
288
  if isinstance(publish_task_result, Task):
289
289
  print(f"Success: Published Task Revision: {publish_task_result.name}")
290
290
  else:
@@ -293,7 +293,7 @@ def main():
293
293
  exit()
294
294
 
295
295
  print("Retrieving latest task version...")
296
- latest_task = manager.get_task(project_id=project_id, task_id=created_entities["task_id"])
296
+ latest_task = manager.get_task(task_id=created_entities["task_id"])
297
297
  if isinstance(latest_task, Task):
298
298
  print(f"Success: Latest Task: {latest_task.name}, Description: {latest_task.description}")
299
299
  else:
@@ -358,7 +358,7 @@ def main():
358
358
  revision=1,
359
359
  status="pending"
360
360
  )
361
- create_process_result = manager.create_process(project_id=project_id, process=process, automatic_publish=False)
361
+ create_process_result = manager.create_process(process=process, automatic_publish=False)
362
362
  if isinstance(create_process_result, AgenticProcess):
363
363
  print(f"Success: Created Process: {create_process_result.name}, ID: {create_process_result.id}")
364
364
  created_entities["process_id"] = create_process_result.id
@@ -373,7 +373,7 @@ def main():
373
373
  process.description = "Optimized process for text summarization workflows"
374
374
  process.agentic_activities[0].name = "Advanced Text Summarization"
375
375
 
376
- update_process_result = manager.update_process(project_id=project_id, process=process, automatic_publish=False)
376
+ update_process_result = manager.update_process(process=process, automatic_publish=False)
377
377
  if isinstance(update_process_result, AgenticProcess):
378
378
  print(f"Success: Updated Process: {update_process_result.description}")
379
379
  else:
@@ -382,7 +382,7 @@ def main():
382
382
  exit()
383
383
 
384
384
  print("Publishing process revision '1'...")
385
- publish_process_result = manager.publish_process_revision(project_id=project_id, process_id=created_entities["process_id"], revision="1")
385
+ publish_process_result = manager.publish_process_revision(process_id=created_entities["process_id"], revision="1")
386
386
  if isinstance(publish_process_result, AgenticProcess):
387
387
  print(f"Success: Published Process Revision: {publish_process_result.name}")
388
388
  else:
@@ -391,7 +391,7 @@ def main():
391
391
  exit()
392
392
 
393
393
  print("Retrieving latest process version...")
394
- latest_process = manager.get_process(project_id=project_id, process_id=created_entities["process_id"])
394
+ latest_process = manager.get_process(process_id=created_entities["process_id"])
395
395
  if isinstance(latest_process, AgenticProcess):
396
396
  print(f"Success: Latest Process: {latest_process.name}, Description: {latest_process.description}")
397
397
  else:
@@ -417,7 +417,7 @@ def main():
417
417
  exit()
418
418
 
419
419
  print("Retrieving instance information...")
420
- instance_info = manager.get_instance(project_id=project_id, instance_id=created_entities["instance_id"])
420
+ instance_info = manager.get_instance(instance_id=created_entities["instance_id"])
421
421
  if isinstance(instance_info, ProcessInstance):
422
422
  print(f"Success: Instance Info: Process: {instance_info.process.name}, Subject: {instance_info.subject}")
423
423
  else:
@@ -426,7 +426,7 @@ def main():
426
426
  exit()
427
427
 
428
428
  print("Retrieving instance history...")
429
- history = manager.get_instance_history(project_id=project_id, instance_id=created_entities["instance_id"])
429
+ history = manager.get_instance_history(instance_id=created_entities["instance_id"])
430
430
  if isinstance(history, dict):
431
431
  print(f"Success: Instance History: {history}")
432
432
  else:
@@ -3,9 +3,9 @@ from pygeai.lab.models import Agent, AgentData, Prompt, LlmConfig, Model, Sampli
3
3
 
4
4
  agent = Agent(
5
5
  status="active",
6
- name="Public Translator V24",
7
- access_scope="public",
8
- public_name="com.genexus.geai.public_translator_24",
6
+ name="Private Translator V6",
7
+ access_scope="private",
8
+ # public_name="com.genexus.geai.public_translator_24",
9
9
  job_description="Translates",
10
10
  avatar_image="https://www.shareicon.net/data/128x128/2016/11/09/851442_logo_512x512.png",
11
11
  description="Agent that translates from any language to english.",
@@ -26,6 +26,7 @@ agent = Agent(
26
26
  PromptExample(input_data="esto es una prueba pincheguey [keep-slang]", output='{"translated_text":"this is a test pal","summary":"prueba"}')
27
27
  ]
28
28
  ),
29
+ strategy_name="Dynamic Prompting",
29
30
  llm_config=LlmConfig(
30
31
  max_tokens=5000,
31
32
  timeout=0,
@@ -38,14 +39,10 @@ agent = Agent(
38
39
 
39
40
  manager = AILabManager()
40
41
  result = manager.create_agent(
41
- project_id="2ca6883f-6778-40bb-bcc1-85451fb11107",
42
42
  agent=agent,
43
43
  automatic_publish=False
44
44
  )
45
45
 
46
46
 
47
- if isinstance(result, Agent):
48
- print(f"Agent: {agent.to_dict()}")
49
- else:
50
- print("Errors:", result.errors)
47
+ print(f"Agent: {agent.to_dict()}")
51
48
 
@@ -39,14 +39,10 @@ agent = Agent(
39
39
 
40
40
  manager = AILabManager()
41
41
  result = manager.create_agent(
42
- project_id="2ca6883f-6778-40bb-bcc1-85451fb11107",
43
42
  agent=agent,
44
43
  automatic_publish=False
45
44
  )
46
45
 
47
46
 
48
- if isinstance(result, Agent):
49
- print(f"Agent: {agent.to_dict()}")
50
- else:
51
- print("Errors:", result.errors)
47
+ print(f"Agent: {agent.to_dict()}")
52
48
 
@@ -0,0 +1,48 @@
1
+ from pygeai.lab.managers import AILabManager
2
+ from pygeai.lab.models import Agent, AgentData, Prompt, LlmConfig, Model, Sampling, PromptExample, PromptOutput
3
+
4
+ agent = Agent(
5
+ id="f64ba214-152b-4dd4-be0d-2920da415f5d",
6
+ status="active",
7
+ name="Private Translator V25",
8
+ access_scope="private",
9
+ public_name="com.genexus.geai.private_translator#",
10
+ job_description="Translates",
11
+ avatar_image="https://www.shareicon.net/data/128x128/2016/11/09/851442_logo_512x512.png",
12
+ description="Agent that translates from any language to english.",
13
+ is_draft=False,
14
+ is_readonly=False,
15
+ revision=1,
16
+ version=None,
17
+ agent_data=AgentData(
18
+ prompt=Prompt(
19
+ instructions="the user will provide a text, you must return the same text translated to english",
20
+ inputs=["text", "avoid slang indicator"],
21
+ outputs=[
22
+ PromptOutput(key="translated_text", description="translated text, with slang or not depending on the indication. in plain text."),
23
+ PromptOutput(key="summary", description="a summary in the original language of the text to be translated, also in plain text.")
24
+ ],
25
+ examples=[
26
+ PromptExample(input_data="opitiiiis mundo [no-slang]", output='{"translated_text":"hello world","summary":"saludo"}'),
27
+ PromptExample(input_data="esto es una prueba pincheguey [keep-slang]", output='{"translated_text":"this is a test pal","summary":"prueba"}')
28
+ ]
29
+ ),
30
+ llm_config=LlmConfig(
31
+ max_tokens=5000,
32
+ timeout=0,
33
+ sampling=Sampling(temperature=0.5, top_k=0, top_p=0)
34
+ ),
35
+ models=[Model(name="gpt-4-turbo-preview")]
36
+ )
37
+ )
38
+
39
+
40
+ manager = AILabManager()
41
+ result = manager.create_agent(
42
+ agent=agent,
43
+ automatic_publish=False
44
+ )
45
+
46
+
47
+ print(f"Agent: {agent.to_dict()}")
48
+
@@ -0,0 +1,39 @@
1
+ from pygeai.lab.managers import AILabManager
2
+ from pygeai.lab.models import Agent, AgentData, Prompt, LlmConfig, Model, Permission
3
+
4
+ # Create an agent with permissions configured
5
+ agent = Agent(
6
+ name="Agent_With_Permissions",
7
+ description="Agent demonstrating permissions configuration",
8
+ access_scope="private",
9
+ is_draft=True,
10
+ sharing_scope="organization",
11
+ permissions=Permission(
12
+ allow_chat_sharing=True,
13
+ allow_external_execution=False
14
+ ),
15
+ agent_data=AgentData(
16
+ prompt=Prompt(
17
+ instructions="You are a collaborative assistant that can be shared within the organization",
18
+ inputs=["user_query"]
19
+ ),
20
+ llm_config=LlmConfig(max_tokens=2000),
21
+ strategy_name="Dynamic Prompting",
22
+ models=[Model(name="gpt-4-turbo-preview")]
23
+ )
24
+ )
25
+
26
+ manager = AILabManager()
27
+ result = manager.create_agent(agent=agent, automatic_publish=False)
28
+
29
+ print(f"Created agent: {result.name}")
30
+ print(f"Agent ID: {result.id}")
31
+ print(f"Sharing scope: {result.sharing_scope}")
32
+ if result.permissions:
33
+ print(f"\nPermissions:")
34
+ print(f" - Allow chat sharing: {result.permissions.allow_chat_sharing}")
35
+ print(f" - Allow external execution: {result.permissions.allow_external_execution}")
36
+ if result.effective_permissions:
37
+ print(f"\nEffective Permissions:")
38
+ print(f" - Allow chat sharing: {result.effective_permissions.allow_chat_sharing}")
39
+ print(f" - Allow external execution: {result.effective_permissions.allow_external_execution}")