pygeai 0.6.0b10__py3-none-any.whl → 0.6.0b12__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.
- pygeai/_docs/source/content/ai_lab/cli.rst +4 -4
- pygeai/_docs/source/content/ai_lab/models.rst +169 -35
- pygeai/_docs/source/content/ai_lab/runner.rst +2 -2
- pygeai/_docs/source/content/ai_lab/spec.rst +9 -9
- pygeai/_docs/source/content/ai_lab/usage.rst +34 -34
- pygeai/_docs/source/content/ai_lab.rst +1 -1
- pygeai/_docs/source/content/analytics.rst +598 -0
- pygeai/_docs/source/content/api_reference/chat.rst +428 -2
- pygeai/_docs/source/content/api_reference/embeddings.rst +1 -1
- pygeai/_docs/source/content/api_reference/project.rst +184 -0
- pygeai/_docs/source/content/api_reference/rag.rst +2 -2
- pygeai/_docs/source/content/authentication.rst +295 -0
- pygeai/_docs/source/content/cli.rst +79 -2
- pygeai/_docs/source/content/debugger.rst +1 -1
- pygeai/_docs/source/content/migration.rst +19 -2
- pygeai/_docs/source/index.rst +2 -0
- pygeai/_docs/source/pygeai.analytics.rst +53 -0
- pygeai/_docs/source/pygeai.cli.commands.rst +8 -0
- pygeai/_docs/source/pygeai.rst +1 -0
- pygeai/_docs/source/pygeai.tests.analytics.rst +45 -0
- pygeai/_docs/source/pygeai.tests.auth.rst +8 -0
- pygeai/_docs/source/pygeai.tests.rst +1 -1
- pygeai/analytics/__init__.py +0 -0
- pygeai/analytics/clients.py +505 -0
- pygeai/analytics/endpoints.py +35 -0
- pygeai/analytics/managers.py +606 -0
- pygeai/analytics/mappers.py +207 -0
- pygeai/analytics/responses.py +240 -0
- pygeai/chat/clients.py +46 -1
- pygeai/chat/endpoints.py +1 -0
- pygeai/cli/commands/analytics.py +525 -0
- pygeai/cli/commands/base.py +16 -0
- pygeai/cli/commands/chat.py +95 -0
- pygeai/cli/commands/common.py +28 -24
- pygeai/cli/commands/migrate.py +75 -6
- pygeai/cli/commands/organization.py +265 -0
- pygeai/cli/commands/validators.py +144 -1
- pygeai/cli/error_handler.py +41 -6
- pygeai/cli/geai.py +99 -16
- pygeai/cli/parsers.py +75 -31
- pygeai/cli/texts/help.py +75 -6
- pygeai/core/base/clients.py +18 -4
- pygeai/core/base/session.py +46 -7
- pygeai/core/common/config.py +25 -2
- pygeai/core/common/exceptions.py +64 -1
- pygeai/core/services/rest.py +20 -2
- pygeai/evaluation/clients.py +5 -3
- pygeai/lab/agents/clients.py +3 -3
- pygeai/lab/agents/endpoints.py +2 -2
- pygeai/lab/agents/mappers.py +50 -2
- pygeai/lab/clients.py +5 -2
- pygeai/lab/managers.py +7 -9
- pygeai/lab/models.py +70 -2
- pygeai/lab/tools/clients.py +1 -59
- pygeai/migration/__init__.py +3 -1
- pygeai/migration/strategies.py +72 -3
- pygeai/organization/clients.py +110 -1
- pygeai/organization/endpoints.py +11 -7
- pygeai/organization/managers.py +134 -2
- pygeai/organization/mappers.py +28 -2
- pygeai/organization/responses.py +11 -1
- pygeai/tests/analytics/__init__.py +0 -0
- pygeai/tests/analytics/test_clients.py +86 -0
- pygeai/tests/analytics/test_managers.py +94 -0
- pygeai/tests/analytics/test_mappers.py +84 -0
- pygeai/tests/analytics/test_responses.py +73 -0
- pygeai/tests/auth/test_oauth.py +172 -0
- pygeai/tests/cli/commands/test_migrate.py +14 -1
- pygeai/tests/cli/commands/test_organization.py +69 -1
- pygeai/tests/cli/test_error_handler.py +4 -4
- pygeai/tests/cli/test_geai_driver.py +1 -1
- pygeai/tests/lab/agents/test_mappers.py +128 -1
- pygeai/tests/lab/test_models.py +2 -0
- pygeai/tests/lab/tools/test_clients.py +2 -31
- pygeai/tests/organization/test_clients.py +180 -1
- pygeai/tests/organization/test_managers.py +40 -0
- pygeai/tests/snippets/analytics/__init__.py +0 -0
- pygeai/tests/snippets/analytics/get_agent_usage_per_user.py +16 -0
- pygeai/tests/snippets/analytics/get_agents_created_and_modified.py +11 -0
- pygeai/tests/snippets/analytics/get_average_cost_per_request.py +10 -0
- pygeai/tests/snippets/analytics/get_overall_error_rate.py +10 -0
- pygeai/tests/snippets/analytics/get_top_10_agents_by_requests.py +12 -0
- pygeai/tests/snippets/analytics/get_total_active_users.py +10 -0
- pygeai/tests/snippets/analytics/get_total_cost.py +10 -0
- pygeai/tests/snippets/analytics/get_total_requests_per_day.py +12 -0
- pygeai/tests/snippets/analytics/get_total_tokens.py +12 -0
- pygeai/tests/snippets/chat/get_response_complete_example.py +67 -0
- pygeai/tests/snippets/chat/get_response_with_instructions.py +19 -0
- pygeai/tests/snippets/chat/get_response_with_metadata.py +24 -0
- pygeai/tests/snippets/chat/get_response_with_parallel_tools.py +58 -0
- pygeai/tests/snippets/chat/get_response_with_reasoning.py +21 -0
- pygeai/tests/snippets/chat/get_response_with_store.py +38 -0
- pygeai/tests/snippets/chat/get_response_with_truncation.py +24 -0
- pygeai/tests/snippets/lab/agents/create_agent_with_permissions.py +39 -0
- pygeai/tests/snippets/lab/agents/create_agent_with_properties.py +46 -0
- pygeai/tests/snippets/lab/agents/get_agent_with_new_fields.py +62 -0
- pygeai/tests/snippets/lab/agents/update_agent_properties.py +50 -0
- pygeai/tests/snippets/organization/add_project_member.py +10 -0
- pygeai/tests/snippets/organization/add_project_member_batch.py +44 -0
- {pygeai-0.6.0b10.dist-info → pygeai-0.6.0b12.dist-info}/METADATA +1 -1
- {pygeai-0.6.0b10.dist-info → pygeai-0.6.0b12.dist-info}/RECORD +105 -95
- pygeai/_docs/source/pygeai.tests.snippets.assistants.data_analyst.rst +0 -37
- pygeai/_docs/source/pygeai.tests.snippets.assistants.rag.rst +0 -85
- pygeai/_docs/source/pygeai.tests.snippets.assistants.rst +0 -78
- pygeai/_docs/source/pygeai.tests.snippets.auth.rst +0 -10
- pygeai/_docs/source/pygeai.tests.snippets.chat.rst +0 -125
- pygeai/_docs/source/pygeai.tests.snippets.dbg.rst +0 -45
- pygeai/_docs/source/pygeai.tests.snippets.embeddings.rst +0 -61
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.dataset.rst +0 -197
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.plan.rst +0 -133
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.result.rst +0 -37
- pygeai/_docs/source/pygeai.tests.snippets.evaluation.rst +0 -20
- pygeai/_docs/source/pygeai.tests.snippets.extras.rst +0 -37
- pygeai/_docs/source/pygeai.tests.snippets.files.rst +0 -53
- pygeai/_docs/source/pygeai.tests.snippets.gam.rst +0 -21
- pygeai/_docs/source/pygeai.tests.snippets.lab.agents.rst +0 -93
- pygeai/_docs/source/pygeai.tests.snippets.lab.processes.jobs.rst +0 -21
- pygeai/_docs/source/pygeai.tests.snippets.lab.processes.kbs.rst +0 -45
- pygeai/_docs/source/pygeai.tests.snippets.lab.processes.rst +0 -46
- pygeai/_docs/source/pygeai.tests.snippets.lab.rst +0 -82
- pygeai/_docs/source/pygeai.tests.snippets.lab.samples.rst +0 -21
- pygeai/_docs/source/pygeai.tests.snippets.lab.strategies.rst +0 -45
- pygeai/_docs/source/pygeai.tests.snippets.lab.tools.rst +0 -85
- pygeai/_docs/source/pygeai.tests.snippets.lab.use_cases.rst +0 -117
- pygeai/_docs/source/pygeai.tests.snippets.migrate.rst +0 -10
- pygeai/_docs/source/pygeai.tests.snippets.organization.rst +0 -109
- pygeai/_docs/source/pygeai.tests.snippets.rag.rst +0 -85
- pygeai/_docs/source/pygeai.tests.snippets.rerank.rst +0 -21
- pygeai/_docs/source/pygeai.tests.snippets.rst +0 -32
- pygeai/_docs/source/pygeai.tests.snippets.secrets.rst +0 -10
- pygeai/_docs/source/pygeai.tests.snippets.usage_limit.rst +0 -77
- {pygeai-0.6.0b10.dist-info → pygeai-0.6.0b12.dist-info}/WHEEL +0 -0
- {pygeai-0.6.0b10.dist-info → pygeai-0.6.0b12.dist-info}/entry_points.txt +0 -0
- {pygeai-0.6.0b10.dist-info → pygeai-0.6.0b12.dist-info}/licenses/LICENSE +0 -0
- {pygeai-0.6.0b10.dist-info → pygeai-0.6.0b12.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
|
|
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
|
|
81
|
+
| file | --file, -f | Path to the JSON file containing the tool definition | Yes |
|
|
82
82
|
+-------------------------+---------------------------+-----------------------------------------------------------+----------+
|
|
83
|
-
| automatic_publish | --automatic-publish, --ap | Define if
|
|
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
|
|
104
|
+
| file | --file, -f | Path to the JSON file containing the task definition | Yes |
|
|
105
105
|
+-------------------------+---------------------------+-----------------------------------------------------------+----------+
|
|
106
|
-
| automatic_publish | --automatic-publish, --ap | Define if
|
|
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
|
|
127
|
+
| file | --file, -f | Path to JSON file containing agentic process definition | Yes |
|
|
128
128
|
+-------------------------+---------------------------+---------------------------------------------------------------------+----------+
|
|
129
|
-
| automatic_publish | --automatic-publish, --ap | Define if
|
|
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
|
|