pygeai 0.3.1__py3-none-any.whl → 0.3.2__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/__init__.py CHANGED
@@ -4,7 +4,7 @@ import sys
4
4
  from pathlib import Path
5
5
 
6
6
  __author__ = 'Globant'
7
- __version__ = '0.3.0'
7
+ __version__ = '0.3.2'
8
8
 
9
9
  # Add vendor directory to Python path
10
10
  package_root = Path(__file__).parent
@@ -227,7 +227,7 @@ class SearchOptions(CustomBaseModel):
227
227
  "ingestion": self.ingestion.to_dict() if self.ingestion else None,
228
228
  "options": self.options,
229
229
  "rerank": self.rerank,
230
- "variables": self.variables.to_dict() if self.variables else None,
230
+ "variables": self.variables.to_list() if self.variables else None,
231
231
  "vectorStore": self.vector_store
232
232
  }
233
233
  return {k: v for k, v in result.items() if v is not None}
pygeai/cli/__init__.py CHANGED
@@ -4,5 +4,5 @@ GEAI - ClI
4
4
  Command line interface to interact with Globant Enterprise AI.
5
5
  """
6
6
 
7
- __version__ = '0.3.0'
7
+ __version__ = '0.3.2'
8
8
 
pygeai/lab/models.py CHANGED
@@ -94,7 +94,7 @@ class Model(CustomBaseModel):
94
94
  :param llm_config: Optional[LlmConfig] - Overrides default agent LLM settings.
95
95
  :param prompt: Optional[dict] - A tailored prompt specific to this model.
96
96
  """
97
- name: str = Field(..., alias="name")
97
+ name: Optional[str] = Field(None, alias="name")
98
98
  llm_config: Optional[LlmConfig] = Field(None, alias="llmConfig")
99
99
  prompt: Optional[Dict[str, Any]] = Field(None, alias="prompt")
100
100
 
@@ -161,12 +161,13 @@ class Prompt(CustomBaseModel):
161
161
  :param context: Optional[str] - Background context for the agent # NOT IMPLEMENTED YET
162
162
  :param examples: List[PromptExample] - List of example input-output pairs.
163
163
  """
164
- instructions: str = Field(..., alias="instructions")
164
+ instructions: Optional[str] = Field(None, alias="instructions")
165
165
  inputs: Optional[List[str]] = Field(None, alias="inputs")
166
166
  outputs: Optional[List[PromptOutput]] = Field([], alias="outputs")
167
167
  context: Optional[str] = Field(None, alias="context", description="Background context for the agent")
168
168
  examples: Optional[List[PromptExample]] = Field(None, alias="examples")
169
169
 
170
+ '''
170
171
  @field_validator("instructions")
171
172
  @classmethod
172
173
  def validate_instructions(cls, value: str) -> str:
@@ -174,6 +175,7 @@ class Prompt(CustomBaseModel):
174
175
  raise ValueError("instructions cannot be blank")
175
176
 
176
177
  return value
178
+ '''
177
179
 
178
180
  @field_validator("outputs", mode="before")
179
181
  @classmethod
@@ -687,7 +689,7 @@ class Tool(CustomBaseModel):
687
689
  :param status: Optional[str] - Current status of the tool (e.g., "active"), defaults to None.
688
690
  """
689
691
  name: str = Field(..., alias="name", description="The name of the tool")
690
- description: str = Field(..., alias="description", description="Description of the tool's purpose")
692
+ description: Optional[str] = Field(None, alias="description", description="Description of the tool's purpose")
691
693
  scope: str = Field("builtin", alias="scope", description="The scope of the tool (e.g., 'builtin', 'external', 'api')")
692
694
  parameters: Optional[List[ToolParameter]] = Field(None, alias="parameters", description="List of parameters required by the tool")
693
695
  access_scope: Optional[str] = Field(None, alias="accessScope", description="The access scope of the tool ('public' or 'private')")
@@ -730,6 +732,7 @@ class Tool(CustomBaseModel):
730
732
  raise ValueError("public_name is required if access_scope is 'public'")
731
733
  return self
732
734
 
735
+ '''
733
736
  @model_validator(mode="after")
734
737
  def validate_api_tool_requirements(self):
735
738
  if self.scope == "api" and not (self.open_api or self.open_api_json):
@@ -739,6 +742,7 @@ class Tool(CustomBaseModel):
739
742
  if len(param_keys) != len(set(param_keys)):
740
743
  raise ValueError("All parameter keys must be unique within the tool")
741
744
  return self
745
+ '''
742
746
 
743
747
  @field_validator("parameters", mode="before")
744
748
  @classmethod
@@ -110,8 +110,8 @@ class AgenticProcessMapper:
110
110
  """
111
111
  return [
112
112
  Variable(
113
- key=var["key"],
114
- value=var["value"]
113
+ key=var.get("key"),
114
+ value=var.get("value")
115
115
  )
116
116
  for var in data
117
117
  ]
@@ -37,8 +37,8 @@ class ToolMapper:
37
37
  """
38
38
  return [
39
39
  ToolMessage(
40
- description=msg["description"],
41
- type=msg["type"]
40
+ description=msg.get("description"),
41
+ type=msg.get("type")
42
42
  )
43
43
  for msg in messages_data
44
44
  ]
@@ -55,9 +55,9 @@ class ToolMapper:
55
55
  """
56
56
  tool_data = data.get("tool", data)
57
57
 
58
- name = tool_data["name"]
59
- description = tool_data["description"]
60
- scope = tool_data["scope"]
58
+ name = tool_data.get("name")
59
+ description = tool_data.get("description")
60
+ scope = tool_data.get("scope")
61
61
  parameter_data = tool_data.get("parameters")
62
62
  parameters = cls._map_parameters(parameter_data) if parameter_data else None
63
63
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygeai
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Software Development Kit to interact with Globant Enterprise AI.
5
5
  Author-email: Globant <geai-sdk@globant.com>
6
6
  License-Expression: MIT
@@ -41,11 +41,11 @@ Dynamic: license-file
41
41
 
42
42
  PyGEAI is a Software Development Kit (SDK) for interacting with [Globant Enterprise AI](https://wiki.genexus.com/enterprise-ai/wiki?8,Table+of+contents%3AEnterprise+AI). It comprises libraries, tools, code samples, and documentation to simplify your experience with the platform.
43
43
 
44
- ## Repository
44
+ ## Terms and conditions
45
45
 
46
- Find the PyGEAI source code and documentation in the following GitHub repository:
46
+ By using the Python SDK to interact with Globant Enterprise AI, you agree with the following Terms and Conditions:
47
47
 
48
- [GitHub repository](https://github.com/RT-GEN029-GI/pygeai)
48
+ [Terms and Conditions](https://www.globant.com/enterprise-ai/terms-of-use)
49
49
 
50
50
  ## Compatibility
51
51
  This package is compatible with the Globant Enterprise AI release from June 2025.
@@ -1,4 +1,4 @@
1
- pygeai/__init__.py,sha256=-XjVpCI2Ox_LcSlz8Eu_LGl4mdULPBjcdXcBmJ37VzY,502
1
+ pygeai/__init__.py,sha256=ZhSarc8h0U0CMhQDbY9Uw3JbqrPXfXdtXYRERhLPUzY,502
2
2
  pygeai/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  pygeai/admin/clients.py,sha256=2wuXSmTyg-gCbempDFCeI1yCKeOlKDBZsrFyFWxcwBg,6698
4
4
  pygeai/admin/endpoints.py,sha256=Osi8UIBhrEzKlTLF2a-q2boDUl0XMR3lQ8sDrz72TL0,747
@@ -16,7 +16,7 @@ pygeai/assistant/rag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
16
16
  pygeai/assistant/rag/clients.py,sha256=9a8loVLRnVkA3nHvvOpbdUEhy_TEnHm1rhdBYrBVABE,15893
17
17
  pygeai/assistant/rag/endpoints.py,sha256=7YlHIvAYj3-xsCWtVMDYobxXbAO0lCo9yJdOrQxwCrQ,1145
18
18
  pygeai/assistant/rag/mappers.py,sha256=n3aeNXqz_7zq_JWq5wJfeNX1kvV3arOxAoUsqRYOZsc,8645
19
- pygeai/assistant/rag/models.py,sha256=xqYJiFMpDztRdjsb-pSAd1k3POmLJFM4hH6SaJ_4pto,15732
19
+ pygeai/assistant/rag/models.py,sha256=g5UiHuRjobgU1WgUMxeBzXykxgJ5q7eb_YY8qDciNvw,15732
20
20
  pygeai/assistant/rag/responses.py,sha256=fY97ibsCVLQ3Ssnjuvj-JeA883WqjOw7ZdxbpQp_B1E,196
21
21
  pygeai/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  pygeai/chat/clients.py,sha256=QEyeTIPxp6xXKAEkE_XkjIxZDnaH808GKhIYr7ulrSA,10785
@@ -26,7 +26,7 @@ pygeai/chat/managers.py,sha256=f0BGfu9EF0G8rUyARslZi0pyDTL2yQadav0taCljI_I,3114
26
26
  pygeai/chat/session.py,sha256=k7Y6rr9x7CfAGDI-Vt3c6eGLQX57YZ74lEVJGzwwdzw,1193
27
27
  pygeai/chat/settings.py,sha256=-B2fEemZLifdsf7_7xNmWuFZYzL-yRqefivBmv3w8j8,124
28
28
  pygeai/chat/ui.py,sha256=_t4ehG-n2-nxlc4esL09ORjmjTHhLWybUiEwGstIo-g,34620
29
- pygeai/cli/__init__.py,sha256=ng7Ss2KiBQ7GD9nCNCiq6pbgaCas3RNyYFNGLz-YM84,117
29
+ pygeai/cli/__init__.py,sha256=7prYyn8lejShxA0xLR3cm0k34Wfo7WHsSJGwBU-bEB0,117
30
30
  pygeai/cli/__main__.py,sha256=2RkQaX48mS2keTpv3-9rxk5dw35PL_deqxcKUUNhp6E,154
31
31
  pygeai/cli/geai.py,sha256=W-zhw4NSJxQ5KDOjksLREjySKWs962IGV6y3YW1tDFY,4247
32
32
  pygeai/cli/geai_proxy.py,sha256=BSoeh32fhATxbsAA_B92HKDBiLgfejEQ0XwXfeOk49g,13356
@@ -144,7 +144,7 @@ pygeai/health/endpoints.py,sha256=UAzMcqSXZtMj4r8M8B7a_a5LT6X_jMFNsCTvcsjNTYA,71
144
144
  pygeai/lab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
145
  pygeai/lab/constants.py,sha256=ddgDnXP4GD0woi-FUJaJXzaWS3H6zmDN0B-v8utM95Q,170
146
146
  pygeai/lab/managers.py,sha256=9wV6SipzsIwFP9SXsKqZ0X5x6KbUuo6iCxPZF4zNGj4,72714
147
- pygeai/lab/models.py,sha256=uxhmogA0234eXXmqsVRE7EQQsmqx_BBHYXjhWkKso40,71386
147
+ pygeai/lab/models.py,sha256=1m41gSqpXZVO9AcPVxzlsC-TgxZcCsgGUbpN5zoDMjU,71451
148
148
  pygeai/lab/runners.py,sha256=-uaCPHpFyiKtVOxlEjPjAc9h-onSdGAcYJ5IAZPqlb0,4147
149
149
  pygeai/lab/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
150
  pygeai/lab/agents/clients.py,sha256=2SYNjyD9LZaOUxmTcrwzqcHwW7K1wAmYwen_u0G-RfU,22659
@@ -153,7 +153,7 @@ pygeai/lab/agents/mappers.py,sha256=K6rxsO2Nq6GglmCUmyDKUNmzTG8HRbCelap6qaVKXQw,
153
153
  pygeai/lab/processes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
154
  pygeai/lab/processes/clients.py,sha256=C1YYJE7c5qJSZUIDKzo5kK-LOZP6jbdrG01aE8zoEYg,51403
155
155
  pygeai/lab/processes/endpoints.py,sha256=nFIEcNP22xe4j6URI6KcwTh7h-xgYjYYuHT6PDPiO3I,2100
156
- pygeai/lab/processes/mappers.py,sha256=QBpDT3wlyRNNUMa_vDP2vhQ4pD0vwnjXc1ahckfRVX0,15807
156
+ pygeai/lab/processes/mappers.py,sha256=YOWcVKdcJmLMAq-f3qevzqQ8L_hjb0_jVXBdCHutpzk,15815
157
157
  pygeai/lab/spec/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  pygeai/lab/spec/loader.py,sha256=Dq9MhLqFwF4RPdBBaqKPGqt43-PrNlsHpe-NXe4S0qQ,709
159
159
  pygeai/lab/spec/parsers.py,sha256=oG7tY-GylweRxpvtCl3p53t0IoTX3UZFiB77x__3Qp8,646
@@ -164,7 +164,7 @@ pygeai/lab/strategies/mappers.py,sha256=6C_jubAVXMKLGQy5NUD0OX7SlrU2mLe2QsgzeJ1-
164
164
  pygeai/lab/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
165
  pygeai/lab/tools/clients.py,sha256=TfgociWyvzao3B6g2VfjAb6FmXp1YqmJRG2TT7RwOic,27441
166
166
  pygeai/lab/tools/endpoints.py,sha256=HiGoMs4OVeCgH7EAERTtifFPl53NryA1Awh7D6AO8bA,699
167
- pygeai/lab/tools/mappers.py,sha256=6xcR7lIOYrvUG8SERQIx_bsK-_To316BUql8UPLHWco,4978
167
+ pygeai/lab/tools/mappers.py,sha256=bYi5k36h0k4mCvOnV-r8YOHKz0U9P0mH21GNs20w2eM,4998
168
168
  pygeai/man/__init__.py,sha256=gqGI92vUPt6RPweoWX3mTUYPWNDlm6aGUjQOnYXqthk,53
169
169
  pygeai/man/man1/__init__.py,sha256=CFvES6cP_sbhgpm-I-QSbPC1f7Bw7cFsMW2-sxm4FtM,54
170
170
  pygeai/man/man1/geai-proxy.1,sha256=N5jtjzS5dB3JjAkG0Rw8EBzhC6Jgoy6zbS7XDgcE4EA,6735
@@ -482,9 +482,9 @@ pygeai/vendor/a2a/utils/helpers.py,sha256=6Tbd8SVfXvdNEk6WYmLOjrAxkzFf1aIg8dkFfB
482
482
  pygeai/vendor/a2a/utils/message.py,sha256=gc_EKO69CJ4HkR76IFgsy-kENJz1dn7CfSgWJWvt-gs,2197
483
483
  pygeai/vendor/a2a/utils/task.py,sha256=BYRA_L1HpoUGJAVlyHML0lCM9Awhf2Ovjj7oPFXKbh0,1647
484
484
  pygeai/vendor/a2a/utils/telemetry.py,sha256=VvSp1Ztqaobkmq9-3sNhhPEilJS32-JTSfKzegkj6FU,10861
485
- pygeai-0.3.1.dist-info/licenses/LICENSE,sha256=eHfqo7-AWS8cMq0cg03lq7owsLeCmZA-xS5L0kuHnl8,1474
486
- pygeai-0.3.1.dist-info/METADATA,sha256=Hz81IN2caKf8yUbFFV3tHP-6pSxpNiyHQzX0DZXHITI,6880
487
- pygeai-0.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
488
- pygeai-0.3.1.dist-info/entry_points.txt,sha256=OAmwuXVCQBTCE3HeVegVd37hbhCcp9TPahvdrCuMYWw,178
489
- pygeai-0.3.1.dist-info/top_level.txt,sha256=bJFwp2tURmCfB94yXDF7ylvdSJXFDDJsyUOb-7PJgwc,7
490
- pygeai-0.3.1.dist-info/RECORD,,
485
+ pygeai-0.3.2.dist-info/licenses/LICENSE,sha256=eHfqo7-AWS8cMq0cg03lq7owsLeCmZA-xS5L0kuHnl8,1474
486
+ pygeai-0.3.2.dist-info/METADATA,sha256=bhejl4MTXN0F315fIxAdpmpaqy_aIx50RpKsP89Zgjc,6938
487
+ pygeai-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
488
+ pygeai-0.3.2.dist-info/entry_points.txt,sha256=OAmwuXVCQBTCE3HeVegVd37hbhCcp9TPahvdrCuMYWw,178
489
+ pygeai-0.3.2.dist-info/top_level.txt,sha256=bJFwp2tURmCfB94yXDF7ylvdSJXFDDJsyUOb-7PJgwc,7
490
+ pygeai-0.3.2.dist-info/RECORD,,
File without changes