ibm-watsonx-orchestrate 1.5.1__py3-none-any.whl → 1.7.0a0__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.
- ibm_watsonx_orchestrate/__init__.py +1 -1
- ibm_watsonx_orchestrate/agent_builder/agents/__init__.py +1 -1
- ibm_watsonx_orchestrate/agent_builder/agents/agent.py +1 -0
- ibm_watsonx_orchestrate/agent_builder/agents/types.py +58 -4
- ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +2 -0
- ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +33 -0
- ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +20 -0
- ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +2 -2
- ibm_watsonx_orchestrate/agent_builder/connections/types.py +38 -31
- ibm_watsonx_orchestrate/agent_builder/model_policies/types.py +1 -1
- ibm_watsonx_orchestrate/agent_builder/models/types.py +0 -1
- ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +83 -0
- ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +41 -3
- ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +2 -1
- ibm_watsonx_orchestrate/agent_builder/tools/types.py +14 -1
- ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +18 -1
- ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +122 -17
- ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +104 -22
- ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +26 -18
- ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +56 -58
- ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py +29 -4
- ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +74 -8
- ibm_watsonx_orchestrate/cli/commands/environment/types.py +1 -0
- ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +224 -0
- ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +158 -0
- ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +2 -2
- ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +2 -2
- ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +31 -25
- ibm_watsonx_orchestrate/cli/commands/models/models_command.py +6 -6
- ibm_watsonx_orchestrate/cli/commands/models/models_controller.py +17 -8
- ibm_watsonx_orchestrate/cli/commands/server/server_command.py +162 -27
- ibm_watsonx_orchestrate/cli/commands/server/types.py +2 -1
- ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +9 -6
- ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +37 -22
- ibm_watsonx_orchestrate/cli/config.py +2 -0
- ibm_watsonx_orchestrate/cli/main.py +6 -0
- ibm_watsonx_orchestrate/client/agents/agent_client.py +83 -9
- ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py +3 -3
- ibm_watsonx_orchestrate/client/agents/external_agent_client.py +2 -2
- ibm_watsonx_orchestrate/client/base_api_client.py +11 -10
- ibm_watsonx_orchestrate/client/connections/connections_client.py +49 -14
- ibm_watsonx_orchestrate/client/connections/utils.py +4 -2
- ibm_watsonx_orchestrate/client/credentials.py +4 -0
- ibm_watsonx_orchestrate/client/local_service_instance.py +1 -1
- ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py +2 -2
- ibm_watsonx_orchestrate/client/service_instance.py +42 -1
- ibm_watsonx_orchestrate/client/tools/tempus_client.py +8 -3
- ibm_watsonx_orchestrate/client/utils.py +37 -2
- ibm_watsonx_orchestrate/docker/compose-lite.yml +425 -81
- ibm_watsonx_orchestrate/docker/default.env +53 -15
- ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +12 -0
- ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/__init__.py +3 -2
- ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +77 -0
- ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/events.py +6 -1
- ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/flow.py +85 -92
- ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/types.py +15 -6
- ibm_watsonx_orchestrate/flow_builder/utils.py +215 -0
- ibm_watsonx_orchestrate/run/connections.py +4 -4
- {ibm_watsonx_orchestrate-1.5.1.dist-info → ibm_watsonx_orchestrate-1.7.0a0.dist-info}/METADATA +2 -1
- {ibm_watsonx_orchestrate-1.5.1.dist-info → ibm_watsonx_orchestrate-1.7.0a0.dist-info}/RECORD +68 -61
- ibm_watsonx_orchestrate/experimental/flow_builder/flows/decorators.py +0 -144
- ibm_watsonx_orchestrate/experimental/flow_builder/utils.py +0 -115
- /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/__init__.py +0 -0
- /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/data_map.py +0 -0
- /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/flows/constants.py +0 -0
- /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/node.py +0 -0
- /ibm_watsonx_orchestrate/{experimental/flow_builder → flow_builder}/resources/flow_status.openapi.yml +0 -0
- {ibm_watsonx_orchestrate-1.5.1.dist-info → ibm_watsonx_orchestrate-1.7.0a0.dist-info}/WHEEL +0 -0
- {ibm_watsonx_orchestrate-1.5.1.dist-info → ibm_watsonx_orchestrate-1.7.0a0.dist-info}/entry_points.txt +0 -0
- {ibm_watsonx_orchestrate-1.5.1.dist-info → ibm_watsonx_orchestrate-1.7.0a0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,215 @@
|
|
1
|
+
import importlib
|
2
|
+
import inspect
|
3
|
+
import re
|
4
|
+
import logging
|
5
|
+
|
6
|
+
from pydantic import BaseModel, TypeAdapter
|
7
|
+
|
8
|
+
from langchain_core.utils.json_schema import dereference_refs
|
9
|
+
from rpds import List
|
10
|
+
import typer
|
11
|
+
import yaml
|
12
|
+
|
13
|
+
from ibm_watsonx_orchestrate.agent_builder.tools.base_tool import BaseTool
|
14
|
+
from ibm_watsonx_orchestrate.agent_builder.tools.flow_tool import create_flow_json_tool
|
15
|
+
from ibm_watsonx_orchestrate.agent_builder.tools.openapi_tool import OpenAPITool, create_openapi_json_tools_from_content
|
16
|
+
from ibm_watsonx_orchestrate.agent_builder.tools.types import JsonSchemaObject, OpenApiToolBinding, ToolBinding, ToolRequestBody, ToolResponseBody, ToolSpec
|
17
|
+
from ibm_watsonx_orchestrate.client.tools.tempus_client import TempusClient
|
18
|
+
from ibm_watsonx_orchestrate.client.tools.tool_client import ToolClient
|
19
|
+
from ibm_watsonx_orchestrate.client.utils import instantiate_client, is_local_dev
|
20
|
+
|
21
|
+
logger = logging.getLogger(__name__)
|
22
|
+
|
23
|
+
def get_valid_name(name: str) -> str:
|
24
|
+
|
25
|
+
return re.sub('\\W|^(?=\\d)','_', name)
|
26
|
+
|
27
|
+
def _get_json_schema_obj(parameter_name: str, type_def: type[BaseModel] | ToolRequestBody | ToolResponseBody | None, openapi_decode: bool = False) -> JsonSchemaObject:
|
28
|
+
if not type_def or type_def is None or type_def == inspect._empty:
|
29
|
+
return None
|
30
|
+
|
31
|
+
if inspect.isclass(type_def) and issubclass(type_def, BaseModel):
|
32
|
+
schema_json = type_def.model_json_schema()
|
33
|
+
schema_json = dereference_refs(schema_json)
|
34
|
+
schema_obj = JsonSchemaObject(**schema_json)
|
35
|
+
if schema_obj.required is None:
|
36
|
+
schema_obj.required = []
|
37
|
+
return schema_obj
|
38
|
+
|
39
|
+
if isinstance(type_def, ToolRequestBody) or isinstance(type_def, ToolResponseBody):
|
40
|
+
schema_json = type_def.model_dump()
|
41
|
+
schema_obj = JsonSchemaObject.model_validate(schema_json)
|
42
|
+
|
43
|
+
if openapi_decode:
|
44
|
+
# during tool import for openapi - we convert header, path and query parameter
|
45
|
+
# with a prefix "header_", "path_" and "query_". We need to remove it.
|
46
|
+
if schema_obj.type == 'object':
|
47
|
+
# for each element in properties, we need to check the key and if it is
|
48
|
+
# prefixed with "header_", "path_" and "query_", we need to remove the prefix.
|
49
|
+
if hasattr(schema_obj, "properties"):
|
50
|
+
new_properties = {}
|
51
|
+
for key, value in schema_obj.properties.items():
|
52
|
+
if key.startswith('header_'):
|
53
|
+
new_properties[key[7:]] = value
|
54
|
+
elif key.startswith('path_'):
|
55
|
+
new_properties[key[5:]] = value
|
56
|
+
elif key.startswith('query_'):
|
57
|
+
new_properties[key[6:]] = value
|
58
|
+
else:
|
59
|
+
new_properties[key] = value
|
60
|
+
|
61
|
+
schema_obj.properties = new_properties
|
62
|
+
|
63
|
+
# we also need to go thru required and replace it
|
64
|
+
if hasattr(schema_obj, "required"):
|
65
|
+
new_required = []
|
66
|
+
for item in schema_obj.required:
|
67
|
+
if item.startswith('header_'):
|
68
|
+
new_required.append(item[7:])
|
69
|
+
elif item.startswith('path_'):
|
70
|
+
new_required.append(item[5:])
|
71
|
+
elif item.startswith('query_'):
|
72
|
+
new_required.append(item[6:])
|
73
|
+
else:
|
74
|
+
new_required.append(item)
|
75
|
+
schema_obj.required = new_required
|
76
|
+
|
77
|
+
return schema_obj
|
78
|
+
|
79
|
+
# handle the non-obvious cases
|
80
|
+
schema_json = TypeAdapter(type_def).json_schema()
|
81
|
+
schema_json = dereference_refs(schema_json)
|
82
|
+
return JsonSchemaObject.model_validate(schema_json)
|
83
|
+
|
84
|
+
|
85
|
+
def _get_tool_request_body(schema_obj: JsonSchemaObject) -> ToolRequestBody:
|
86
|
+
if schema_obj is None:
|
87
|
+
return None
|
88
|
+
|
89
|
+
if isinstance(schema_obj, JsonSchemaObject):
|
90
|
+
request_obj = ToolRequestBody(type='object', properties=schema_obj.properties, required=schema_obj.required)
|
91
|
+
if schema_obj.model_extra:
|
92
|
+
request_obj.__pydantic_extra__ = schema_obj.model_extra
|
93
|
+
|
94
|
+
return request_obj
|
95
|
+
|
96
|
+
raise ValueError(f"Invalid schema object: {schema_obj}")
|
97
|
+
|
98
|
+
def _get_tool_response_body(schema_obj: JsonSchemaObject) -> ToolResponseBody:
|
99
|
+
if schema_obj is None:
|
100
|
+
return None
|
101
|
+
|
102
|
+
if isinstance(schema_obj, JsonSchemaObject):
|
103
|
+
response_obj = ToolResponseBody(type=schema_obj.type)
|
104
|
+
if schema_obj.title:
|
105
|
+
response_obj.title = schema_obj.title
|
106
|
+
if schema_obj.description:
|
107
|
+
response_obj.description = schema_obj.description
|
108
|
+
if schema_obj.properties:
|
109
|
+
response_obj.properties = schema_obj.properties
|
110
|
+
if schema_obj.items:
|
111
|
+
response_obj.items = schema_obj.items
|
112
|
+
if schema_obj.uniqueItems:
|
113
|
+
response_obj.uniqueItems = schema_obj.uniqueItems
|
114
|
+
if schema_obj.anyOf:
|
115
|
+
response_obj.anyOf = schema_obj.anyOf
|
116
|
+
if schema_obj.required:
|
117
|
+
response_obj.required = schema_obj.required
|
118
|
+
|
119
|
+
if schema_obj.model_extra:
|
120
|
+
response_obj.__pydantic_extra__ = schema_obj.model_extra
|
121
|
+
|
122
|
+
return response_obj
|
123
|
+
|
124
|
+
raise ValueError(f"Invalid schema object: {schema_obj}")
|
125
|
+
|
126
|
+
|
127
|
+
async def import_flow_model(model):
|
128
|
+
|
129
|
+
if not is_local_dev():
|
130
|
+
raise typer.BadParameter(f"Flow tools are only supported in local environment.")
|
131
|
+
|
132
|
+
if model is None:
|
133
|
+
raise typer.BadParameter(f"No model provided.")
|
134
|
+
|
135
|
+
tool = create_flow_json_tool(name=model["spec"]["name"],
|
136
|
+
description=model["spec"]["description"],
|
137
|
+
permission="read_only",
|
138
|
+
flow_model=model)
|
139
|
+
|
140
|
+
client = instantiate_client(ToolClient)
|
141
|
+
|
142
|
+
tool_id = None
|
143
|
+
exist = False
|
144
|
+
existing_tools = client.get_draft_by_name(tool.__tool_spec__.name)
|
145
|
+
if len(existing_tools) > 1:
|
146
|
+
raise ValueError(f"Multiple existing tools found with name '{tool.__tool_spec__.name}'. Failed to update tool")
|
147
|
+
|
148
|
+
if len(existing_tools) > 0:
|
149
|
+
existing_tool = existing_tools[0]
|
150
|
+
exist = True
|
151
|
+
tool_id = existing_tool.get("id")
|
152
|
+
|
153
|
+
tool_spec = tool.__tool_spec__.model_dump(mode='json', exclude_unset=True, exclude_none=True, by_alias=True)
|
154
|
+
name = tool_spec['name']
|
155
|
+
if exist:
|
156
|
+
logger.info(f"Updating flow '{name}'")
|
157
|
+
client.update(tool_id, tool_spec)
|
158
|
+
else:
|
159
|
+
logger.info(f"Deploying flow '{name}'")
|
160
|
+
response = client.create(tool_spec)
|
161
|
+
tool_id = response["id"]
|
162
|
+
|
163
|
+
return tool_id
|
164
|
+
|
165
|
+
def import_flow_support_tools():
|
166
|
+
|
167
|
+
if not is_local_dev():
|
168
|
+
# we can't import support tools into non-local environments yet
|
169
|
+
return
|
170
|
+
|
171
|
+
client = instantiate_client(TempusClient)
|
172
|
+
|
173
|
+
logger.info(f"Import 'get_flow_status' tool spec...")
|
174
|
+
tools = [create_flow_status_tool("i__get_flow_status_intrinsic_tool__")]
|
175
|
+
|
176
|
+
return tools
|
177
|
+
|
178
|
+
# Assisted by watsonx Code Assistant
|
179
|
+
|
180
|
+
def create_flow_status_tool(flow_status_tool: str, TEMPUS_ENDPOINT: str="http://wxo-tempus-runtime:9044") -> dict:
|
181
|
+
|
182
|
+
spec = ToolSpec(
|
183
|
+
name=flow_status_tool,
|
184
|
+
description="We can use the flow instance id to get the status of a flow. Only call this on explicit request by the user.",
|
185
|
+
permission='read_only',
|
186
|
+
display_name= "Get flow status"
|
187
|
+
)
|
188
|
+
|
189
|
+
openapi_binding = OpenApiToolBinding(
|
190
|
+
http_path="/flows",
|
191
|
+
http_method="GET",
|
192
|
+
security=[],
|
193
|
+
servers=[TEMPUS_ENDPOINT]
|
194
|
+
)
|
195
|
+
|
196
|
+
spec.binding = ToolBinding(openapi=openapi_binding)
|
197
|
+
# Input Schema
|
198
|
+
properties = {
|
199
|
+
"query_instance_id": {
|
200
|
+
"type": "string",
|
201
|
+
"title": "instance_id",
|
202
|
+
"description": "Identifies the instance ID of the flow.",
|
203
|
+
"in": "query"
|
204
|
+
}
|
205
|
+
}
|
206
|
+
|
207
|
+
spec.input_schema = ToolRequestBody(
|
208
|
+
type='object',
|
209
|
+
properties=properties,
|
210
|
+
required=[]
|
211
|
+
)
|
212
|
+
spec.output_schema = ToolResponseBody(type='array', description='Return the status of a flow instance.')
|
213
|
+
|
214
|
+
return OpenAPITool(spec=spec)
|
215
|
+
|
@@ -18,8 +18,8 @@ def bearer_token(app_id:str) -> BearerTokenAuthCredentials:
|
|
18
18
|
def api_key_auth(app_id:str) -> APIKeyAuthCredentials:
|
19
19
|
return get_application_connection_credentials(ConnectionType.API_KEY_AUTH, app_id=app_id)
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
def oauth2_auth_code(app_id:str) -> OAuth2TokenCredentials:
|
22
|
+
return get_application_connection_credentials(ConnectionType.OAUTH2_AUTH_CODE, app_id=app_id)
|
23
23
|
|
24
24
|
# def oauth2_implicit(app_id:str) -> BearerTokenAuthCredentials:
|
25
25
|
# return get_application_connection_credentials(ConnectionType.OAUTH2_IMPLICIT, app_id=app_id)
|
@@ -27,8 +27,8 @@ def api_key_auth(app_id:str) -> APIKeyAuthCredentials:
|
|
27
27
|
# def oauth2_password(app_id:str) -> BearerTokenAuthCredentials:
|
28
28
|
# return get_application_connection_credentials(ConnectionType.OAUTH2_PASSWORD, app_id=app_id)
|
29
29
|
|
30
|
-
|
31
|
-
|
30
|
+
def oauth2_client_creds(app_id:str) -> OAuth2TokenCredentials:
|
31
|
+
return get_application_connection_credentials(ConnectionType.OAUTH2_CLIENT_CREDS, app_id=app_id)
|
32
32
|
|
33
33
|
def oauth2_on_behalf_of(app_id:str) -> OAuth2TokenCredentials:
|
34
34
|
return get_application_connection_credentials(ConnectionType.OAUTH_ON_BEHALF_OF_FLOW, app_id=app_id)
|
{ibm_watsonx_orchestrate-1.5.1.dist-info → ibm_watsonx_orchestrate-1.7.0a0.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ibm-watsonx-orchestrate
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.7.0a0
|
4
4
|
Summary: IBM watsonx.orchestrate SDK
|
5
5
|
Author-email: IBM <support@ibm.com>
|
6
6
|
License: MIT License
|
@@ -11,6 +11,7 @@ Requires-Dist: click<8.2.0,>=8.0.0
|
|
11
11
|
Requires-Dist: docstring-parser<1.0,>=0.16
|
12
12
|
Requires-Dist: httpx<1.0.0,>=0.28.1
|
13
13
|
Requires-Dist: ibm-cloud-sdk-core>=3.22.0
|
14
|
+
Requires-Dist: ibm-watsonx-orchestrate-evaluation-framework==1.0.2
|
14
15
|
Requires-Dist: jsonref==1.1.0
|
15
16
|
Requires-Dist: jsonschema<5.0.0,>=4.23.0
|
16
17
|
Requires-Dist: langchain-community<1.0.0,>=0.3.12
|
{ibm_watsonx_orchestrate-1.5.1.dist-info → ibm_watsonx_orchestrate-1.7.0a0.dist-info}/RECORD
RENAMED
@@ -1,55 +1,61 @@
|
|
1
|
-
ibm_watsonx_orchestrate/__init__.py,sha256=
|
1
|
+
ibm_watsonx_orchestrate/__init__.py,sha256=EhixD8HI7QsXchEZVHSsnRmNDHfzVklZnZx59kb_BAE,427
|
2
2
|
ibm_watsonx_orchestrate/agent_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
ibm_watsonx_orchestrate/agent_builder/agents/__init__.py,sha256=
|
4
|
-
ibm_watsonx_orchestrate/agent_builder/agents/agent.py,sha256=
|
3
|
+
ibm_watsonx_orchestrate/agent_builder/agents/__init__.py,sha256=lmZwaiWXD4Ea19nrMwZXaqCxFMG29xNS8vUoZtK3yI4,392
|
4
|
+
ibm_watsonx_orchestrate/agent_builder/agents/agent.py,sha256=I8ZpOKOGXAmhUIwusDmLqCUawSg74-WZFJ5IijruxAQ,932
|
5
5
|
ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py,sha256=U1cKr22umcWCMgI4G3r5JZXHPfWYbCbiTydH4YZy_Og,987
|
6
6
|
ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py,sha256=LQM-DfOg2ajzrEur_F-aSrqKqaX4TbeajRe9YWz6s7E,981
|
7
|
-
ibm_watsonx_orchestrate/agent_builder/agents/types.py,sha256=
|
8
|
-
ibm_watsonx_orchestrate/agent_builder/
|
7
|
+
ibm_watsonx_orchestrate/agent_builder/agents/types.py,sha256=E5frrJPL7URhH6lD3QsO2heyndsBrfFWDRxXiIdH_nI,12095
|
8
|
+
ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py,sha256=5TXa8UqKUAlDo4hTbE5S9OPEkQhxXhPJHJC4pEe8U00,92
|
9
|
+
ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py,sha256=DClBKXRXOe8NppkYwzY5St-u3YvnjkL88ciiergrcVQ,924
|
10
|
+
ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py,sha256=U76wZrblSXx4qv7phcPYs3l8SiFzwZ5cJ74u8Y2iYhU,608
|
11
|
+
ibm_watsonx_orchestrate/agent_builder/connections/__init__.py,sha256=VG45ifpp6B00-ZAGW-dIEHFh18Fx3wbyfUiDDKS74u4,718
|
9
12
|
ibm_watsonx_orchestrate/agent_builder/connections/connections.py,sha256=DImRGTXiky1KEVxM_5RmeLom74Lej9bBD8cXafkV6FY,4501
|
10
|
-
ibm_watsonx_orchestrate/agent_builder/connections/types.py,sha256=
|
13
|
+
ibm_watsonx_orchestrate/agent_builder/connections/types.py,sha256=m4AhHW4HgHqeQEonLaPxwGsnVzSaBSg2M94HZ8zbRsk,9469
|
11
14
|
ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base.py,sha256=_KuGF0RZpKpwdt31rzjlTjrhGRFz2RtLzleNkhMNX4k,1831
|
12
15
|
ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py,sha256=mRow0rf5EHeJCCsTrONeTq10jShs_yIBQjpgDY_mTrI,1641
|
13
16
|
ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py,sha256=ttre2pRs_I_KBWSht60zT3dJw8twQml3m92ZkiRAoxs,7994
|
14
17
|
ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py,sha256=alJEjlneWlGpadmvOVlDjq5wulytKOmpkq3849fhKNc,131
|
15
|
-
ibm_watsonx_orchestrate/agent_builder/model_policies/types.py,sha256=
|
18
|
+
ibm_watsonx_orchestrate/agent_builder/model_policies/types.py,sha256=a6f9HP2OlZIe36k_PDRmFtefz2Ms2KBpzJ_jz8ggYbk,882
|
16
19
|
ibm_watsonx_orchestrate/agent_builder/models/__init__.py,sha256=R5nTbyMBzahONdp5-bJFp-rbtTDnp2184k6doZqt67w,31
|
17
|
-
ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=
|
20
|
+
ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=Zr0xHZpTVPZnaUSvlopc2iYVfKmhiqEuvaVe37HVxlw,9457
|
18
21
|
ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py,sha256=KXRPgBK-F9Qa6IYqEslkN3ANj3cmZoZQnlSiy_-iXCk,1054
|
19
22
|
ibm_watsonx_orchestrate/agent_builder/toolkits/types.py,sha256=yY-V4Hqct91-Rs4rJ3rY9OhzKkSMdOT63o224o-U9eg,959
|
20
23
|
ibm_watsonx_orchestrate/agent_builder/tools/__init__.py,sha256=adkYX0wgB-RKFCUBw6LPJhNVelUjUdsxipGPk2ghLns,479
|
21
24
|
ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py,sha256=unJBOJUY8DAq3T3YX5d1H5KehJUCjObAdpGLVoWIfzw,1156
|
22
|
-
ibm_watsonx_orchestrate/agent_builder/tools/
|
23
|
-
ibm_watsonx_orchestrate/agent_builder/tools/
|
24
|
-
ibm_watsonx_orchestrate/agent_builder/tools/
|
25
|
+
ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py,sha256=DJWYVmIjw1O_cbzPpwU0a_vIZGvo0mj8UsjW9zkKMlA,2589
|
26
|
+
ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py,sha256=Q2-TcUUjBAZWlhOqxfkB3yQpdxgdZAAJh0VWDh_dZPQ,16359
|
27
|
+
ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py,sha256=qVyAe7hKLZ1V4cvqDUCpYs6JBKl9MHSr0yrri-nSceA,10600
|
28
|
+
ibm_watsonx_orchestrate/agent_builder/tools/types.py,sha256=TXxWCSddXqRL2GbjkxT4vYJcRMjWS7g22wMMrBz-Wj8,7934
|
25
29
|
ibm_watsonx_orchestrate/agent_builder/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
30
|
ibm_watsonx_orchestrate/agent_builder/utils/pydantic_utils.py,sha256=QEanM6FpkmntvS02whdhWx1d4v6zT_1l9ipEbfTgHs8,7623
|
27
31
|
ibm_watsonx_orchestrate/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
-
ibm_watsonx_orchestrate/cli/config.py,sha256=
|
32
|
+
ibm_watsonx_orchestrate/cli/config.py,sha256=BE2ze0o9vLoyrk7q9mcRek2rDL2cTsVtsSGWw4W0y6M,8212
|
29
33
|
ibm_watsonx_orchestrate/cli/init_helper.py,sha256=Lb0bj6b8EaeBxkfGyrBBvc581ORg_S5-tHcXWQ-mBmE,1466
|
30
|
-
ibm_watsonx_orchestrate/cli/main.py,sha256=
|
34
|
+
ibm_watsonx_orchestrate/cli/main.py,sha256=TyVuNC12GDxo4InaPfQ6e6Xk5bGarfSoIRAslGifUQ0,2914
|
31
35
|
ibm_watsonx_orchestrate/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
|
-
ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py,sha256
|
33
|
-
ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=
|
36
|
+
ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py,sha256=-UX6ypiF_XwmEwe0twVGsfnO29Xs8xPOPJ5vk8EIifo,8991
|
37
|
+
ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=UkRzrZ07MCyzTzl_Xj7oKl4z6_m4-sQCEpjoONIrZCc,46926
|
34
38
|
ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py,sha256=fVIFhPUTPdxsxIE10nWL-W5wvBR-BS8V8D6r__J8R98,822
|
35
39
|
ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py,sha256=WjQxwJujvo28SsWgfJSXIpkcgniKcskJ2arL4MOz0Ys,455
|
36
40
|
ibm_watsonx_orchestrate/cli/commands/channels/types.py,sha256=h8gA3EM7k5X08sk8T9b5siL-XL9uUE-hl_jS-0PDBHA,254
|
37
41
|
ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.py,sha256=vPCr6z1n1yzGDjTlM4f3_9MiuVRzNmXbvUifm6XyQi8,1103
|
38
|
-
ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py,sha256=
|
42
|
+
ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py,sha256=0S1ch8SwkGRtAyy7nAZEjKl92hFkIE9TU71JJ82zdjU,8128
|
39
43
|
ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py,sha256=5XnL6wMw3R9CjYDxZxBFJcdPxmNBuYIkfJlVUODvCyc,1372
|
40
|
-
ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py,sha256=
|
41
|
-
ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=
|
42
|
-
ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py,sha256=
|
43
|
-
ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py,sha256=
|
44
|
-
ibm_watsonx_orchestrate/cli/commands/environment/types.py,sha256=
|
45
|
-
ibm_watsonx_orchestrate/cli/commands/
|
46
|
-
ibm_watsonx_orchestrate/cli/commands/
|
44
|
+
ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py,sha256=qgg2NbAB7g_PHPHd0ZLUm0EjyaCSPi1qpOhtyOlydcY,10151
|
45
|
+
ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=kWmx3k0bi-HtSwNAeMXOd03hh_uwn_ACNeKxPQ-9MVk,22033
|
46
|
+
ibm_watsonx_orchestrate/cli/commands/environment/environment_command.py,sha256=xwq7gdyjMtl2RYAnLAahGk2wDetr9BStt8yu7JkeBhk,3768
|
47
|
+
ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py,sha256=bHJ26iz9EF7vvJ2dWf5fGOaddGBFme9OsPmHyNNrtpI,10182
|
48
|
+
ibm_watsonx_orchestrate/cli/commands/environment/types.py,sha256=qKcgIUfTPJIomLor-utz4qi7YhBMpb1l2DiSvjVSgaA,175
|
49
|
+
ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py,sha256=TBxCVLSSnKf2SN2Y0pX21s1he-BTQ3RCUk6Xlsdt8Yc,7215
|
50
|
+
ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py,sha256=8CIlvwtxdjd31Rig9uHy7E_165MXUneqOMHal62Jl9A,6460
|
51
|
+
ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py,sha256=Hxj33rFEYo1Vr2bk-uRwRhNssAETtTQgWTREvC0Nxds,3348
|
52
|
+
ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py,sha256=pbsjkBssLOTSMfh5ymgDAq9DxVdD01eAI33si0JZqS4,9631
|
47
53
|
ibm_watsonx_orchestrate/cli/commands/login/login_command.py,sha256=xArMiojoozg7Exn6HTpbTcjDO2idZRA-y0WV-_Ic1Sk,651
|
48
|
-
ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=
|
49
|
-
ibm_watsonx_orchestrate/cli/commands/models/models_command.py,sha256=
|
50
|
-
ibm_watsonx_orchestrate/cli/commands/models/models_controller.py,sha256=
|
51
|
-
ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=
|
52
|
-
ibm_watsonx_orchestrate/cli/commands/server/types.py,sha256=
|
54
|
+
ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=RVZfFCuPWiASkR9Mox61v5SZ1AoRxo4_g9stnbfjCkc,7994
|
55
|
+
ibm_watsonx_orchestrate/cli/commands/models/models_command.py,sha256=xYbMHRM98TCBmnwgIOsqpfjWqD7HVirn6A4KyEgQEcE,6418
|
56
|
+
ibm_watsonx_orchestrate/cli/commands/models/models_controller.py,sha256=BNfUoWST60x3k7yIvSbtBR3rmyTQmz9g0TDK2WOoOE4,18610
|
57
|
+
ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=4djIVGGoCtuTntCJ3EkWw6yJiKCNiN5GguNVnIccUd4,37992
|
58
|
+
ibm_watsonx_orchestrate/cli/commands/server/types.py,sha256=UCrgGErbSVBnOzesfjrIii4tTCuVfWemYz5AKGZX0oA,4213
|
53
59
|
ibm_watsonx_orchestrate/cli/commands/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
60
|
ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py,sha256=CzXRkd-97jXyS6LtaaNtMah-aZu0919dYl-mDwzGThc,344
|
55
61
|
ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -57,62 +63,63 @@ ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_comman
|
|
57
63
|
ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
64
|
ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py,sha256=Wa0L8E44EdxH9LdOvmnluLk_ApJVfTLauNOC1kV4W8k,6515
|
59
65
|
ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py,sha256=e8YKUr_8CodA5fgYjUKj-Dk856foQ5Iz3I9Jld5pU_o,4193
|
60
|
-
ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py,sha256=
|
66
|
+
ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py,sha256=fq48tWNbuYFjrHXyVDmJBT96tww5iMdE2iOYUjr-fUc,11563
|
61
67
|
ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py,sha256=Cuo1ZvlfsymojqbadCqdwwS0HUjaWpe2XQrV70g61_s,3943
|
62
|
-
ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py,sha256=
|
68
|
+
ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py,sha256=pzF9umd6WAYDKQcSryMphfKg7Aycz6jQC7e4Jk-OGw4,36697
|
63
69
|
ibm_watsonx_orchestrate/cli/commands/tools/types.py,sha256=_md0GEa_cTH17NO_moWDY_LNdFvyEFQ1UVB9_FltYiA,173
|
64
70
|
ibm_watsonx_orchestrate/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
65
|
-
ibm_watsonx_orchestrate/client/base_api_client.py,sha256=
|
71
|
+
ibm_watsonx_orchestrate/client/base_api_client.py,sha256=NklphjtCpSFroBocOp4OiklC0iIF0JzXJjtJhUd8gZ8,4752
|
66
72
|
ibm_watsonx_orchestrate/client/base_service_instance.py,sha256=sM_r7bln9BpgEOhaJMdFI9-je3T7GLQxLduk-in0oRY,235
|
67
73
|
ibm_watsonx_orchestrate/client/client.py,sha256=pgYeXHe4_Makrw0gTyM343DQdrZZB8cjitFHKcbdzuc,2432
|
68
74
|
ibm_watsonx_orchestrate/client/client_errors.py,sha256=72MKCNZbKoo2QXyY0RicLhP3r0ALRjgOEbHOHNSyOYI,11712
|
69
|
-
ibm_watsonx_orchestrate/client/credentials.py,sha256=
|
70
|
-
ibm_watsonx_orchestrate/client/local_service_instance.py,sha256=
|
71
|
-
ibm_watsonx_orchestrate/client/service_instance.py,sha256=
|
72
|
-
ibm_watsonx_orchestrate/client/utils.py,sha256=
|
73
|
-
ibm_watsonx_orchestrate/client/agents/agent_client.py,sha256=
|
74
|
-
ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py,sha256=
|
75
|
-
ibm_watsonx_orchestrate/client/agents/external_agent_client.py,sha256=
|
75
|
+
ibm_watsonx_orchestrate/client/credentials.py,sha256=gDVeeQZDdbbjJiO1EI61yx2oRgTQctxA2ZesSDHI4DA,3786
|
76
|
+
ibm_watsonx_orchestrate/client/local_service_instance.py,sha256=gdeol7xNRVnxEMr5rui1ovqtwDfMRziHn9GIjo7-MVo,3447
|
77
|
+
ibm_watsonx_orchestrate/client/service_instance.py,sha256=uZlsMW9LC_2GggqEjBQY09fm6uZJ-0audwzqgCyjbbQ,5277
|
78
|
+
ibm_watsonx_orchestrate/client/utils.py,sha256=86UH5H54uTJA2kFb4dXrnGfs7hFQZ3h21ElwngZpT24,4745
|
79
|
+
ibm_watsonx_orchestrate/client/agents/agent_client.py,sha256=v1ZqXKj3p5JeJyOLpV84UUI2LY8XPjW1ejo5yzkeiMQ,4708
|
80
|
+
ibm_watsonx_orchestrate/client/agents/assistant_agent_client.py,sha256=1JQN0E4T_uz5V0LM-LD1ahNu2KCeFBjXAr8WCiP9mkE,1745
|
81
|
+
ibm_watsonx_orchestrate/client/agents/external_agent_client.py,sha256=iQ44XBdC4rYfS-zFn4St1xC5y5gf5SNqKHzMNQcFDZc,1808
|
76
82
|
ibm_watsonx_orchestrate/client/analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
83
|
ibm_watsonx_orchestrate/client/analytics/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
84
|
ibm_watsonx_orchestrate/client/analytics/llm/analytics_llm_client.py,sha256=0YS_BCpmf5oGFawpZkJ38cuz5ArhKsZIbSydWRd194s,1340
|
79
85
|
ibm_watsonx_orchestrate/client/connections/__init__.py,sha256=J7TOyVg38h71AlaJjlFs5fOuAXTceHvELtOJ9oz4Mvg,207
|
80
|
-
ibm_watsonx_orchestrate/client/connections/connections_client.py,sha256=
|
81
|
-
ibm_watsonx_orchestrate/client/connections/utils.py,sha256=
|
86
|
+
ibm_watsonx_orchestrate/client/connections/connections_client.py,sha256=B6LQPwoFHg_CIXHEJBjVu6fXnRj_xVsLGsC-DhmdfSQ,8478
|
87
|
+
ibm_watsonx_orchestrate/client/connections/utils.py,sha256=f6HsiDI6cycOqfYN6P4uZ3SQds83xlh83zTUioZPeYk,2618
|
82
88
|
ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py,sha256=U-pG_H0I8992f0V13Li_e1dksKp54MrYX3X9bvr-09w,2181
|
83
89
|
ibm_watsonx_orchestrate/client/model_policies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
84
|
-
ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py,sha256=
|
90
|
+
ibm_watsonx_orchestrate/client/model_policies/model_policies_client.py,sha256=Ddjraesv1MRPhZebB0PdBL0zgdsoWmnYpWTUci_6XFI,2258
|
85
91
|
ibm_watsonx_orchestrate/client/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
92
|
ibm_watsonx_orchestrate/client/models/models_client.py,sha256=ZvP3iPgUFw_SXp41kJuzWQDsgQOF5oqJURH7dFEnPz8,2164
|
87
93
|
ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py,sha256=TLFNS39EeBD_t4Y-rX9sGp4sWBDr--mE5qVtHq8Q2hk,3121
|
88
|
-
ibm_watsonx_orchestrate/client/tools/tempus_client.py,sha256=
|
94
|
+
ibm_watsonx_orchestrate/client/tools/tempus_client.py,sha256=24fKDZUOVHBW-Vj4mubnpnUmab5LgGn8u5hOVyJaozI,1804
|
89
95
|
ibm_watsonx_orchestrate/client/tools/tool_client.py,sha256=d3i3alVwa0TCN72w9sWOrM20GCbNmnpTnqEOJVbBIFM,1994
|
90
|
-
ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=
|
91
|
-
ibm_watsonx_orchestrate/docker/default.env,sha256=
|
96
|
+
ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=TcwnTheeYdGiGDKpSIyxRNJVEwQ6MrKLM0U-wk-M-j8,38757
|
97
|
+
ibm_watsonx_orchestrate/docker/default.env,sha256=DsTSH2fRpmobzA48mcjsDxBQQL3yB6JYMjwserLHJ4A,5668
|
98
|
+
ibm_watsonx_orchestrate/docker/proxy-config-single.yaml,sha256=WEbK4ENFuTCYhzRu_QblWp1_GMARgZnx5vReQafkIG8,308
|
92
99
|
ibm_watsonx_orchestrate/docker/start-up.sh,sha256=LTtwHp0AidVgjohis2LXGvZnkFQStOiUAxgGABOyeUI,1811
|
93
100
|
ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl,sha256=Hi3-owh5OM0Jz2ihX9nLoojnr7Ky1TV-GelyqLcewLE,2047417
|
94
101
|
ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz,sha256=e5T-q7XPAtiCyQljwZp6kk3Q_4Tg6y5sijHTkscmqqQ,2025466
|
95
102
|
ibm_watsonx_orchestrate/docker/tempus/common-config.yaml,sha256=Zo3F36F5DV4VO_vUg1RG-r4WhcukVh79J2fXhGl6j0A,22
|
96
|
-
ibm_watsonx_orchestrate/
|
97
|
-
ibm_watsonx_orchestrate/
|
98
|
-
ibm_watsonx_orchestrate/
|
99
|
-
ibm_watsonx_orchestrate/
|
100
|
-
ibm_watsonx_orchestrate/
|
101
|
-
ibm_watsonx_orchestrate/
|
102
|
-
ibm_watsonx_orchestrate/
|
103
|
-
ibm_watsonx_orchestrate/
|
104
|
-
ibm_watsonx_orchestrate/
|
105
|
-
ibm_watsonx_orchestrate/
|
106
|
-
ibm_watsonx_orchestrate/
|
103
|
+
ibm_watsonx_orchestrate/flow_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
104
|
+
ibm_watsonx_orchestrate/flow_builder/data_map.py,sha256=1brmWWFERDsNG2XGais-5-r58LKUUwBtqwdaLQIFRhE,503
|
105
|
+
ibm_watsonx_orchestrate/flow_builder/node.py,sha256=tp_ssBOSDDi8q-ET2bP7xRPwNOLmLUgQ7v9zZZqn9SU,4090
|
106
|
+
ibm_watsonx_orchestrate/flow_builder/types.py,sha256=KPASSlw55Dzp_8nhFdJUN0UI8_knMzLCK9epVcfP5NY,27689
|
107
|
+
ibm_watsonx_orchestrate/flow_builder/utils.py,sha256=6v-5Do7_R_mCX0Td5RQO4X8DBWb_HM8HbwkUyGAQOHg,8200
|
108
|
+
ibm_watsonx_orchestrate/flow_builder/flows/__init__.py,sha256=UTwpiAlT9Wytn1kK-kgUaY6UYjLKsiaQK0ZdSbKLtM0,897
|
109
|
+
ibm_watsonx_orchestrate/flow_builder/flows/constants.py,sha256=XXYtL5Y1OTjj3jKo2zoJiwb7FCUNu_M43fgU8w591TY,322
|
110
|
+
ibm_watsonx_orchestrate/flow_builder/flows/decorators.py,sha256=k9-r9ly5ih5oHBqjEgrc2vfeVC4LOMKg3YVLacBDubM,2702
|
111
|
+
ibm_watsonx_orchestrate/flow_builder/flows/events.py,sha256=bhbN3ljl-WyiJ_LzMd99IlX0QrhB_bASyHWv8mtTjvo,2978
|
112
|
+
ibm_watsonx_orchestrate/flow_builder/flows/flow.py,sha256=1Tc8L8rGbocPVdUNk-Zp_Fi9QxGLSg22LWPewlH7GKU,51020
|
113
|
+
ibm_watsonx_orchestrate/flow_builder/resources/flow_status.openapi.yml,sha256=UkQ4FD_ZhvZuMOjrgLm7cx8zJFZD7Ri-MPCe_zktU-8,1664
|
107
114
|
ibm_watsonx_orchestrate/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
108
|
-
ibm_watsonx_orchestrate/run/connections.py,sha256=
|
115
|
+
ibm_watsonx_orchestrate/run/connections.py,sha256=K-65GXPA8GEsVmRdPfMe_LB2G9RfXQUr95wvRUOhkS4,1828
|
109
116
|
ibm_watsonx_orchestrate/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
110
117
|
ibm_watsonx_orchestrate/utils/utils.py,sha256=U7z_2iASoFiZ2zM0a_2Mc2Y-P5oOT7hOwuurzC9Z3N8,721
|
111
118
|
ibm_watsonx_orchestrate/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
112
119
|
ibm_watsonx_orchestrate/utils/logging/logger.py,sha256=FzeGnidXAjC7yHrvIaj4KZPeaBBSCniZFlwgr5yV3oA,1037
|
113
120
|
ibm_watsonx_orchestrate/utils/logging/logging.yaml,sha256=9_TKfuFr1barnOKP0fZT5D6MhddiwsXVTFjtRbcOO5w,314
|
114
|
-
ibm_watsonx_orchestrate-1.
|
115
|
-
ibm_watsonx_orchestrate-1.
|
116
|
-
ibm_watsonx_orchestrate-1.
|
117
|
-
ibm_watsonx_orchestrate-1.
|
118
|
-
ibm_watsonx_orchestrate-1.
|
121
|
+
ibm_watsonx_orchestrate-1.7.0a0.dist-info/METADATA,sha256=PH-_VZ8QdVlLhMB_JNW-pmtctIMFAoD0MxSeHM6kWA0,1439
|
122
|
+
ibm_watsonx_orchestrate-1.7.0a0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
123
|
+
ibm_watsonx_orchestrate-1.7.0a0.dist-info/entry_points.txt,sha256=SfIT02-Jen5e99OcLhzbcM9Bdyf8SGVOCtnSplgZdQI,69
|
124
|
+
ibm_watsonx_orchestrate-1.7.0a0.dist-info/licenses/LICENSE,sha256=Shgxx7hTdCOkiVRmfGgp_1ISISrwQD7m2f0y8Hsapl4,1083
|
125
|
+
ibm_watsonx_orchestrate-1.7.0a0.dist-info/RECORD,,
|
@@ -1,144 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
A set of decorators to help define different Flow constructs.
|
3
|
-
"""
|
4
|
-
|
5
|
-
import asyncio
|
6
|
-
from functools import wraps
|
7
|
-
import logging
|
8
|
-
import inspect
|
9
|
-
from typing import Callable, Optional, Sequence
|
10
|
-
from pydantic import BaseModel
|
11
|
-
from ..types import extract_node_spec, UserNodeSpec, FlowSpec
|
12
|
-
|
13
|
-
from .flow import FlowFactory, Flow
|
14
|
-
|
15
|
-
logger = logging.getLogger(__name__)
|
16
|
-
|
17
|
-
|
18
|
-
class FlowWrapper:
|
19
|
-
def __init__(self, func, a_model):
|
20
|
-
self.func = func
|
21
|
-
self.a_model = a_model
|
22
|
-
wraps(func)(self) # Preserve metadata
|
23
|
-
|
24
|
-
def __call__(self, *args, **kwargs):
|
25
|
-
result = self.func(self.a_model)
|
26
|
-
if not isinstance(result, Flow):
|
27
|
-
raise ValueError("Return value must be of type Flow")
|
28
|
-
return result
|
29
|
-
|
30
|
-
def user(*args, name: str|None=None, description: str|None=None, owners: Sequence[str]|None = None, message: str | None = None):
|
31
|
-
"""Decorator to mark a function as a user node specification."""
|
32
|
-
|
33
|
-
def decorator(func: Callable):
|
34
|
-
node_spec = extract_node_spec(func, name, description)
|
35
|
-
func.__user_spec__ = UserNodeSpec(type = "user",
|
36
|
-
name = node_spec.name,
|
37
|
-
display_name = node_spec.display_name,
|
38
|
-
description = node_spec.description,
|
39
|
-
input_schema = node_spec.input_schema,
|
40
|
-
output_schema = node_spec.output_schema,
|
41
|
-
output_schema_object = node_spec.output_schema_object,
|
42
|
-
text=message,
|
43
|
-
owners=owners)
|
44
|
-
|
45
|
-
@wraps(func)
|
46
|
-
def wrapper(*args, **kwargs):
|
47
|
-
logger.error(f"User node {name} is not supported yet.")
|
48
|
-
r = func(*args, **kwargs)
|
49
|
-
return r
|
50
|
-
|
51
|
-
return wrapper
|
52
|
-
|
53
|
-
if len(args) == 1 and callable(args[0]):
|
54
|
-
return decorator(args[0])
|
55
|
-
else:
|
56
|
-
return decorator
|
57
|
-
|
58
|
-
|
59
|
-
def flow_spec(*args,
|
60
|
-
name: Optional[str]=None,
|
61
|
-
description: str|None=None,
|
62
|
-
initiators: Sequence[str] = ()):
|
63
|
-
"""Decorator to mark a function as a flow specification."""
|
64
|
-
|
65
|
-
def decorator(func: Callable):
|
66
|
-
node_spec = extract_node_spec(func, name, description)
|
67
|
-
a_spec = FlowSpec(type = "flow",
|
68
|
-
name = node_spec.name,
|
69
|
-
display_name = node_spec.display_name,
|
70
|
-
description = node_spec.description,
|
71
|
-
input_schema = node_spec.input_schema,
|
72
|
-
output_schema = node_spec.output_schema,
|
73
|
-
output_schema_object = node_spec.output_schema_object,
|
74
|
-
initiators = initiators)
|
75
|
-
|
76
|
-
# we should also check a flow is async
|
77
|
-
if not asyncio.iscoroutinefunction(func):
|
78
|
-
raise ValueError("Flow must be asynchronous.")
|
79
|
-
|
80
|
-
logger.info("Generated flow spec: %s", a_spec)
|
81
|
-
func.__flow_spec__ = a_spec
|
82
|
-
|
83
|
-
@wraps(func)
|
84
|
-
def wrapper(*args, **kwargs):
|
85
|
-
logger.info("Creating flow spec: %s", name)
|
86
|
-
r = func(*args, **kwargs)
|
87
|
-
logger.info("Flow spec %s returned: %s", name, r)
|
88
|
-
return r
|
89
|
-
|
90
|
-
return wrapper
|
91
|
-
|
92
|
-
if len(args) == 1 and callable(args[0]):
|
93
|
-
return decorator(args[0])
|
94
|
-
else:
|
95
|
-
return decorator
|
96
|
-
|
97
|
-
def flow(*args,
|
98
|
-
name: Optional[str]=None,
|
99
|
-
display_name: Optional[str]=None,
|
100
|
-
description: str|None=None,
|
101
|
-
input_schema: type[BaseModel] | None = None,
|
102
|
-
output_schema: type[BaseModel] | None = None,
|
103
|
-
initiators: Sequence[str] = ()):
|
104
|
-
"""Decorator to mark a function as a flow model builder."""
|
105
|
-
|
106
|
-
def decorator(func: Callable):
|
107
|
-
"""
|
108
|
-
Decorator that takes a function as an argument and returns a wrapper function.
|
109
|
-
The wrapper function takes a single argument of type Flow and calls the original function with the created flow as an argument.
|
110
|
-
"""
|
111
|
-
|
112
|
-
sig = inspect.signature(func)
|
113
|
-
if len(sig.parameters) != 1:
|
114
|
-
raise ValueError("Only one argument is allowed")
|
115
|
-
param = list(sig.parameters.values())[0]
|
116
|
-
if param.annotation != Flow:
|
117
|
-
raise ValueError("Argument must be of type Flow")
|
118
|
-
if sig.return_annotation != Flow:
|
119
|
-
raise ValueError("Return value must be of type Flow")
|
120
|
-
|
121
|
-
node_spec = extract_node_spec(func, name, description)
|
122
|
-
a_model = FlowFactory.create_flow(
|
123
|
-
name = node_spec.name,
|
124
|
-
display_name = display_name,
|
125
|
-
description = node_spec.description,
|
126
|
-
input_schema = input_schema,
|
127
|
-
output_schema = output_schema,
|
128
|
-
initiators = initiators)
|
129
|
-
|
130
|
-
# logger.info("Creating flow model: %s", a_model.spec.name)
|
131
|
-
|
132
|
-
# @wraps(func)
|
133
|
-
# def wrapper(*args, **kwargs):
|
134
|
-
# result = func(a_model)
|
135
|
-
# if not isinstance(result, Flow):
|
136
|
-
# raise ValueError("Return value must be of type Flow")
|
137
|
-
# return result
|
138
|
-
|
139
|
-
return FlowWrapper(func, a_model)
|
140
|
-
|
141
|
-
if len(args) == 1 and callable(args[0]):
|
142
|
-
return decorator(args[0])
|
143
|
-
else:
|
144
|
-
return decorator
|