ibm-watsonx-orchestrate 1.12.0b0__py3-none-any.whl → 1.12.0b1__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/types.py +5 -5
- ibm_watsonx_orchestrate/agent_builder/models/types.py +1 -0
- ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py +1 -1
- ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py +1 -1
- ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +6 -0
- ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +2 -2
- ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +2 -2
- ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py +23 -4
- ibm_watsonx_orchestrate/cli/commands/partners/partners_command.py +1 -1
- ibm_watsonx_orchestrate/cli/commands/server/server_command.py +11 -3
- ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +2 -2
- ibm_watsonx_orchestrate/docker/compose-lite.yml +56 -6
- ibm_watsonx_orchestrate/docker/default.env +19 -16
- ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +8 -2
- ibm_watsonx_orchestrate/flow_builder/flows/flow.py +31 -7
- ibm_watsonx_orchestrate/flow_builder/node.py +1 -1
- ibm_watsonx_orchestrate/flow_builder/types.py +18 -3
- {ibm_watsonx_orchestrate-1.12.0b0.dist-info → ibm_watsonx_orchestrate-1.12.0b1.dist-info}/METADATA +1 -1
- {ibm_watsonx_orchestrate-1.12.0b0.dist-info → ibm_watsonx_orchestrate-1.12.0b1.dist-info}/RECORD +23 -23
- {ibm_watsonx_orchestrate-1.12.0b0.dist-info → ibm_watsonx_orchestrate-1.12.0b1.dist-info}/WHEEL +0 -0
- {ibm_watsonx_orchestrate-1.12.0b0.dist-info → ibm_watsonx_orchestrate-1.12.0b1.dist-info}/entry_points.txt +0 -0
- {ibm_watsonx_orchestrate-1.12.0b0.dist-info → ibm_watsonx_orchestrate-1.12.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -88,7 +88,7 @@ class BaseAgentSpec(BaseModel):
|
|
88
88
|
dumped = self.model_dump(mode='json', exclude_unset=True, exclude_none=True)
|
89
89
|
with open(file, 'w') as f:
|
90
90
|
if file.endswith('.yaml') or file.endswith('.yml'):
|
91
|
-
yaml.dump(dumped, f, sort_keys=False)
|
91
|
+
yaml.dump(dumped, f, sort_keys=False, allow_unicode=True)
|
92
92
|
elif file.endswith('.json'):
|
93
93
|
json.dump(dumped, f, indent=2)
|
94
94
|
else:
|
@@ -219,8 +219,8 @@ def validate_agent_fields(values: dict) -> dict:
|
|
219
219
|
# ===============================
|
220
220
|
|
221
221
|
class ExternalAgentConfig(BaseModel):
|
222
|
-
hidden: bool = False
|
223
|
-
enable_cot: bool = False
|
222
|
+
hidden: Optional[bool] = False
|
223
|
+
enable_cot: Optional[bool] = False
|
224
224
|
|
225
225
|
class ExternalAgentSpec(BaseAgentSpec):
|
226
226
|
model_config = ConfigDict(arbitrary_types_allowed=True)
|
@@ -243,8 +243,8 @@ class ExternalAgentSpec(BaseAgentSpec):
|
|
243
243
|
# The get api responds with a flat object with no config
|
244
244
|
if values.get("config") is None:
|
245
245
|
values["config"] = {}
|
246
|
-
values["config"]["enable_cot"] = values.get("enable_cot",
|
247
|
-
values["config"]["hidden"] = values.get("hidden",
|
246
|
+
values["config"]["enable_cot"] = values.get("enable_cot", False)
|
247
|
+
values["config"]["hidden"] = values.get("hidden", False)
|
248
248
|
return validate_external_agent_fields(values)
|
249
249
|
|
250
250
|
@model_validator(mode="after")
|
@@ -18,7 +18,7 @@ class BaseToolkit:
|
|
18
18
|
dumped = self.__toolkit_spec__.model_dump(mode='json', exclude_unset=True, exclude_none=True, by_alias=True)
|
19
19
|
with open(file, 'w') as f:
|
20
20
|
if file.endswith('.yaml') or file.endswith('.yml'):
|
21
|
-
yaml.dump(dumped, f)
|
21
|
+
yaml.dump(dumped, f, allow_unicode=True)
|
22
22
|
elif file.endswith('.json'):
|
23
23
|
json.dump(dumped, f, indent=2)
|
24
24
|
else:
|
@@ -19,7 +19,7 @@ class BaseTool:
|
|
19
19
|
dumped = self.__tool_spec__.model_dump(mode='json', exclude_unset=True, exclude_none=True, by_alias=True)
|
20
20
|
with open(file, 'w') as f:
|
21
21
|
if file.endswith('.yaml') or file.endswith('.yml'):
|
22
|
-
yaml.dump(dumped, f)
|
22
|
+
yaml.dump(dumped, f, allow_unicode=True)
|
23
23
|
elif file.endswith('.json'):
|
24
24
|
json.dump(dumped, f, indent=2)
|
25
25
|
else:
|
@@ -80,6 +80,7 @@ def create_openapi_json_tool(
|
|
80
80
|
http_success_response_code: int = 200,
|
81
81
|
http_response_content_type='application/json',
|
82
82
|
name: str = None,
|
83
|
+
display_name: str = None,
|
83
84
|
description: str = None,
|
84
85
|
permission: ToolPermission = None,
|
85
86
|
input_schema: ToolRequestBody = None,
|
@@ -130,8 +131,10 @@ def create_openapi_json_tool(
|
|
130
131
|
raise BadRequest(
|
131
132
|
f"No description provided for tool. {http_method}: {http_path} did not specify a description field, and no description was provided")
|
132
133
|
|
134
|
+
spec_display_name = display_name if display_name else route_spec.get('summary')
|
133
135
|
spec = ToolSpec(
|
134
136
|
name=spec_name,
|
137
|
+
display_name=spec_display_name,
|
135
138
|
description=spec_description,
|
136
139
|
permission=spec_permission
|
137
140
|
)
|
@@ -348,6 +351,7 @@ async def create_openapi_json_tool_from_uri(
|
|
348
351
|
http_response_content_type='application/json',
|
349
352
|
permission: ToolPermission = ToolPermission.READ_ONLY,
|
350
353
|
name: str = None,
|
354
|
+
display_name: str = None,
|
351
355
|
description: str = None,
|
352
356
|
input_schema: ToolRequestBody = None,
|
353
357
|
output_schema: ToolResponseBody = None,
|
@@ -362,6 +366,7 @@ async def create_openapi_json_tool_from_uri(
|
|
362
366
|
:param http_success_response_code: Which http status code should be considered a successful call (defaults to 200)
|
363
367
|
:param http_response_content_type: Which http response type should be considered successful (default to application/json)
|
364
368
|
:param name: The name of the resulting tool (used to invoke the tool by the agent)
|
369
|
+
:param display_name: The name of the resulting tool to be displayed
|
365
370
|
:param description: The description of the resulting tool (used as the semantic layer to help the agent with tool selection)
|
366
371
|
:param permission: Which orchestrate permission level does a user need to have to invoke this tool
|
367
372
|
:param input_schema: The JSONSchema of the inputs to the http request
|
@@ -379,6 +384,7 @@ async def create_openapi_json_tool_from_uri(
|
|
379
384
|
http_response_content_type=http_response_content_type,
|
380
385
|
permission=permission,
|
381
386
|
name=name,
|
387
|
+
display_name=display_name,
|
382
388
|
description=description,
|
383
389
|
input_schema=input_schema,
|
384
390
|
output_schema=output_schema,
|
@@ -1330,7 +1330,7 @@ class AgentsController:
|
|
1330
1330
|
if agent_only_flag:
|
1331
1331
|
logger.info(f"Exported agent definition for '{name}' to '{output_path}'")
|
1332
1332
|
with open(output_path, 'w') as outfile:
|
1333
|
-
yaml.dump(agent_spec_file_content, outfile, sort_keys=False, default_flow_style=False)
|
1333
|
+
yaml.dump(agent_spec_file_content, outfile, sort_keys=False, default_flow_style=False, allow_unicode=True)
|
1334
1334
|
return
|
1335
1335
|
|
1336
1336
|
close_file_flag = False
|
@@ -1340,7 +1340,7 @@ class AgentsController:
|
|
1340
1340
|
|
1341
1341
|
logger.info(f"Exporting agent definition for '{name}'")
|
1342
1342
|
|
1343
|
-
agent_spec_yaml = yaml.dump(agent_spec_file_content, sort_keys=False, default_flow_style=False)
|
1343
|
+
agent_spec_yaml = yaml.dump(agent_spec_file_content, sort_keys=False, default_flow_style=False, allow_unicode=True)
|
1344
1344
|
agent_spec_yaml_bytes = agent_spec_yaml.encode("utf-8")
|
1345
1345
|
agent_spec_yaml_file = io.BytesIO(agent_spec_yaml_bytes)
|
1346
1346
|
|
@@ -575,7 +575,7 @@ def export_connection(output_file: str, app_id: str | None = None, connection_id
|
|
575
575
|
case '.zip':
|
576
576
|
zip_file = zipfile.ZipFile(output_path, "w")
|
577
577
|
|
578
|
-
connection_yaml = yaml.dump(combined_connections, sort_keys=False, default_flow_style=False)
|
578
|
+
connection_yaml = yaml.dump(combined_connections, sort_keys=False, default_flow_style=False, allow_unicode=True)
|
579
579
|
connection_yaml_bytes = connection_yaml.encode("utf-8")
|
580
580
|
connection_yaml_file = io.BytesIO(connection_yaml_bytes)
|
581
581
|
|
@@ -588,7 +588,7 @@ def export_connection(output_file: str, app_id: str | None = None, connection_id
|
|
588
588
|
case '.yaml' | '.yml':
|
589
589
|
with open(output_path,'w') as yaml_file:
|
590
590
|
yaml_file.write(
|
591
|
-
yaml.dump(combined_connections, sort_keys=False, default_flow_style=False)
|
591
|
+
yaml.dump(combined_connections, sort_keys=False, default_flow_style=False, allow_unicode=True)
|
592
592
|
)
|
593
593
|
|
594
594
|
logger.info(f"Successfully exported connection file for {app_id}")
|
@@ -101,10 +101,11 @@ PROVIDER_EXTRA_PROPERTIES_LUT = {
|
|
101
101
|
PROVIDER_REQUIRED_FIELDS = {k:['api_key'] for k in ModelProvider}
|
102
102
|
# Update required fields for each provider
|
103
103
|
# Use sets to denote when a requirement is 'or'
|
104
|
+
# Tuples denote combined requirements like 'and'
|
104
105
|
PROVIDER_REQUIRED_FIELDS.update({
|
105
106
|
ModelProvider.WATSONX: PROVIDER_REQUIRED_FIELDS[ModelProvider.WATSONX] + [{'watsonx_space_id', 'watsonx_project_id', 'watsonx_deployment_id'}],
|
106
107
|
ModelProvider.OLLAMA: PROVIDER_REQUIRED_FIELDS[ModelProvider.OLLAMA] + ['custom_host'],
|
107
|
-
ModelProvider.BEDROCK: [],
|
108
|
+
ModelProvider.BEDROCK: [{'api_key', ('aws_secret_access_key', 'aws_access_key_id')}],
|
108
109
|
})
|
109
110
|
|
110
111
|
# def env_file_to_model_ProviderConfig(model_name: str, env_file_path: str) -> ProviderConfig | None:
|
@@ -158,16 +159,34 @@ def _validate_extra_fields(provider: ModelProvider, cfg: ProviderConfig) -> None
|
|
158
159
|
if cfg.__dict__.get(attr) is not None and attr not in accepted_fields:
|
159
160
|
logger.warning(f"The config option '{attr}' is not used by provider '{provider}'")
|
160
161
|
|
162
|
+
def _check_credential_provided(cred: str | tuple, provided_creds: set) -> bool:
|
163
|
+
if isinstance(cred, tuple):
|
164
|
+
return all(item in provided_creds for item in cred)
|
165
|
+
else:
|
166
|
+
return cred in provided_creds
|
167
|
+
|
168
|
+
def _format_missing_credential(missing_credential: set) -> str:
|
169
|
+
parts = []
|
170
|
+
for cred in missing_credential:
|
171
|
+
if isinstance(cred, tuple):
|
172
|
+
formatted = " and ".join(f"{x}" for x in cred)
|
173
|
+
parts.append(f"({formatted})")
|
174
|
+
else:
|
175
|
+
parts.append(f"{cred}")
|
176
|
+
|
177
|
+
return " or ".join(parts)
|
178
|
+
|
179
|
+
|
161
180
|
def _validate_requirements(provider: ModelProvider, cfg: ProviderConfig, app_id: str = None) -> None:
|
162
181
|
provided_credentials = set([k for k,v in dict(cfg).items() if v is not None])
|
163
182
|
required_creds = PROVIDER_REQUIRED_FIELDS[provider]
|
164
183
|
missing_credentials = []
|
165
184
|
for cred in required_creds:
|
166
185
|
if isinstance(cred, set):
|
167
|
-
if not any(c
|
186
|
+
if not any(_check_credential_provided(c, provided_credentials) for c in cred):
|
168
187
|
missing_credentials.append(cred)
|
169
188
|
else:
|
170
|
-
if
|
189
|
+
if not _check_credential_provided(cred, provided_credentials):
|
171
190
|
missing_credentials.append(cred)
|
172
191
|
|
173
192
|
if len(missing_credentials) > 0:
|
@@ -177,7 +196,7 @@ def _validate_requirements(provider: ModelProvider, cfg: ProviderConfig, app_id:
|
|
177
196
|
missing_credentials_string = f"Be sure to include the following required fields for provider '{provider}' in the connection '{app_id}':"
|
178
197
|
for cred in missing_credentials:
|
179
198
|
if isinstance(cred, set):
|
180
|
-
cred_str =
|
199
|
+
cred_str = _format_missing_credential(cred)
|
181
200
|
else:
|
182
201
|
cred_str = cred
|
183
202
|
missing_credentials_string += f"\n\t - {cred_str}"
|
@@ -3,7 +3,7 @@ import typer
|
|
3
3
|
from ibm_watsonx_orchestrate.cli.commands.partners import partners_controller
|
4
4
|
from ibm_watsonx_orchestrate.cli.commands.partners.offering.partners_offering_command import partners_offering
|
5
5
|
|
6
|
-
partners_app = typer.Typer(no_args_is_help=True
|
6
|
+
partners_app = typer.Typer(no_args_is_help=True)
|
7
7
|
|
8
8
|
partners_app.add_typer(
|
9
9
|
partners_offering,
|
@@ -48,6 +48,7 @@ def run_compose_lite(
|
|
48
48
|
experimental_with_ibm_telemetry=False,
|
49
49
|
with_doc_processing=False,
|
50
50
|
with_voice=False,
|
51
|
+
with_connections_ui=False,
|
51
52
|
with_langflow=False,
|
52
53
|
) -> None:
|
53
54
|
EnvService.prepare_clean_env(final_env_file)
|
@@ -80,6 +81,8 @@ def run_compose_lite(
|
|
80
81
|
profiles.append("docproc")
|
81
82
|
if with_voice:
|
82
83
|
profiles.append("voice")
|
84
|
+
if with_connections_ui:
|
85
|
+
profiles.append("connections-ui")
|
83
86
|
if with_langflow:
|
84
87
|
profiles.append("langflow")
|
85
88
|
|
@@ -358,11 +361,14 @@ def server_start(
|
|
358
361
|
'--with-voice', '-v',
|
359
362
|
help='Enable voice controller to interact with the chat via voice channels'
|
360
363
|
),
|
364
|
+
with_connections_ui: bool = typer.Option(
|
365
|
+
False,
|
366
|
+
'--with-connections-ui', '-c',
|
367
|
+
help='Enables connections ui to facilitate OAuth connections and credential management via a UI'),
|
361
368
|
with_langflow: bool = typer.Option(
|
362
369
|
False,
|
363
370
|
'--with-langflow',
|
364
|
-
help='Enable Langflow UI, available at http://localhost:7861'
|
365
|
-
hidden=True
|
371
|
+
help='Enable Langflow UI, available at http://localhost:7861'
|
366
372
|
),
|
367
373
|
):
|
368
374
|
cli_config = Config()
|
@@ -425,6 +431,7 @@ def server_start(
|
|
425
431
|
experimental_with_ibm_telemetry=experimental_with_ibm_telemetry,
|
426
432
|
with_doc_processing=with_doc_processing,
|
427
433
|
with_voice=with_voice,
|
434
|
+
with_connections_ui=with_connections_ui,
|
428
435
|
with_langflow=with_langflow, env_service=env_service)
|
429
436
|
|
430
437
|
run_db_migration()
|
@@ -455,9 +462,10 @@ def server_start(
|
|
455
462
|
logger.info(f"You can access the observability platform Langfuse at http://localhost:3010, username: orchestrate@ibm.com, password: orchestrate")
|
456
463
|
if with_doc_processing:
|
457
464
|
logger.info(f"Document processing in Flows (Public Preview) has been enabled.")
|
465
|
+
if with_connections_ui:
|
466
|
+
logger.info("Connections UI can be found at http://localhost:3412/connectors")
|
458
467
|
if with_langflow:
|
459
468
|
logger.info("Langflow has been enabled, the Langflow UI is available at http://localhost:7861")
|
460
|
-
|
461
469
|
@server_app.command(name="stop")
|
462
470
|
def server_stop(
|
463
471
|
user_env_file: str = typer.Option(
|
@@ -47,11 +47,11 @@ def import_toolkit(
|
|
47
47
|
] = None,
|
48
48
|
url: Annotated[
|
49
49
|
Optional[str],
|
50
|
-
typer.Option("--url", "-u", help="The URL of the remote MCP server"
|
50
|
+
typer.Option("--url", "-u", help="The URL of the remote MCP server"),
|
51
51
|
] = None,
|
52
52
|
transport: Annotated[
|
53
53
|
ToolkitTransportKind,
|
54
|
-
typer.Option("--transport", help="The communication protocol to use for the remote MCP server. Only \"sse\" or \"streamable_http\" supported"
|
54
|
+
typer.Option("--transport", help="The communication protocol to use for the remote MCP server. Only \"sse\" or \"streamable_http\" supported"),
|
55
55
|
] = None,
|
56
56
|
tools: Annotated[
|
57
57
|
Optional[str],
|
@@ -49,8 +49,28 @@ services:
|
|
49
49
|
MAX_POOL: 60
|
50
50
|
DEPLOYMENT_MODE: laptop
|
51
51
|
SUFFIXLIST: ${CM_SUFFIXLIST:-[]}
|
52
|
+
BACKEND_BASE_URL: http://localhost:3001
|
53
|
+
CALLBACK_URL: http://localhost:3001/auth/oauth2/callback
|
52
54
|
ports:
|
53
55
|
- 3001:3001
|
56
|
+
|
57
|
+
wxo-server-connections-ui:
|
58
|
+
image: ${CONNECTIONS_UI_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-connections-ui:${CONNECTIONS_UI_TAG:-latest}
|
59
|
+
platform: linux/amd64
|
60
|
+
profiles: [connections-ui]
|
61
|
+
environment:
|
62
|
+
PORT: 3412
|
63
|
+
WXO_CONNECTIONS_URL: http://wxo-server-connection-manager:3001
|
64
|
+
DEPLOYMENT_MODE: laptop
|
65
|
+
WXO_URL: http://localhost:3412
|
66
|
+
ENV: production
|
67
|
+
WXO_SERVER_URL: http://localhost:4321
|
68
|
+
TENANT_ID: ${REACT_APP_TENANT_ID}
|
69
|
+
WXO_CHAT_URL: http://localhost:3000
|
70
|
+
ports:
|
71
|
+
- "3412:3412"
|
72
|
+
networks:
|
73
|
+
- default
|
54
74
|
|
55
75
|
ai-gateway:
|
56
76
|
image: ${AI_GATEWAY_REGISTRY:-us.icr.io/watson-orchestrate-private}/ai-gateway:${AI_GATEWAY_TAG:-latest}
|
@@ -73,6 +93,24 @@ services:
|
|
73
93
|
environment:
|
74
94
|
JWT_SECRET: ${JWT_SECRET}
|
75
95
|
DEPLOYMENT_PLATFORM: laptop-lite
|
96
|
+
CALLBACK_HOST_URL: ${CALLBACK_HOST_URL:-}
|
97
|
+
REDIS_URL: redis://wxo-server-redis:6379/0
|
98
|
+
entrypoint: >
|
99
|
+
sh -c '
|
100
|
+
if [ ! -z "$$CALLBACK_HOST_URL" ]; then
|
101
|
+
GATEWAY_IP=$$(echo "$$CALLBACK_HOST_URL" | sed "s|http://||" | cut -d: -f1)
|
102
|
+
export CALL_BACK_URL="http://$$GATEWAY_IP:8989"
|
103
|
+
echo "Auto-configured CALL_BACK_URL: $$CALL_BACK_URL"
|
104
|
+
else
|
105
|
+
export CALL_BACK_URL="http://wxo-agent-gateway:8989"
|
106
|
+
echo "Using fallback CALL_BACK_URL: $$CALL_BACK_URL"
|
107
|
+
fi
|
108
|
+
if [ $$# -eq 0 ]; then
|
109
|
+
exec ./conditional_script.sh
|
110
|
+
else
|
111
|
+
exec "$$@"
|
112
|
+
fi
|
113
|
+
'
|
76
114
|
|
77
115
|
ui:
|
78
116
|
image: ${UI_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-chat:${UITAG:-latest}
|
@@ -105,6 +143,7 @@ services:
|
|
105
143
|
STANDALONE: "true"
|
106
144
|
STREAM_TIMEOUT: ${STREAM_TIMEOUT:-120000}
|
107
145
|
WXO_VOICE_URL: http://localhost:9876/v1
|
146
|
+
DPS_CACHE_URL: http://localhost:18083
|
108
147
|
command: "./StartServer.sh"
|
109
148
|
ports:
|
110
149
|
- "3000:4002"
|
@@ -127,13 +166,13 @@ services:
|
|
127
166
|
AGENTS_OPS_RUNTIME_ENDPOINT: https://frontend-server:443
|
128
167
|
DPI_WO_WDU_SERVER_ENDPOINT: https://wxo-doc-processing-service:8080
|
129
168
|
DPI_RAG_SERVER_ENDPOINT: https://wxo-doc-processing-llm-service:8083
|
130
|
-
IBM_DPS_CACHE_SERVICE:
|
169
|
+
IBM_DPS_CACHE_SERVICE: http://wxo-doc-processing-cache:8080
|
131
170
|
DOCPROC_BASE_URL: http://wxo-doc-processing-infra-standalone:9080
|
132
171
|
BUILDER_ASYNC_CALLBACK_ENDPOINT: http://wxo-builder:4025
|
133
172
|
DOCPROC_ENABLED: ${DOCPROC_ENABLED:-false}
|
134
173
|
IS_OBSERVABILITY_FEATURE_ENABLED: "true"
|
135
174
|
ALLOW_INSECURE_TLS: "true"
|
136
|
-
ENABLE_EDIT_PROMPTS: "
|
175
|
+
ENABLE_EDIT_PROMPTS: "true"
|
137
176
|
LANGFLOW_ENABLED: ${LANGFLOW_ENABLED:-false}
|
138
177
|
ENABLE_EMBED_SCRIPT: "true"
|
139
178
|
command: 'npm start'
|
@@ -353,6 +392,10 @@ services:
|
|
353
392
|
ES_HOST: http://elasticsearch:9200
|
354
393
|
ORIGIN_HEADER: "internal"
|
355
394
|
LANGFLOW_ENABLED: ${LANGFLOW_ENABLED:-false}
|
395
|
+
WATSONX_SERVER: WXO
|
396
|
+
EVALUATION_PLATFORM: lite-local
|
397
|
+
AGENTOPS_BACKEND_URL: https://frontend-server:443
|
398
|
+
OBSERVABILITY_POSTGRES_URL: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@wxo-server-db:5432/wxo_observability
|
356
399
|
|
357
400
|
wxo-server-worker:
|
358
401
|
image: ${WORKER_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-server-conversation_controller:${WORKER_TAG:-latest}
|
@@ -453,6 +496,10 @@ services:
|
|
453
496
|
CPD_VERIFY: ${CPD_VERIFY}
|
454
497
|
CALLBACK_HOST_URL: ${CALLBACK_HOST_URL:-http://wxo-server:4321}
|
455
498
|
LANGFLOW_ENABLED: ${LANGFLOW_ENABLED:-false}
|
499
|
+
WATSONX_SERVER: WXO
|
500
|
+
EVALUATION_PLATFORM: lite-local
|
501
|
+
AGENTOPS_BACKEND_URL: https://frontend-server:443
|
502
|
+
OBSERVABILITY_POSTGRES_URL: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@wxo-server-db:5432/wxo_observability
|
456
503
|
|
457
504
|
tools-runtime-manager:
|
458
505
|
image: ${TRM_REGISTRY:-us.icr.io/watson-orchestrate-private}/tools-runtime-manager:${TRM_TAG:-latest}
|
@@ -813,6 +860,7 @@ services:
|
|
813
860
|
AUTHORIZATION_URL: ${AUTHORIZATION_URL}
|
814
861
|
WO_AUTH_TYPE: ${WO_AUTH_TYPE}
|
815
862
|
FLOW_CALLBACK_REQUEST_RETRIES: "1"
|
863
|
+
DOCPROC_CACHE_SERVER_URL: http://wxo-doc-processing-cache:8080
|
816
864
|
healthcheck:
|
817
865
|
test: curl -k http://localhost:9044/readiness --fail
|
818
866
|
interval: 30s
|
@@ -858,13 +906,13 @@ services:
|
|
858
906
|
SERVICE_NAME: wxo-doc-processing-service
|
859
907
|
LOG_LEVEL: info
|
860
908
|
VERIFY_CLIENT_CERT: 0
|
861
|
-
SERVICE_URL: ${SERVICE_URL:-
|
909
|
+
SERVICE_URL: ${SERVICE_URL:-http://wxo-doc-processing-cache:8080}
|
862
910
|
RATE_LIMITING_ENABLED: "false"
|
863
911
|
SHOULD_CACHE_IMAGES: "false"
|
864
912
|
HANDWRITING_ENABLED: "true"
|
865
913
|
WDU_RUNTIME_URL: wdu-runtime:8080
|
866
914
|
WDU_TIMEOUT_SECS: "180"
|
867
|
-
IBM_DPS_CACHE_SERVICE:
|
915
|
+
IBM_DPS_CACHE_SERVICE: http://wxo-doc-processing-cache:8080
|
868
916
|
profiles:
|
869
917
|
- docproc
|
870
918
|
depends_on:
|
@@ -959,6 +1007,8 @@ services:
|
|
959
1007
|
VERIFY_CLIENT_CERT: 1
|
960
1008
|
# S3_USE_SSL: false
|
961
1009
|
# S3_VERIFY_CERT: false
|
1010
|
+
ISTIO_ENABLED: true
|
1011
|
+
IS_ADK_ENV: true
|
962
1012
|
profiles:
|
963
1013
|
- docproc
|
964
1014
|
depends_on:
|
@@ -971,7 +1021,7 @@ services:
|
|
971
1021
|
# volumes:
|
972
1022
|
# - ./docker/wo_doc_processing_rag_base/etc/certs:/etc/certs
|
973
1023
|
healthcheck:
|
974
|
-
test: ["CMD-SHELL", "curl -fk
|
1024
|
+
test: ["CMD-SHELL", "curl -fk http://localhost:8080/ping"]
|
975
1025
|
interval: 30s
|
976
1026
|
timeout: 30s
|
977
1027
|
retries: 10
|
@@ -1030,7 +1080,7 @@ services:
|
|
1030
1080
|
LOG_LEVEL: info
|
1031
1081
|
WATSONX_API_ENDPOINT: ${WATSONX_URL:-https://us-south.ml.cloud.ibm.com}
|
1032
1082
|
WXO_SERVER_BASE_URL : http://wxo-server:4321
|
1033
|
-
IBM_DPS_CACHE_SERVICE: 'wxo-doc-processing-cache:8080'
|
1083
|
+
IBM_DPS_CACHE_SERVICE: 'http://wxo-doc-processing-cache:8080'
|
1034
1084
|
profiles:
|
1035
1085
|
- docproc
|
1036
1086
|
depends_on:
|
@@ -58,41 +58,44 @@ REGISTRY_URL=
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
SERVER_TAG=
|
61
|
+
SERVER_TAG=17-10-2025-8a9aff2
|
62
62
|
SERVER_REGISTRY=
|
63
63
|
|
64
|
-
WORKER_TAG=
|
64
|
+
WORKER_TAG=17-10-2025-8a9aff2
|
65
65
|
WORKER_REGISTRY=
|
66
66
|
|
67
67
|
AI_GATEWAY_TAG=20-08-2025-9ed6d40
|
68
68
|
AI_GATEWAY_REGISTRY=
|
69
69
|
|
70
|
-
AGENT_GATEWAY_TAG=
|
70
|
+
AGENT_GATEWAY_TAG=16-09-2025-115ef29
|
71
71
|
AGENT_GATEWAY_REGISTRY=
|
72
72
|
|
73
73
|
DB_REGISTRY=
|
74
74
|
# If you build multiarch set all three of these to the same, we have a pr against main
|
75
75
|
# to not have this separation, but we can merge it later
|
76
|
-
DBTAG=
|
77
|
-
AMDDBTAG=
|
78
|
-
ARM64DBTAG=
|
76
|
+
DBTAG=17-09-2025-8a9aff2
|
77
|
+
AMDDBTAG=17-09-2025-8a9aff2
|
78
|
+
ARM64DBTAG=17-09-2025-8a9aff2
|
79
79
|
|
80
80
|
UI_REGISTRY=
|
81
|
-
UITAG=
|
81
|
+
UITAG=19-09-2025-188b5fe
|
82
82
|
|
83
83
|
CM_REGISTRY=
|
84
|
-
CM_TAG=
|
84
|
+
CM_TAG=16-09-2025-e33b344
|
85
85
|
|
86
|
-
|
86
|
+
CONNECTIONS_UI_REGISTRY=
|
87
|
+
CONNECTIONS_UI_TAG=15-09-2025-98aa9da
|
88
|
+
|
89
|
+
TRM_TAG=15-09-2025-228f397
|
87
90
|
TRM_REGISTRY=
|
88
91
|
|
89
|
-
TR_TAG=
|
92
|
+
TR_TAG=15-09-2025-228f397
|
90
93
|
TR_REGISTRY=
|
91
94
|
|
92
|
-
BUILDER_TAG=
|
95
|
+
BUILDER_TAG=19-09-2025-4ab5c88
|
93
96
|
BUILDER_REGISTRY=
|
94
97
|
|
95
|
-
FLOW_RUNTIME_TAG=15-09-2025-
|
98
|
+
FLOW_RUNTIME_TAG=15-09-2025-c208dc5
|
96
99
|
FLOW_RUMTIME_REGISTRY=
|
97
100
|
|
98
101
|
|
@@ -118,10 +121,10 @@ LANGFLOW_IMAGE=
|
|
118
121
|
WDU_TAG=2.7.0
|
119
122
|
WDU_REGISTRY=
|
120
123
|
|
121
|
-
DOCPROC_DPS_TAG=
|
122
|
-
DOCPROC_LLMSERVICE_TAG=
|
123
|
-
DOCPROC_CACHE_TAG=
|
124
|
-
DOCPROC_DPI_TAG=
|
124
|
+
DOCPROC_DPS_TAG=20250910-165658-290-c566031
|
125
|
+
DOCPROC_LLMSERVICE_TAG=20250915-main-139-7a36ad3
|
126
|
+
DOCPROC_CACHE_TAG=20250916-master-86-454157f
|
127
|
+
DOCPROC_DPI_TAG=20250910-214413-288-a348dfd9
|
125
128
|
DOCPROC_REGISTRY=
|
126
129
|
|
127
130
|
# END -- IMAGE REGISTRIES AND TAGS
|
@@ -8,6 +8,8 @@ import logging
|
|
8
8
|
import inspect
|
9
9
|
from typing import Callable, Optional, Sequence
|
10
10
|
from pydantic import BaseModel
|
11
|
+
|
12
|
+
from ...agent_builder.models.types import ListVirtualModel
|
11
13
|
from ..types import extract_node_spec, UserNodeSpec, FlowSpec
|
12
14
|
|
13
15
|
from .flow import FlowFactory, Flow
|
@@ -34,7 +36,9 @@ def flow(*args,
|
|
34
36
|
input_schema: type[BaseModel] | None = None,
|
35
37
|
output_schema: type[BaseModel] | None = None,
|
36
38
|
initiators: Sequence[str] = (),
|
37
|
-
schedulable: bool = False
|
39
|
+
schedulable: bool = False,
|
40
|
+
llm_model: str|ListVirtualModel|None=None,
|
41
|
+
agent_conversation_memory_turns_limit: int|None=None):
|
38
42
|
"""Decorator to mark a function as a flow model builder."""
|
39
43
|
|
40
44
|
def decorator(func: Callable):
|
@@ -60,7 +64,9 @@ def flow(*args,
|
|
60
64
|
input_schema = input_schema,
|
61
65
|
output_schema = output_schema,
|
62
66
|
initiators = initiators,
|
63
|
-
schedulable = schedulable
|
67
|
+
schedulable = schedulable,
|
68
|
+
llm_model = llm_model,
|
69
|
+
agent_conversation_memory_turns_limit = agent_conversation_memory_turns_limit)
|
64
70
|
|
65
71
|
# logger.info("Creating flow model: %s", a_model.spec.name)
|
66
72
|
|
@@ -21,6 +21,7 @@ from typing_extensions import Self
|
|
21
21
|
from pydantic import BaseModel, Field, SerializeAsAny, create_model, TypeAdapter
|
22
22
|
import yaml
|
23
23
|
from ibm_watsonx_orchestrate.agent_builder.tools.python_tool import PythonTool
|
24
|
+
from ibm_watsonx_orchestrate.agent_builder.models.types import ListVirtualModel
|
24
25
|
from ibm_watsonx_orchestrate.client.tools.tool_client import ToolClient
|
25
26
|
from ibm_watsonx_orchestrate.client.tools.tempus_client import TempusClient
|
26
27
|
from ibm_watsonx_orchestrate.client.utils import instantiate_client
|
@@ -84,6 +85,21 @@ class Flow(Node):
|
|
84
85
|
# get Tool Client
|
85
86
|
self._tool_client = instantiate_client(ToolClient)
|
86
87
|
|
88
|
+
# set llm_model to use for the flow if any
|
89
|
+
llm_model = kwargs.get("llm_model")
|
90
|
+
if llm_model:
|
91
|
+
if isinstance(llm_model, ListVirtualModel):
|
92
|
+
self.metadata["llm_model"] = llm_model.name
|
93
|
+
elif isinstance(llm_model, str):
|
94
|
+
self.metadata["llm_model"] = llm_model
|
95
|
+
else:
|
96
|
+
raise AssertionError(f"flow llm_model should be either a str or ListVirtualModel")
|
97
|
+
|
98
|
+
# set agent_conversation_memory_turns_limit for the flow if any
|
99
|
+
agent_conversation_memory_turns_limit = kwargs.get("agent_conversation_memory_turns_limit")
|
100
|
+
if agent_conversation_memory_turns_limit:
|
101
|
+
self.metadata["agent_conversation_memory_turns_limit"] = agent_conversation_memory_turns_limit
|
102
|
+
|
87
103
|
def _find_topmost_flow(self) -> Self:
|
88
104
|
if self.parent:
|
89
105
|
return self.parent._find_topmost_flow()
|
@@ -519,7 +535,9 @@ class Flow(Node):
|
|
519
535
|
fields: type[BaseModel]| None = None,
|
520
536
|
description: str | None = None,
|
521
537
|
input_map: DataMap = None,
|
522
|
-
enable_hw: bool = False
|
538
|
+
enable_hw: bool = False,
|
539
|
+
min_confidence: float = 0, # Setting a small value because htil is not supported for pro code.
|
540
|
+
review_fields: List[str] = []) -> tuple[DocExtNode, type[BaseModel]]:
|
523
541
|
|
524
542
|
if name is None :
|
525
543
|
raise ValueError("name must be provided.")
|
@@ -544,7 +562,9 @@ class Flow(Node):
|
|
544
562
|
output_schema_object = output_schema_obj,
|
545
563
|
config=doc_ext_config,
|
546
564
|
version=version,
|
547
|
-
enable_hw=enable_hw
|
565
|
+
enable_hw=enable_hw,
|
566
|
+
min_confidence=min_confidence,
|
567
|
+
review_fields=review_fields
|
548
568
|
)
|
549
569
|
node = DocExtNode(spec=task_spec)
|
550
570
|
|
@@ -609,7 +629,8 @@ class Flow(Node):
|
|
609
629
|
input_map: DataMap = None,
|
610
630
|
document_structure: bool = False,
|
611
631
|
kvp_schemas: list[DocProcKVPSchema] = None,
|
612
|
-
enable_hw: bool = False
|
632
|
+
enable_hw: bool = False,
|
633
|
+
kvp_model_name: str | None = None) -> DocProcNode:
|
613
634
|
|
614
635
|
if name is None :
|
615
636
|
raise ValueError("name must be provided.")
|
@@ -635,7 +656,8 @@ class Flow(Node):
|
|
635
656
|
document_structure=document_structure,
|
636
657
|
plain_text_reading_order=plain_text_reading_order,
|
637
658
|
enable_hw=enable_hw,
|
638
|
-
kvp_schemas=kvp_schemas
|
659
|
+
kvp_schemas=kvp_schemas,
|
660
|
+
kvp_model_name=kvp_model_name
|
639
661
|
)
|
640
662
|
|
641
663
|
node = DocProcNode(spec=task_spec)
|
@@ -1201,7 +1223,7 @@ class CompiledFlow(BaseModel):
|
|
1201
1223
|
dumped = self.flow.to_json()
|
1202
1224
|
with open(file, 'w') as f:
|
1203
1225
|
if file.endswith(".yaml") or file.endswith(".yml"):
|
1204
|
-
yaml.dump(dumped, f)
|
1226
|
+
yaml.dump(dumped, f, allow_unicode=True)
|
1205
1227
|
elif file.endswith(".json"):
|
1206
1228
|
json.dump(dumped, f, indent=2)
|
1207
1229
|
else:
|
@@ -1223,7 +1245,9 @@ class FlowFactory(BaseModel):
|
|
1223
1245
|
initiators: Sequence[str]|None=None,
|
1224
1246
|
input_schema: type[BaseModel]|None=None,
|
1225
1247
|
output_schema: type[BaseModel]|None=None,
|
1226
|
-
schedulable: bool=False
|
1248
|
+
schedulable: bool=False,
|
1249
|
+
llm_model: str|ListVirtualModel|None=None,
|
1250
|
+
agent_conversation_memory_turns_limit: int|None = None) -> Flow:
|
1227
1251
|
if isinstance(name, Callable):
|
1228
1252
|
flow_spec = getattr(name, "__flow_spec__", None)
|
1229
1253
|
if not flow_spec:
|
@@ -1248,7 +1272,7 @@ class FlowFactory(BaseModel):
|
|
1248
1272
|
schedulable=schedulable,
|
1249
1273
|
)
|
1250
1274
|
|
1251
|
-
return Flow(spec = flow_spec)
|
1275
|
+
return Flow(spec = flow_spec, llm_model=llm_model, agent_conversation_memory_turns_limit=agent_conversation_memory_turns_limit)
|
1252
1276
|
|
1253
1277
|
|
1254
1278
|
class FlowControl(Node):
|
@@ -23,7 +23,7 @@ class Node(BaseModel):
|
|
23
23
|
exclude_unset=True, exclude_none=True, by_alias=True)
|
24
24
|
with open(file, 'w', encoding="utf-8") as f:
|
25
25
|
if file.endswith('.yaml') or file.endswith('.yml'):
|
26
|
-
yaml.dump(dumped, f)
|
26
|
+
yaml.dump(dumped, f, allow_unicode=True)
|
27
27
|
elif file.endswith('.json'):
|
28
28
|
json.dump(dumped, f, indent=2)
|
29
29
|
else:
|
@@ -271,6 +271,8 @@ class DocClassifierSpec(DocProcCommonNodeSpec):
|
|
271
271
|
class DocExtSpec(DocProcCommonNodeSpec):
|
272
272
|
version : str = Field(description="A version of the spec")
|
273
273
|
config : DocExtConfig
|
274
|
+
min_confidence: float = Field(description="The minimal confidence acceptable for an extracted field value", default=0.0,le=1.0, ge=0.0 ,title="Minimum Confidence")
|
275
|
+
review_fields: List[str] = Field(description="The fields that require user to review", default=[])
|
274
276
|
|
275
277
|
def __init__(self, **data):
|
276
278
|
super().__init__(**data)
|
@@ -281,6 +283,8 @@ class DocExtSpec(DocProcCommonNodeSpec):
|
|
281
283
|
model_spec["version"] = self.version
|
282
284
|
model_spec["config"] = self.config.model_dump()
|
283
285
|
model_spec["task"] = DocProcTask.custom_field_extraction
|
286
|
+
model_spec["min_confidence"] = self.min_confidence
|
287
|
+
model_spec["review_fields"] = self.review_fields
|
284
288
|
return model_spec
|
285
289
|
|
286
290
|
class DocProcField(BaseModel):
|
@@ -337,6 +341,11 @@ class DocProcSpec(DocProcCommonNodeSpec):
|
|
337
341
|
title='KVP schemas',
|
338
342
|
description="Optional list of key-value pair schemas to use for extraction.",
|
339
343
|
default=None)
|
344
|
+
kvp_model_name: str | None = Field(
|
345
|
+
title='KVP Model Name',
|
346
|
+
description="The LLM model to be used for key-value pair extraction",
|
347
|
+
default=None
|
348
|
+
)
|
340
349
|
plain_text_reading_order : PlainTextReadingOrder = Field(default=PlainTextReadingOrder.block_structure)
|
341
350
|
document_structure: bool = Field(default=False,description="Requests the entire document structure computed by WDU to be returned")
|
342
351
|
|
@@ -352,6 +361,8 @@ class DocProcSpec(DocProcCommonNodeSpec):
|
|
352
361
|
model_spec["plain_text_reading_order"] = self.plain_text_reading_order
|
353
362
|
if self.kvp_schemas is not None:
|
354
363
|
model_spec["kvp_schemas"] = self.kvp_schemas
|
364
|
+
if self.kvp_model_name is not None:
|
365
|
+
model_spec["kvp_model_name"] = self.kvp_model_name
|
355
366
|
return model_spec
|
356
367
|
|
357
368
|
class StartNodeSpec(NodeSpec):
|
@@ -905,8 +916,7 @@ class UserFlowSpec(FlowSpec):
|
|
905
916
|
class ForeachPolicy(Enum):
|
906
917
|
|
907
918
|
SEQUENTIAL = 1
|
908
|
-
|
909
|
-
# PARALLEL = 2
|
919
|
+
PARALLEL = 2
|
910
920
|
|
911
921
|
class ForeachSpec(FlowSpec):
|
912
922
|
|
@@ -923,7 +933,7 @@ class ForeachSpec(FlowSpec):
|
|
923
933
|
if isinstance(self.item_schema, JsonSchemaObject):
|
924
934
|
my_dict["item_schema"] = _to_json_from_json_schema(self.item_schema)
|
925
935
|
else:
|
926
|
-
my_dict["item_schema"] = self.item_schema.model_dump(exclude_defaults=True, exclude_none=True, exclude_unset=True)
|
936
|
+
my_dict["item_schema"] = self.item_schema.model_dump(exclude_defaults=True, exclude_none=True, exclude_unset=True, by_alias=True)
|
927
937
|
|
928
938
|
my_dict["foreach_policy"] = self.foreach_policy.name
|
929
939
|
return my_dict
|
@@ -1312,6 +1322,11 @@ class DocProcInput(DocumentProcessingCommonInput):
|
|
1312
1322
|
title='KVP schemas',
|
1313
1323
|
description="Optional list of key-value pair schemas to use for extraction.",
|
1314
1324
|
default=None)
|
1325
|
+
kvp_model_name: str | None = Field(
|
1326
|
+
title='KVP Model Name',
|
1327
|
+
description="The LLM model to be used for key-value pair extraction",
|
1328
|
+
default=None
|
1329
|
+
)
|
1315
1330
|
|
1316
1331
|
class TextExtractionResponse(BaseModel):
|
1317
1332
|
'''
|
{ibm_watsonx_orchestrate-1.12.0b0.dist-info → ibm_watsonx_orchestrate-1.12.0b1.dist-info}/RECORD
RENAMED
@@ -1,10 +1,10 @@
|
|
1
|
-
ibm_watsonx_orchestrate/__init__.py,sha256=
|
1
|
+
ibm_watsonx_orchestrate/__init__.py,sha256=rt1KcSzKVydKqrDL4jMLsj3SqC4D4KxFkrjnHfXBsmU,427
|
2
2
|
ibm_watsonx_orchestrate/agent_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
ibm_watsonx_orchestrate/agent_builder/agents/__init__.py,sha256=lmZwaiWXD4Ea19nrMwZXaqCxFMG29xNS8vUoZtK3yI4,392
|
4
4
|
ibm_watsonx_orchestrate/agent_builder/agents/agent.py,sha256=W0uya81fQPrYZFaO_tlsxBL56Bfpw0xrqdxQJhAZ6XI,983
|
5
5
|
ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py,sha256=NnWThJ2N8HUOD9IDL6ZhtTKyLMHSacJCpxDNityRmgY,1051
|
6
6
|
ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py,sha256=7HzEFjd7JiiRTgvA1RVA3M0-Mr42FTQnOtGMII5ufk0,1045
|
7
|
-
ibm_watsonx_orchestrate/agent_builder/agents/types.py,sha256=
|
7
|
+
ibm_watsonx_orchestrate/agent_builder/agents/types.py,sha256=1DBafY3-TF_wvmmlUYlFt-XhnDQLxWhDuG_q_RZvN6g,14553
|
8
8
|
ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py,sha256=5TXa8UqKUAlDo4hTbE5S9OPEkQhxXhPJHJC4pEe8U00,92
|
9
9
|
ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py,sha256=jNVF_jgz1Dmt7-RxAceAS0XWXk_fx9h3sS_fGrvZT28,941
|
10
10
|
ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py,sha256=U76wZrblSXx4qv7phcPYs3l8SiFzwZ5cJ74u8Y2iYhU,608
|
@@ -17,14 +17,14 @@ ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py,sha256=4gvzIwSxO9
|
|
17
17
|
ibm_watsonx_orchestrate/agent_builder/model_policies/__init__.py,sha256=alJEjlneWlGpadmvOVlDjq5wulytKOmpkq3849fhKNc,131
|
18
18
|
ibm_watsonx_orchestrate/agent_builder/model_policies/types.py,sha256=a6f9HP2OlZIe36k_PDRmFtefz2Ms2KBpzJ_jz8ggYbk,882
|
19
19
|
ibm_watsonx_orchestrate/agent_builder/models/__init__.py,sha256=R5nTbyMBzahONdp5-bJFp-rbtTDnp2184k6doZqt67w,31
|
20
|
-
ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=
|
21
|
-
ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py,sha256=
|
20
|
+
ibm_watsonx_orchestrate/agent_builder/models/types.py,sha256=NHcq5mRV4pfNHql8E8fghC9F8IbOTQ3sKqFQDxFQWKo,9828
|
21
|
+
ibm_watsonx_orchestrate/agent_builder/toolkits/base_toolkit.py,sha256=uJASxkwgYpnXRfzMTeQo_I9fPewAldSDyFFmZzlTFlM,1074
|
22
22
|
ibm_watsonx_orchestrate/agent_builder/toolkits/types.py,sha256=RGkS01_fqbs-7YFFZbuxHv64AHdaav2jm0RDKsVMb4c,986
|
23
23
|
ibm_watsonx_orchestrate/agent_builder/tools/__init__.py,sha256=R07j4zERCBX22ILsGBl3qRw0poaVSONPnMZ_69bAFDw,519
|
24
|
-
ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py,sha256=
|
24
|
+
ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py,sha256=qiVHqLN-S9AuJlsvVaV_kNN5oNi4kk6177Hi9KpEdaI,1240
|
25
25
|
ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py,sha256=DJWYVmIjw1O_cbzPpwU0a_vIZGvo0mj8UsjW9zkKMlA,2589
|
26
26
|
ibm_watsonx_orchestrate/agent_builder/tools/langflow_tool.py,sha256=kB_wjGPXkkldbwdeD6dZFGicIMQ4REMH_ADu6l6Xb2c,4229
|
27
|
-
ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py,sha256=
|
27
|
+
ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py,sha256=haAN5t4YMGrVM788UdMxfMWUctOe6_3szGxsRF3KPr8,19730
|
28
28
|
ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py,sha256=cdgu-v1oRR9RUbMNKEklOzO1z3nNZpDZPSMwnJEvuIY,12533
|
29
29
|
ibm_watsonx_orchestrate/agent_builder/tools/types.py,sha256=8Esn77LZSBNTiKOpvRXF35LUFnfydyvZ-oxAQJyt1wE,8931
|
30
30
|
ibm_watsonx_orchestrate/agent_builder/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -36,7 +36,7 @@ ibm_watsonx_orchestrate/cli/init_helper.py,sha256=qxnKdFcPtGsV_6RqP_IuLshRxgB004
|
|
36
36
|
ibm_watsonx_orchestrate/cli/main.py,sha256=5AuoVVDHzgNZ6Y2ZR4bSF1cs7AhQRyd8n7S41o8lK4w,3618
|
37
37
|
ibm_watsonx_orchestrate/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
38
|
ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py,sha256=mWVojmtxslXL-eGMs7NUNBV_DudmQKeNnTaE9V9jjfU,9832
|
39
|
-
ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=
|
39
|
+
ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py,sha256=WYuDR6aCbOsDxkFH6v0GPtXw6ButkDXD-abdnGi8kMM,66303
|
40
40
|
ibm_watsonx_orchestrate/cli/commands/channels/channels_command.py,sha256=fVIFhPUTPdxsxIE10nWL-W5wvBR-BS8V8D6r__J8R98,822
|
41
41
|
ibm_watsonx_orchestrate/cli/commands/channels/channels_controller.py,sha256=WjQxwJujvo28SsWgfJSXIpkcgniKcskJ2arL4MOz0Ys,455
|
42
42
|
ibm_watsonx_orchestrate/cli/commands/channels/types.py,sha256=hMFvWPr7tAmDrhBqtzfkCsrubX3lsU6lapTSOFsUbHM,475
|
@@ -44,7 +44,7 @@ ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_command.p
|
|
44
44
|
ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py,sha256=CGfmKsCBX4E3HMZ8C0IXD-DHQNwe96V1Y_BxUZM2us0,8557
|
45
45
|
ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py,sha256=Q9vg2Z5Fsunu6GQFY_TIsNRhUCa0SSGSPnK4jxSGK34,1581
|
46
46
|
ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py,sha256=yHT6hBaoA42iz_XGpbqTYIOc5oDFVBR1dVaV3XZnY3w,12948
|
47
|
-
ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=
|
47
|
+
ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py,sha256=Am-yoP8y_cqslLZOiWuMHJqBK0b_fmOUxn1Z9DkZrAA,30764
|
48
48
|
ibm_watsonx_orchestrate/cli/commands/copilot/copilot_command.py,sha256=IxasApIyQYWRMKPXKa38ZPVkUvOc4chggSmSGjgQGXc,2345
|
49
49
|
ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py,sha256=SC2Tjq6r-tHIiyPBMajsxdMIY3BQpRWpkYGZS2XbJyU,18981
|
50
50
|
ibm_watsonx_orchestrate/cli/commands/copilot/copilot_server_controller.py,sha256=9MXS5uE3esKp3IYILVty7COFcr9iJ90axkAqPVaJ1NE,3874
|
@@ -56,15 +56,15 @@ ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py,sha25
|
|
56
56
|
ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py,sha256=hOzRcGVoqq7dTc4bSregKxH-kYbrVqaFdhBLawqnRNo,2668
|
57
57
|
ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py,sha256=d9RSBy2S2nn8vWrghovGb1owe7Zu8LywOm0nIdzlXiU,11567
|
58
58
|
ibm_watsonx_orchestrate/cli/commands/login/login_command.py,sha256=xArMiojoozg7Exn6HTpbTcjDO2idZRA-y0WV-_Ic1Sk,651
|
59
|
-
ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=
|
59
|
+
ibm_watsonx_orchestrate/cli/commands/models/model_provider_mapper.py,sha256=ldAMx0Vz5cf_ngADzdMrku7twmVmIT4EQ43YrPzgSKk,8855
|
60
60
|
ibm_watsonx_orchestrate/cli/commands/models/models_command.py,sha256=PW-PIM5Nq0qdCopWjANGBWEuEoA3NLTFThYrN8ggGCI,6425
|
61
61
|
ibm_watsonx_orchestrate/cli/commands/models/models_controller.py,sha256=wcy16LPZy3n1VLPqAusyfmw0ubpANDgTKvQSz9Ng36Y,18450
|
62
|
-
ibm_watsonx_orchestrate/cli/commands/partners/partners_command.py,sha256=
|
62
|
+
ibm_watsonx_orchestrate/cli/commands/partners/partners_command.py,sha256=YpTlKKinQw1QdM4yXYjSrMtoAcwc1b9GoO6Wv1NmgKc,385
|
63
63
|
ibm_watsonx_orchestrate/cli/commands/partners/partners_controller.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
64
64
|
ibm_watsonx_orchestrate/cli/commands/partners/offering/partners_offering_command.py,sha256=X6u5zGwKYY1Uc2szaVHCIyMlFJBzp8o8JgVZUxcZPd8,1727
|
65
65
|
ibm_watsonx_orchestrate/cli/commands/partners/offering/partners_offering_controller.py,sha256=RX0DDdpZ07mEtURF_-4uCY4lgCidbYnK4x1Y62bqvLw,18256
|
66
66
|
ibm_watsonx_orchestrate/cli/commands/partners/offering/types.py,sha256=y69q4w9Kz9_n8KmvGhZa_SNyTdm_qjwhbRSlm02qPio,3352
|
67
|
-
ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=
|
67
|
+
ibm_watsonx_orchestrate/cli/commands/server/server_command.py,sha256=cMjaAXEPMN-OkenqIbckPisPV093rabOxkLKmNiyxTc,28956
|
68
68
|
ibm_watsonx_orchestrate/cli/commands/server/types.py,sha256=DGLopPbLFf5yH5-hzsFf5Uaw158QHwkTAcwydbUmZ3Q,4416
|
69
69
|
ibm_watsonx_orchestrate/cli/commands/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
70
70
|
ibm_watsonx_orchestrate/cli/commands/settings/settings_command.py,sha256=CzXRkd-97jXyS6LtaaNtMah-aZu0919dYl-mDwzGThc,344
|
@@ -72,7 +72,7 @@ ibm_watsonx_orchestrate/cli/commands/settings/observability/__init__.py,sha256=4
|
|
72
72
|
ibm_watsonx_orchestrate/cli/commands/settings/observability/observability_command.py,sha256=TAkpKwoqocsShSgEeR6LzHCzJx16VDQ6cYsbpljxeqI,372
|
73
73
|
ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
74
74
|
ibm_watsonx_orchestrate/cli/commands/settings/observability/langfuse/langfuse_command.py,sha256=Wa0L8E44EdxH9LdOvmnluLk_ApJVfTLauNOC1kV4W8k,6515
|
75
|
-
ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py,sha256=
|
75
|
+
ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py,sha256=dgmfI3PA04By3W526BEOZp0jJE5eVoxEUMbPG0JxUlE,5653
|
76
76
|
ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py,sha256=lo9xahKQiPhm4xh97O_twkzLO0GhXDzAi1rZT0ybQpA,13027
|
77
77
|
ibm_watsonx_orchestrate/cli/commands/tools/tools_command.py,sha256=1RXndNL8Ztl6YEVl4rW6sg0m0hE9d0RhT2Oac45ui2M,3945
|
78
78
|
ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py,sha256=Q5ZqS5j7FXcVdnuQXcOUTACPJchBEBxrYWh9NM0RLaQ,47593
|
@@ -107,8 +107,8 @@ ibm_watsonx_orchestrate/client/toolkit/toolkit_client.py,sha256=TLFNS39EeBD_t4Y-
|
|
107
107
|
ibm_watsonx_orchestrate/client/tools/tempus_client.py,sha256=iD7Hkzn_LdnFivAzGSVKsuuoQpNCFSg2z6qGmQXCDoM,1954
|
108
108
|
ibm_watsonx_orchestrate/client/tools/tool_client.py,sha256=kYwQp-ym9dYQDOFSTnXNyeh8wzl39LpBJqHSNT9EKT0,2113
|
109
109
|
ibm_watsonx_orchestrate/client/voice_configurations/voice_configurations_client.py,sha256=M5xIPLiVNpP-zxQw8CTNT9AiBjeXXmJiNaE142e2A3E,2682
|
110
|
-
ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=
|
111
|
-
ibm_watsonx_orchestrate/docker/default.env,sha256=
|
110
|
+
ibm_watsonx_orchestrate/docker/compose-lite.yml,sha256=niF_ir68D_YdjrZWGUOy8eNLV-K5PX_xVWhdZEC2Crk,48041
|
111
|
+
ibm_watsonx_orchestrate/docker/default.env,sha256=n5dKgNpnKpA-bsJqlrg17K7UqutFGk1bBvtyReCaZpw,6372
|
112
112
|
ibm_watsonx_orchestrate/docker/proxy-config-single.yaml,sha256=WEbK4ENFuTCYhzRu_QblWp1_GMARgZnx5vReQafkIG8,308
|
113
113
|
ibm_watsonx_orchestrate/docker/start-up.sh,sha256=LTtwHp0AidVgjohis2LXGvZnkFQStOiUAxgGABOyeUI,1811
|
114
114
|
ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0-py3-none-any.whl,sha256=Hi3-owh5OM0Jz2ihX9nLoojnr7Ky1TV-GelyqLcewLE,2047417
|
@@ -116,14 +116,14 @@ ibm_watsonx_orchestrate/docker/sdk/ibm_watsonx_orchestrate-0.6.0.tar.gz,sha256=e
|
|
116
116
|
ibm_watsonx_orchestrate/docker/tempus/common-config.yaml,sha256=Zo3F36F5DV4VO_vUg1RG-r4WhcukVh79J2fXhGl6j0A,22
|
117
117
|
ibm_watsonx_orchestrate/flow_builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
118
|
ibm_watsonx_orchestrate/flow_builder/data_map.py,sha256=LinePFgb5mBnrvNmPkFe3rq5oYJZSjcgmaEGpE6dVwc,586
|
119
|
-
ibm_watsonx_orchestrate/flow_builder/node.py,sha256=
|
120
|
-
ibm_watsonx_orchestrate/flow_builder/types.py,sha256=
|
119
|
+
ibm_watsonx_orchestrate/flow_builder/node.py,sha256=ON1A3bhNVfB4Bxns6eUmL2Z1JPNi4bv21AjAE3m0ApU,9960
|
120
|
+
ibm_watsonx_orchestrate/flow_builder/types.py,sha256=Gb8YoNCF7i9Fph2999EO9ERikv0kANitTCLEZp732Es,70004
|
121
121
|
ibm_watsonx_orchestrate/flow_builder/utils.py,sha256=8q1jr5i_TzoJpoQxmLiO0g5Uv03BLbTUaRfw8_0VWIY,11931
|
122
122
|
ibm_watsonx_orchestrate/flow_builder/flows/__init__.py,sha256=iRYV0_eXgBBGhuNnvg-mUyPUyCIw5BiallPOp27bzYM,1083
|
123
123
|
ibm_watsonx_orchestrate/flow_builder/flows/constants.py,sha256=-TGneZyjA4YiAtJJK7OmmjDHYQC4mw2e98MPAZqiB50,324
|
124
|
-
ibm_watsonx_orchestrate/flow_builder/flows/decorators.py,sha256=
|
124
|
+
ibm_watsonx_orchestrate/flow_builder/flows/decorators.py,sha256=uNoWIwFTfLQ134SoJQqPvIpZ14LuLFNsUVAxgBRqBBA,3129
|
125
125
|
ibm_watsonx_orchestrate/flow_builder/flows/events.py,sha256=VyaBm0sADwr15LWfKbcBQS1M80NKqzYDj3UlW3OpOf4,2984
|
126
|
-
ibm_watsonx_orchestrate/flow_builder/flows/flow.py,sha256=
|
126
|
+
ibm_watsonx_orchestrate/flow_builder/flows/flow.py,sha256=9n4KMi4YNAua-qGQIjn3jPi0IqnmBEDT15C-PaU81ug,66373
|
127
127
|
ibm_watsonx_orchestrate/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
128
128
|
ibm_watsonx_orchestrate/run/connections.py,sha256=9twXkNeUx83fP_qYUbJRtumE-wzPPNN2v-IY_8hGndM,1820
|
129
129
|
ibm_watsonx_orchestrate/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -134,8 +134,8 @@ ibm_watsonx_orchestrate/utils/utils.py,sha256=FUSIig8owxN0p9xTpWiTG-VIQKky4cwO52
|
|
134
134
|
ibm_watsonx_orchestrate/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
135
135
|
ibm_watsonx_orchestrate/utils/logging/logger.py,sha256=FzeGnidXAjC7yHrvIaj4KZPeaBBSCniZFlwgr5yV3oA,1037
|
136
136
|
ibm_watsonx_orchestrate/utils/logging/logging.yaml,sha256=9_TKfuFr1barnOKP0fZT5D6MhddiwsXVTFjtRbcOO5w,314
|
137
|
-
ibm_watsonx_orchestrate-1.12.
|
138
|
-
ibm_watsonx_orchestrate-1.12.
|
139
|
-
ibm_watsonx_orchestrate-1.12.
|
140
|
-
ibm_watsonx_orchestrate-1.12.
|
141
|
-
ibm_watsonx_orchestrate-1.12.
|
137
|
+
ibm_watsonx_orchestrate-1.12.0b1.dist-info/METADATA,sha256=HdxUlECeuTZ6ItU5o4SZPuje-s2Rw1GPiokHl8iOnW0,1363
|
138
|
+
ibm_watsonx_orchestrate-1.12.0b1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
139
|
+
ibm_watsonx_orchestrate-1.12.0b1.dist-info/entry_points.txt,sha256=SfIT02-Jen5e99OcLhzbcM9Bdyf8SGVOCtnSplgZdQI,69
|
140
|
+
ibm_watsonx_orchestrate-1.12.0b1.dist-info/licenses/LICENSE,sha256=Shgxx7hTdCOkiVRmfGgp_1ISISrwQD7m2f0y8Hsapl4,1083
|
141
|
+
ibm_watsonx_orchestrate-1.12.0b1.dist-info/RECORD,,
|
{ibm_watsonx_orchestrate-1.12.0b0.dist-info → ibm_watsonx_orchestrate-1.12.0b1.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|