pygeai 0.6.0b11__py3-none-any.whl → 0.6.0b13__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 (138) hide show
  1. pygeai/_docs/source/content/ai_lab/cli.rst +4 -4
  2. pygeai/_docs/source/content/ai_lab/models.rst +169 -35
  3. pygeai/_docs/source/content/ai_lab/runner.rst +2 -2
  4. pygeai/_docs/source/content/ai_lab/spec.rst +9 -9
  5. pygeai/_docs/source/content/ai_lab/usage.rst +34 -34
  6. pygeai/_docs/source/content/ai_lab.rst +1 -1
  7. pygeai/_docs/source/content/analytics.rst +598 -0
  8. pygeai/_docs/source/content/api_reference/chat.rst +428 -2
  9. pygeai/_docs/source/content/api_reference/embeddings.rst +1 -1
  10. pygeai/_docs/source/content/api_reference/project.rst +184 -0
  11. pygeai/_docs/source/content/api_reference/rag.rst +2 -2
  12. pygeai/_docs/source/content/authentication.rst +295 -0
  13. pygeai/_docs/source/content/cli.rst +79 -2
  14. pygeai/_docs/source/content/debugger.rst +1 -1
  15. pygeai/_docs/source/content/migration.rst +19 -2
  16. pygeai/_docs/source/index.rst +2 -0
  17. pygeai/_docs/source/pygeai.analytics.rst +53 -0
  18. pygeai/_docs/source/pygeai.cli.commands.rst +8 -0
  19. pygeai/_docs/source/pygeai.rst +1 -0
  20. pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
  21. pygeai/_docs/source/pygeai.tests.auth.rst +8 -0
  22. pygeai/_docs/source/pygeai.tests.rst +1 -1
  23. pygeai/analytics/__init__.py +0 -0
  24. pygeai/analytics/clients.py +505 -0
  25. pygeai/analytics/endpoints.py +35 -0
  26. pygeai/analytics/managers.py +606 -0
  27. pygeai/analytics/mappers.py +207 -0
  28. pygeai/analytics/responses.py +240 -0
  29. pygeai/assistant/managers.py +1 -1
  30. pygeai/chat/managers.py +1 -1
  31. pygeai/cli/commands/analytics.py +525 -0
  32. pygeai/cli/commands/base.py +16 -0
  33. pygeai/cli/commands/common.py +28 -24
  34. pygeai/cli/commands/migrate.py +75 -6
  35. pygeai/cli/commands/organization.py +265 -0
  36. pygeai/cli/commands/validators.py +144 -1
  37. pygeai/cli/error_handler.py +41 -6
  38. pygeai/cli/geai.py +106 -18
  39. pygeai/cli/parsers.py +75 -31
  40. pygeai/cli/texts/help.py +75 -6
  41. pygeai/core/base/clients.py +18 -4
  42. pygeai/core/base/session.py +59 -7
  43. pygeai/core/common/config.py +25 -2
  44. pygeai/core/common/exceptions.py +64 -1
  45. pygeai/core/embeddings/managers.py +1 -1
  46. pygeai/core/files/managers.py +1 -1
  47. pygeai/core/rerank/managers.py +1 -1
  48. pygeai/core/services/rest.py +20 -2
  49. pygeai/evaluation/clients.py +5 -3
  50. pygeai/lab/agents/clients.py +3 -3
  51. pygeai/lab/agents/endpoints.py +2 -2
  52. pygeai/lab/agents/mappers.py +50 -2
  53. pygeai/lab/clients.py +5 -2
  54. pygeai/lab/managers.py +8 -10
  55. pygeai/lab/models.py +70 -2
  56. pygeai/lab/tools/clients.py +1 -59
  57. pygeai/migration/__init__.py +3 -1
  58. pygeai/migration/strategies.py +72 -3
  59. pygeai/organization/clients.py +110 -1
  60. pygeai/organization/endpoints.py +11 -7
  61. pygeai/organization/limits/managers.py +1 -1
  62. pygeai/organization/managers.py +135 -3
  63. pygeai/organization/mappers.py +28 -2
  64. pygeai/organization/responses.py +11 -1
  65. pygeai/tests/analytics/__init__.py +0 -0
  66. pygeai/tests/analytics/test_clients.py +86 -0
  67. pygeai/tests/analytics/test_managers.py +94 -0
  68. pygeai/tests/analytics/test_mappers.py +84 -0
  69. pygeai/tests/analytics/test_responses.py +73 -0
  70. pygeai/tests/auth/test_oauth.py +172 -0
  71. pygeai/tests/cli/commands/test_migrate.py +14 -1
  72. pygeai/tests/cli/commands/test_organization.py +69 -1
  73. pygeai/tests/cli/test_error_handler.py +4 -4
  74. pygeai/tests/cli/test_geai_driver.py +1 -1
  75. pygeai/tests/lab/agents/test_mappers.py +128 -1
  76. pygeai/tests/lab/test_models.py +2 -0
  77. pygeai/tests/lab/tools/test_clients.py +2 -31
  78. pygeai/tests/organization/test_clients.py +180 -1
  79. pygeai/tests/organization/test_managers.py +40 -0
  80. pygeai/tests/snippets/analytics/__init__.py +0 -0
  81. pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
  82. pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
  83. pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
  84. pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
  85. pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
  86. pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
  87. pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
  88. pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
  89. pygeai/tests/snippets/analytics/get_total_tokens.py +12 -0
  90. pygeai/tests/snippets/chat/get_response_complete_example.py +67 -0
  91. pygeai/tests/snippets/chat/get_response_with_instructions.py +19 -0
  92. pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
  93. pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
  94. pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
  95. pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
  96. pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -0
  97. pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
  98. pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
  99. pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
  100. pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
  101. pygeai/tests/snippets/organization/add_project_member.py +10 -0
  102. pygeai/tests/snippets/organization/add_project_member_batch.py +44 -0
  103. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/METADATA +1 -1
  104. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/RECORD +108 -98
  105. pygeai/_docs/source/pygeai.tests.snippets.assistants.data_analyst.rst +0 -37
  106. pygeai/_docs/source/pygeai.tests.snippets.assistants.rag.rst +0 -85
  107. pygeai/_docs/source/pygeai.tests.snippets.assistants.rst +0 -78
  108. pygeai/_docs/source/pygeai.tests.snippets.auth.rst +0 -10
  109. pygeai/_docs/source/pygeai.tests.snippets.chat.rst +0 -125
  110. pygeai/_docs/source/pygeai.tests.snippets.dbg.rst +0 -45
  111. pygeai/_docs/source/pygeai.tests.snippets.embeddings.rst +0 -61
  112. pygeai/_docs/source/pygeai.tests.snippets.evaluation.dataset.rst +0 -197
  113. pygeai/_docs/source/pygeai.tests.snippets.evaluation.plan.rst +0 -133
  114. pygeai/_docs/source/pygeai.tests.snippets.evaluation.result.rst +0 -37
  115. pygeai/_docs/source/pygeai.tests.snippets.evaluation.rst +0 -20
  116. pygeai/_docs/source/pygeai.tests.snippets.extras.rst +0 -37
  117. pygeai/_docs/source/pygeai.tests.snippets.files.rst +0 -53
  118. pygeai/_docs/source/pygeai.tests.snippets.gam.rst +0 -21
  119. pygeai/_docs/source/pygeai.tests.snippets.lab.agents.rst +0 -93
  120. pygeai/_docs/source/pygeai.tests.snippets.lab.processes.jobs.rst +0 -21
  121. pygeai/_docs/source/pygeai.tests.snippets.lab.processes.kbs.rst +0 -45
  122. pygeai/_docs/source/pygeai.tests.snippets.lab.processes.rst +0 -46
  123. pygeai/_docs/source/pygeai.tests.snippets.lab.rst +0 -82
  124. pygeai/_docs/source/pygeai.tests.snippets.lab.samples.rst +0 -21
  125. pygeai/_docs/source/pygeai.tests.snippets.lab.strategies.rst +0 -45
  126. pygeai/_docs/source/pygeai.tests.snippets.lab.tools.rst +0 -85
  127. pygeai/_docs/source/pygeai.tests.snippets.lab.use_cases.rst +0 -117
  128. pygeai/_docs/source/pygeai.tests.snippets.migrate.rst +0 -10
  129. pygeai/_docs/source/pygeai.tests.snippets.organization.rst +0 -109
  130. pygeai/_docs/source/pygeai.tests.snippets.rag.rst +0 -85
  131. pygeai/_docs/source/pygeai.tests.snippets.rerank.rst +0 -21
  132. pygeai/_docs/source/pygeai.tests.snippets.rst +0 -32
  133. pygeai/_docs/source/pygeai.tests.snippets.secrets.rst +0 -10
  134. pygeai/_docs/source/pygeai.tests.snippets.usage_limit.rst +0 -77
  135. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/WHEEL +0 -0
  136. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/entry_points.txt +0 -0
  137. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/licenses/LICENSE +0 -0
  138. {pygeai-0.6.0b11.dist-info → pygeai-0.6.0b13.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  Working with the GEAI Lab using the CLI
2
- ======================================
2
+ =======================================
3
3
 
4
4
  The `geai ai-lab` command-line interface (CLI) allows users to interact with the Globant Enterprise AI (GEAI) Lab to manage agents, tools, reasoning strategies, processes, tasks, and process instances. This guide provides step-by-step instructions for performing common operations using CLI commands.
5
5
 
@@ -309,7 +309,7 @@ Remove a tool from the project.
309
309
  --tool-id "88888888-8888-8888-8888-888888888888"
310
310
 
311
311
  Managing Reasoning Strategies
312
- ----------------------------
312
+ -----------------------------
313
313
 
314
314
  Reasoning strategies define how agents process information.
315
315
 
@@ -591,7 +591,7 @@ Remove a task from the project.
591
591
  --task-id "eeeeffff-0000-1111-2222-333333333333"
592
592
 
593
593
  Managing Process Instances
594
- -------------------------
594
+ --------------------------
595
595
 
596
596
  Process instances represent running workflows.
597
597
 
@@ -690,7 +690,7 @@ Stop a running process instance.
690
690
  --instance-id "<instance-id>"
691
691
 
692
692
  Complete Example Workflow
693
- ------------------------
693
+ -------------------------
694
694
 
695
695
  This example demonstrates creating an agent, a task, a process, and starting an instance.
696
696
 
@@ -42,7 +42,7 @@ Usage Examples
42
42
  # Output: Dictionary with filter settings
43
43
 
44
44
  Restrictions and Considerations
45
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46
46
 
47
47
  - Most fields are optional for flexible queries.
48
48
  - Pagination requires non-negative integers.
@@ -86,7 +86,7 @@ Usage Examples
86
86
  # Output: {"temperature": 0.8, "topK": 40, "topP": 0.95}
87
87
 
88
88
  Restrictions and Considerations
89
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
89
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90
90
 
91
91
  - All fields are required.
92
92
  - Temperature should range from 0.1 to 2.0.
@@ -135,7 +135,7 @@ Usage Examples
135
135
  # Output: Dictionary with LLM settings
136
136
 
137
137
  Restrictions and Considerations
138
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139
139
 
140
140
  - Core fields are mandatory.
141
141
  - Token limits depend on LLM capacity.
@@ -188,7 +188,7 @@ Usage Examples
188
188
  # Output: Dictionary with model settings
189
189
 
190
190
  Restrictions and Considerations
191
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
191
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
192
192
 
193
193
  - Name is required; must be Lab-supported.
194
194
  - Optional LLM config can be a dictionary.
@@ -231,7 +231,7 @@ Usage Examples
231
231
  # Output: Dictionary with example data
232
232
 
233
233
  Restrictions and Considerations
234
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235
235
 
236
236
  - Both fields are required; output must be JSON.
237
237
  - Keep examples concise and relevant.
@@ -274,7 +274,7 @@ Usage Examples
274
274
  # Output: {"key": "summary", "description": "Text summary."}
275
275
 
276
276
  Restrictions and Considerations
277
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
277
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
278
278
 
279
279
  - Key and description are required.
280
280
  - Keys must be unique per prompt.
@@ -321,7 +321,7 @@ Usage Examples
321
321
  # Output: Dictionary with prompt settings
322
322
 
323
323
  Restrictions and Considerations
324
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
325
325
 
326
326
  - Instructions, inputs, and outputs are required.
327
327
  - Outputs need at least one entry.
@@ -367,7 +367,7 @@ Usage Examples
367
367
  # Output: List of model dictionaries
368
368
 
369
369
  Restrictions and Considerations
370
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
370
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
371
371
 
372
372
  - Models collection is required; can be empty.
373
373
  - Accepts models as dictionaries.
@@ -375,6 +375,92 @@ Restrictions and Considerations
375
375
  - Ensure unique model names.
376
376
  - Simplifies bulk model setup.
377
377
 
378
+
379
+ Permission
380
+ ----------
381
+
382
+ Purpose
383
+ ~~~~~~~
384
+
385
+ Represents permission settings for an agent, defining access levels for chat sharing and external execution.
386
+
387
+ Usage Examples
388
+ ~~~~~~~~~~~~~~
389
+
390
+ **Via Attributes**:
391
+
392
+ .. code-block:: python
393
+
394
+ from pygeai.lab.models import Permission
395
+
396
+ permission = Permission(chat_sharing="organization", external_execution="project")
397
+ print(permission.to_dict())
398
+ # Output: {"chatSharing": "organization", "externalExecution": "project"}
399
+
400
+ **Via Dictionary**:
401
+
402
+ .. code-block:: python
403
+
404
+ from pygeai.lab.models import Permission
405
+
406
+ permission = Permission(**{
407
+ "chatSharing": "organization",
408
+ "externalExecution": "none"
409
+ })
410
+ print(permission.to_dict())
411
+ # Output: {"chatSharing": "organization", "externalExecution": "none"}
412
+
413
+ Restrictions and Considerations
414
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
415
+
416
+ - Valid values for both fields: "none", "organization", "project"
417
+ - Both fields are optional
418
+ - Used to control agent sharing and execution permissions
419
+ - Can be used as `permissions` or `effective_permissions` in Agent model
420
+
421
+ Property
422
+ --------
423
+
424
+ Purpose
425
+ ~~~~~~~
426
+
427
+ Represents a custom property for an agent, allowing key-value storage with type information.
428
+
429
+ Usage Examples
430
+ ~~~~~~~~~~~~~~
431
+
432
+ **Via Attributes**:
433
+
434
+ .. code-block:: python
435
+
436
+ from pygeai.lab.models import Property
437
+
438
+ property = Property(data_type="string", key="environment", value="production")
439
+ print(property.to_dict())
440
+ # Output: {"dataType": "string", "key": "environment", "value": "production"}
441
+
442
+ **Via Dictionary**:
443
+
444
+ .. code-block:: python
445
+
446
+ from pygeai.lab.models import Property
447
+
448
+ property = Property(**{
449
+ "dataType": "number",
450
+ "key": "max_retries",
451
+ "value": "3"
452
+ })
453
+ print(property.to_dict())
454
+ # Output: {"dataType": "number", "key": "max_retries", "value": "3"}
455
+
456
+ Restrictions and Considerations
457
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
458
+
459
+ - All three fields (data_type, key, value) are required
460
+ - Supported data types: "string", "number", "boolean", "object", "array"
461
+ - Value is always stored as string, regardless of data_type
462
+ - Used in AgentData to store custom configuration
463
+ - Useful for environment-specific settings
378
464
  AgentData
379
465
  ---------
380
466
 
@@ -422,8 +508,28 @@ Usage Examples
422
508
  print(agent_data.to_dict())
423
509
  # Output: Dictionary with agent data
424
510
 
511
+ **With Properties**:
512
+
513
+ .. code-block:: python
514
+
515
+ from pygeai.lab.models import AgentData, Property
516
+
517
+ agent_data = AgentData(**{
518
+ "prompt": {"instructions": "Process data"},
519
+ "models": [{"name": "gpt-4"}],
520
+ "properties": [
521
+ {"dataType": "string", "key": "environment", "value": "production"},
522
+ {"dataType": "number", "key": "timeout", "value": "30"},
523
+ {"dataType": "boolean", "key": "cache_enabled", "value": "true"}
524
+ ],
525
+ "strategyName": "Dynamic Prompting"
526
+ })
527
+ print(agent_data.properties[0].key) # Output: "environment"
528
+ print(agent_data.strategy_name) # Output: "Dynamic Prompting"
529
+
530
+
425
531
  Restrictions and Considerations
426
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
532
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
427
533
 
428
534
  - Core components are required.
429
535
  - Accepts prompt, LLM config, and models as dictionaries.
@@ -482,8 +588,36 @@ Usage Examples
482
588
  print(agent.to_dict())
483
589
  # Output: Dictionary with agent settings
484
590
 
591
+ **With New Fields (permissions, sharing_scope)**:
592
+
593
+ .. code-block:: python
594
+
595
+ from pygeai.lab.models import Agent, Permission
596
+
597
+ agent = Agent(**{
598
+ "name": "SecureAgent",
599
+ "accessScope": "private",
600
+ "sharingScope": "organization",
601
+ "permissions": {
602
+ "chatSharing": "organization",
603
+ "externalExecution": "none"
604
+ },
605
+ "agentData": {
606
+ "prompt": {"instructions": "Secure assistant"},
607
+ "models": [{"name": "gpt-4"}],
608
+ "properties": [
609
+ {"dataType": "string", "key": "env", "value": "production"},
610
+ {"dataType": "boolean", "key": "logging", "value": "true"}
611
+ ]
612
+ }
613
+ })
614
+ print(agent.sharing_scope) # Output: "organization"
615
+ print(agent.permissions.chat_sharing) # Output: "organization"
616
+ print(agent.agent_data.properties[0].key) # Output: "env"
617
+
618
+
485
619
  Restrictions and Considerations
486
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
620
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
487
621
 
488
622
  - Name is required; avoid special characters.
489
623
  - Accepts `agent_data` as a dictionary.
@@ -529,7 +663,7 @@ Usage Examples
529
663
  # Output: List of agent dictionaries
530
664
 
531
665
  Restrictions and Considerations
532
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
666
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
533
667
 
534
668
  - Agents collection is required; can be empty.
535
669
  - Accepts agents as dictionaries.
@@ -572,7 +706,7 @@ Usage Examples
572
706
  # Output: Dictionary with link details
573
707
 
574
708
  Restrictions and Considerations
575
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
709
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
576
710
 
577
711
  - All fields are required, set by API.
578
712
  - Links must be valid URLs.
@@ -616,7 +750,7 @@ Usage Examples
616
750
  # Output: Dictionary with parameter details
617
751
 
618
752
  Restrictions and Considerations
619
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
753
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
620
754
 
621
755
  - Core fields are mandatory.
622
756
  - Data types must match API expectations.
@@ -658,7 +792,7 @@ Usage Examples
658
792
  # Output: {"description": "Invalid key.", "type": "error"}
659
793
 
660
794
  Restrictions and Considerations
661
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
795
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
662
796
 
663
797
  - Both fields are required.
664
798
  - Types are typically "warning" or "error."
@@ -705,7 +839,7 @@ Usage Examples
705
839
  # Output: Dictionary with tool settings
706
840
 
707
841
  Restrictions and Considerations
708
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
842
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
709
843
 
710
844
  - Name and description are required.
711
845
  - Accepts parameters as dictionaries.
@@ -750,7 +884,7 @@ Usage Examples
750
884
  # Output: Dictionary with tool list
751
885
 
752
886
  Restrictions and Considerations
753
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
887
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
754
888
 
755
889
  - Tools collection is required; can be empty.
756
890
  - Accepts tools as dictionaries.
@@ -792,7 +926,7 @@ Usage Examples
792
926
  # Output: {"language": "english", "description": "Creative strategy."}
793
927
 
794
928
  Restrictions and Considerations
795
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
929
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
796
930
 
797
931
  - Both fields are required.
798
932
  - Use standard language names.
@@ -839,7 +973,7 @@ Usage Examples
839
973
  # Output: Dictionary with strategy settings
840
974
 
841
975
  Restrictions and Considerations
842
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
976
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
843
977
 
844
978
  - Name, scope, and type are required.
845
979
  - Accepts descriptions as dictionaries.
@@ -883,7 +1017,7 @@ Usage Examples
883
1017
  # Output: List of strategy dictionaries
884
1018
 
885
1019
  Restrictions and Considerations
886
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1020
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
887
1021
 
888
1022
  - Strategies collection is required; can be empty.
889
1023
  - Accepts strategies as dictionaries.
@@ -924,7 +1058,7 @@ Usage Examples
924
1058
  # Output: Dictionary with knowledge base settings
925
1059
 
926
1060
  Restrictions and Considerations
927
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1061
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
928
1062
 
929
1063
  - Name and artifact types are required.
930
1064
  - Dictionaries simplify setup.
@@ -969,7 +1103,7 @@ Usage Examples
969
1103
  # Output: Dictionary with activity settings
970
1104
 
971
1105
  Restrictions and Considerations
972
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1106
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
973
1107
 
974
1108
  - Core fields are required.
975
1109
  - Keys must be unique.
@@ -1013,7 +1147,7 @@ Usage Examples
1013
1147
  # Output: Dictionary with signal settings
1014
1148
 
1015
1149
  Restrictions and Considerations
1016
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1150
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1017
1151
 
1018
1152
  - All fields are required.
1019
1153
  - Keys must be unique.
@@ -1055,7 +1189,7 @@ Usage Examples
1055
1189
  # Output: {"key": "user1", "name": "UserInput"}
1056
1190
 
1057
1191
  Restrictions and Considerations
1058
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1192
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1059
1193
 
1060
1194
  - Both fields are required.
1061
1195
  - Keys must be unique.
@@ -1097,7 +1231,7 @@ Usage Examples
1097
1231
  # Output: {"key": "start1", "name": "ProcessStart"}
1098
1232
 
1099
1233
  Restrictions and Considerations
1100
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1234
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1101
1235
 
1102
1236
  - Both fields are required.
1103
1237
  - Keys must be unique.
@@ -1140,7 +1274,7 @@ Usage Examples
1140
1274
  # Output: Dictionary with flow settings
1141
1275
 
1142
1276
  Restrictions and Considerations
1143
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1277
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1144
1278
 
1145
1279
  - All fields are required.
1146
1280
  - Keys must be unique.
@@ -1182,7 +1316,7 @@ Usage Examples
1182
1316
  # Output: {"key": "input_text", "value": "Sample text"}
1183
1317
 
1184
1318
  Restrictions and Considerations
1185
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1319
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1186
1320
 
1187
1321
  - Both fields are required.
1188
1322
  - Keys should be unique.
@@ -1226,7 +1360,7 @@ Usage Examples
1226
1360
  # Output: List of variable dictionaries
1227
1361
 
1228
1362
  Restrictions and Considerations
1229
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1363
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1230
1364
 
1231
1365
  - Variables collection is optional; defaults to empty.
1232
1366
  - Accepts variables as dictionaries.
@@ -1282,7 +1416,7 @@ Usage Examples
1282
1416
  # Output: Dictionary with process settings
1283
1417
 
1284
1418
  Restrictions and Considerations
1285
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1419
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1286
1420
 
1287
1421
  - Name is required; avoid special characters.
1288
1422
  - Accepts activities, events, and flows as dictionaries.
@@ -1325,7 +1459,7 @@ Usage Examples
1325
1459
  # Output: Dictionary with artifact settings
1326
1460
 
1327
1461
  Restrictions and Considerations
1328
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1462
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1329
1463
 
1330
1464
  - Name and usage type are required.
1331
1465
  - Usage type is "input" or "output."
@@ -1369,7 +1503,7 @@ Usage Examples
1369
1503
  # Output: List of artifact dictionaries
1370
1504
 
1371
1505
  Restrictions and Considerations
1372
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1506
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1373
1507
 
1374
1508
  - Artifact types collection is optional; defaults to empty.
1375
1509
  - Accepts artifact types as dictionaries.
@@ -1419,7 +1553,7 @@ Usage Examples
1419
1553
  # Output: Dictionary with task settings
1420
1554
 
1421
1555
  Restrictions and Considerations
1422
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1556
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1423
1557
 
1424
1558
  - Name is required; avoid special characters.
1425
1559
  - Accepts prompt and artifact types as dictionaries.
@@ -1463,7 +1597,7 @@ Usage Examples
1463
1597
  # Output: Dictionary with process list
1464
1598
 
1465
1599
  Restrictions and Considerations
1466
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1600
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1467
1601
 
1468
1602
  - Processes collection is required; can be empty.
1469
1603
  - Accepts processes as dictionaries.
@@ -1506,7 +1640,7 @@ Usage Examples
1506
1640
  # Output: List of task dictionaries
1507
1641
 
1508
1642
  Restrictions and Considerations
1509
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1643
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1510
1644
 
1511
1645
  - Tasks collection is required; can be empty.
1512
1646
  - Accepts tasks as dictionaries.
@@ -1548,7 +1682,7 @@ Usage Examples
1548
1682
  # Output: Dictionary with instance settings
1549
1683
 
1550
1684
  Restrictions and Considerations
1551
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1685
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1552
1686
 
1553
1687
  - Process and subject are required.
1554
1688
  - Accepts process as a dictionary.
@@ -1593,7 +1727,7 @@ Usage Examples
1593
1727
  # Output: List of instance dictionaries
1594
1728
 
1595
1729
  Restrictions and Considerations
1596
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1730
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1597
1731
 
1598
1732
  - Instances collection is required; can be empty.
1599
1733
  - Accepts instances as dictionaries.
@@ -4,7 +4,7 @@ Runner
4
4
  The `Runner` class in the PyGEAI SDK's `lab` module provides a straightforward, asynchronous interface for executing AI agent tasks within the Globant Enterprise AI Lab's runtime environment. It enables developers to run agents with flexible input formats and customizable language model (LLM) settings, facilitating both testing and production use cases. The `Runner` class abstracts the complexity of chat completion requests, handling message processing and LLM configuration to deliver a `ProviderResponse` object containing the agent’s response and metadata.
5
5
 
6
6
  Overview
7
- -------
7
+ --------
8
8
 
9
9
  The `Runner` class is designed to execute agent tasks by invoking the Lab’s chat completion API. It supports multiple input types—strings, `ChatMessage`, or `ChatMessageList`—allowing developers to interact with agents in various contexts, from simple text inputs to structured conversation histories. The class also accepts optional LLM settings to fine-tune the agent's behavior, such as temperature, token limits, and penalties, ensuring precise control over task execution.
10
10
 
@@ -236,7 +236,7 @@ Error Handling
236
236
  The `Runner` class validates input types and raises a `WrongArgumentError` if the `user_input` is not a string, `ChatMessage`, or `ChatMessageList`. Developers should handle exceptions to ensure robust execution, as shown in the example’s try-except blocks.
237
237
 
238
238
  Integration with AILabManager
239
- ----------------------------
239
+ -----------------------------
240
240
 
241
241
  The `Runner` integrates seamlessly with the `AILabManager` class, which is used to create, manage, and retrieve agents. In the example, the `AILabManager` creates and publishes the agent, which is then passed to the `Runner` for execution. This workflow ensures agents are properly configured before runtime execution.
242
242
 
@@ -27,7 +27,7 @@ The ``geai spec`` command is a utility within the Globant Enterprise AI (GEAI) C
27
27
  Each subcommand accepts specific options to configure the loading process, such as project ID (specified as a UUID), file path, and publication settings.
28
28
 
29
29
  Subcommands and Options
30
- ----------------------
30
+ -----------------------
31
31
 
32
32
  The following subcommands are available under ``geai spec``:
33
33
 
@@ -57,7 +57,7 @@ load-agent
57
57
  +-------------------------+---------------------------+-------------------------------------------------------------+----------+
58
58
  | file | --file, -f | Path to the JSON file containing the agent definition | Yes |
59
59
  +-------------------------+---------------------------+-------------------------------------------------------------+----------+
60
- | automatic_publish | --automatic-publish, --ap | Define if the agent is published (1) or created as draft (0) | Yes |
60
+ | automatic_publish | --automatic-publish, --ap | Define if agent is published (1) or created as draft (0) | Yes |
61
61
  +-------------------------+---------------------------+-------------------------------------------------------------+----------+
62
62
 
63
63
  - **Usage**:
@@ -78,9 +78,9 @@ load-tool
78
78
  +=========================+===========================+===========================================================+==========+
79
79
  | project_id | --project-id, --pid | UUID of the project where the tool will be loaded | Yes |
80
80
  +-------------------------+---------------------------+-----------------------------------------------------------+----------+
81
- | file | --file, -f | Path to the JSON file containing the tool definition | Yes |
81
+ | file | --file, -f | Path to the JSON file containing the tool definition | Yes |
82
82
  +-------------------------+---------------------------+-----------------------------------------------------------+----------+
83
- | automatic_publish | --automatic-publish, --ap | Define if the tool is published (1) or created as draft (0)| Yes |
83
+ | automatic_publish | --automatic-publish, --ap | Define if tool is published (1) or created as draft (0) | Yes |
84
84
  +-------------------------+---------------------------+-----------------------------------------------------------+----------+
85
85
 
86
86
  - **Usage**:
@@ -101,9 +101,9 @@ load-task
101
101
  +=========================+===========================+===========================================================+==========+
102
102
  | project_id | --project-id, --pid | UUID of the project where the task will be loaded | Yes |
103
103
  +-------------------------+---------------------------+-----------------------------------------------------------+----------+
104
- | file | --file, -f | Path to the JSON file containing the task definition | Yes |
104
+ | file | --file, -f | Path to the JSON file containing the task definition | Yes |
105
105
  +-------------------------+---------------------------+-----------------------------------------------------------+----------+
106
- | automatic_publish | --automatic-publish, --ap | Define if the task is published (1) or created as draft (0)| Yes |
106
+ | automatic_publish | --automatic-publish, --ap | Define if task is published (1) or created as draft (0) | Yes |
107
107
  +-------------------------+---------------------------+-----------------------------------------------------------+----------+
108
108
 
109
109
  - **Usage**:
@@ -124,9 +124,9 @@ load-agentic-process
124
124
  +=========================+===========================+=====================================================================+==========+
125
125
  | project_id | --project-id, --pid | UUID of the project where the agentic process will be loaded | Yes |
126
126
  +-------------------------+---------------------------+---------------------------------------------------------------------+----------+
127
- | file | --file, -f | Path to the JSON file containing the agentic process definition | Yes |
127
+ | file | --file, -f | Path to JSON file containing agentic process definition | Yes |
128
128
  +-------------------------+---------------------------+---------------------------------------------------------------------+----------+
129
- | automatic_publish | --automatic-publish, --ap | Define if the agentic process is published (1) or created as draft (0)| Yes |
129
+ | automatic_publish | --automatic-publish, --ap | Define if process is published (1) or created as draft (0) | Yes |
130
130
  +-------------------------+---------------------------+---------------------------------------------------------------------+----------+
131
131
 
132
132
  - **Usage**:
@@ -237,7 +237,7 @@ Attempt to load a task without specifying the file path.
237
237
  Error: Cannot load task definition without specifying path to JSON file.
238
238
 
239
239
  JSON Specification Formats
240
- -------------------------
240
+ --------------------------
241
241
 
242
242
  The ``load-agent``, ``load-tool``, ``load-task``, and ``load-agentic-process`` subcommands expect JSON files containing agent, tool, task, or agentic process specifications, respectively. The JSON file can contain a single specification (object) or multiple specifications (array).
243
243