ibm-watsonx-orchestrate 1.6.3__py3-none-any.whl → 1.6.4__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 +2 -1
- ibm_watsonx_orchestrate/agent_builder/agents/agent.py +3 -3
- ibm_watsonx_orchestrate/agent_builder/agents/assistant_agent.py +3 -2
- ibm_watsonx_orchestrate/agent_builder/agents/external_agent.py +3 -2
- ibm_watsonx_orchestrate/agent_builder/agents/types.py +38 -9
- ibm_watsonx_orchestrate/agent_builder/connections/connections.py +4 -3
- ibm_watsonx_orchestrate/agent_builder/connections/types.py +14 -2
- ibm_watsonx_orchestrate/agent_builder/knowledge_bases/knowledge_base_requests.py +1 -22
- ibm_watsonx_orchestrate/agent_builder/knowledge_bases/types.py +1 -17
- ibm_watsonx_orchestrate/agent_builder/tools/base_tool.py +2 -1
- ibm_watsonx_orchestrate/agent_builder/tools/openapi_tool.py +75 -24
- ibm_watsonx_orchestrate/agent_builder/tools/python_tool.py +136 -92
- ibm_watsonx_orchestrate/agent_builder/tools/types.py +17 -11
- ibm_watsonx_orchestrate/cli/commands/agents/agents_command.py +7 -7
- ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +7 -6
- ibm_watsonx_orchestrate/cli/commands/channels/types.py +3 -2
- ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +1 -2
- ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +14 -6
- ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +6 -8
- ibm_watsonx_orchestrate/cli/commands/copilot/copilot_command.py +65 -0
- ibm_watsonx_orchestrate/cli/commands/copilot/copilot_controller.py +368 -0
- ibm_watsonx_orchestrate/cli/commands/copilot/copilot_server_controller.py +170 -0
- ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +5 -5
- ibm_watsonx_orchestrate/cli/commands/environment/types.py +2 -0
- ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +102 -37
- ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +20 -2
- ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_command.py +0 -18
- ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +36 -20
- ibm_watsonx_orchestrate/cli/commands/models/models_command.py +1 -1
- ibm_watsonx_orchestrate/cli/commands/server/server_command.py +94 -36
- ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_command.py +1 -1
- ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +11 -4
- ibm_watsonx_orchestrate/cli/config.py +3 -3
- ibm_watsonx_orchestrate/cli/init_helper.py +10 -1
- ibm_watsonx_orchestrate/cli/main.py +5 -0
- ibm_watsonx_orchestrate/client/base_api_client.py +12 -0
- ibm_watsonx_orchestrate/client/copilot/cpe/copilot_cpe_client.py +67 -0
- ibm_watsonx_orchestrate/client/knowledge_bases/knowledge_base_client.py +1 -1
- ibm_watsonx_orchestrate/client/local_service_instance.py +3 -1
- ibm_watsonx_orchestrate/client/service_instance.py +33 -7
- ibm_watsonx_orchestrate/client/utils.py +15 -13
- ibm_watsonx_orchestrate/docker/compose-lite.yml +198 -6
- ibm_watsonx_orchestrate/docker/default.env +36 -12
- ibm_watsonx_orchestrate/flow_builder/flows/__init__.py +9 -4
- ibm_watsonx_orchestrate/flow_builder/flows/decorators.py +4 -2
- ibm_watsonx_orchestrate/flow_builder/flows/events.py +10 -9
- ibm_watsonx_orchestrate/flow_builder/flows/flow.py +131 -20
- ibm_watsonx_orchestrate/flow_builder/node.py +18 -1
- ibm_watsonx_orchestrate/flow_builder/types.py +271 -16
- ibm_watsonx_orchestrate/flow_builder/utils.py +120 -6
- ibm_watsonx_orchestrate/utils/exceptions.py +23 -0
- {ibm_watsonx_orchestrate-1.6.3.dist-info → ibm_watsonx_orchestrate-1.6.4.dist-info}/METADATA +3 -7
- {ibm_watsonx_orchestrate-1.6.3.dist-info → ibm_watsonx_orchestrate-1.6.4.dist-info}/RECORD +56 -53
- ibm_watsonx_orchestrate/agent_builder/utils/pydantic_utils.py +0 -149
- ibm_watsonx_orchestrate/flow_builder/resources/flow_status.openapi.yml +0 -66
- {ibm_watsonx_orchestrate-1.6.3.dist-info → ibm_watsonx_orchestrate-1.6.4.dist-info}/WHEEL +0 -0
- {ibm_watsonx_orchestrate-1.6.3.dist-info → ibm_watsonx_orchestrate-1.6.4.dist-info}/entry_points.txt +0 -0
- {ibm_watsonx_orchestrate-1.6.3.dist-info → ibm_watsonx_orchestrate-1.6.4.dist-info}/licenses/LICENSE +0 -0
@@ -28,7 +28,6 @@ logger = logging.getLogger(__name__)
|
|
28
28
|
LOCK = Lock()
|
29
29
|
T = TypeVar("T", bound=BaseAPIClient)
|
30
30
|
|
31
|
-
|
32
31
|
def get_current_env_url() -> str:
|
33
32
|
cfg = Config()
|
34
33
|
active_env = cfg.read(CONTEXT_SECTION_HEADER, CONTEXT_ACTIVE_ENV_OPT)
|
@@ -55,7 +54,7 @@ def is_local_dev(url: str | None = None) -> bool:
|
|
55
54
|
def is_ga_platform(url: str | None = None) -> bool:
|
56
55
|
if url is None:
|
57
56
|
url = get_current_env_url()
|
58
|
-
|
57
|
+
|
59
58
|
if url.__contains__("orchestrate.ibm.com"):
|
60
59
|
return True
|
61
60
|
return False
|
@@ -79,17 +78,6 @@ def is_cpd_env(url: str | None = None) -> bool:
|
|
79
78
|
return True
|
80
79
|
return False
|
81
80
|
|
82
|
-
def get_environment() -> str:
|
83
|
-
if is_local_dev():
|
84
|
-
return RuntimeEnvironmentType.LOCAL
|
85
|
-
if is_cpd_env():
|
86
|
-
return RuntimeEnvironmentType.CPD
|
87
|
-
if is_ibm_cloud_platform():
|
88
|
-
return RuntimeEnvironmentType.IBM_CLOUD
|
89
|
-
if is_ga_platform():
|
90
|
-
return RuntimeEnvironmentType.AWS
|
91
|
-
return None
|
92
|
-
|
93
81
|
def get_cpd_instance_id_from_url(url: str | None = None) -> str:
|
94
82
|
if url is None:
|
95
83
|
url = get_current_env_url()
|
@@ -101,6 +89,20 @@ def get_cpd_instance_id_from_url(url: str | None = None) -> str:
|
|
101
89
|
url_fragments = url.split('/')
|
102
90
|
return url_fragments[-1] if url_fragments[-1] else url_fragments[-2]
|
103
91
|
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
def get_environment() -> str:
|
96
|
+
if is_local_dev():
|
97
|
+
return RuntimeEnvironmentType.LOCAL
|
98
|
+
if is_cpd_env():
|
99
|
+
return RuntimeEnvironmentType.CPD
|
100
|
+
if is_ibm_cloud_platform():
|
101
|
+
return RuntimeEnvironmentType.IBM_CLOUD
|
102
|
+
if is_ga_platform():
|
103
|
+
return RuntimeEnvironmentType.AWS
|
104
|
+
return None
|
105
|
+
|
104
106
|
def check_token_validity(token: str) -> bool:
|
105
107
|
try:
|
106
108
|
token_claimset = jwt.decode(token, options={"verify_signature": False})
|
@@ -46,7 +46,7 @@ services:
|
|
46
46
|
WXO_SERVER_URL: http://wxo-server:4321
|
47
47
|
MAX_POOL: 60
|
48
48
|
DEPLOYMENT_MODE: laptop
|
49
|
-
SUFFIXLIST:
|
49
|
+
SUFFIXLIST: ${CM_SUFFIXLIST:-[]}
|
50
50
|
ports:
|
51
51
|
- 3001:3001
|
52
52
|
|
@@ -302,7 +302,7 @@ services:
|
|
302
302
|
JWT_PRIVATE_CONFIGS_PATH: "/"
|
303
303
|
VECTOR_STORE_PROVIDER: ${VECTOR_STORE_PROVIDER:-milvus}
|
304
304
|
CELERY_RESULTS_TTL: "3600"
|
305
|
-
EVENT_BROKER_TTL: "
|
305
|
+
EVENT_BROKER_TTL: "3600"
|
306
306
|
TAVILY_API_KEY: ${TAVILY_API_KEY:-dummy_tavily_api_key}
|
307
307
|
WATSONX_APIKEY: ${WATSONX_APIKEY}
|
308
308
|
WATSONX_URL: ${WATSONX_URL}
|
@@ -404,7 +404,7 @@ services:
|
|
404
404
|
WXAI_API_KEY: ${WXAI_API_KEY}
|
405
405
|
VECTOR_STORE_PROVIDER: ${VECTOR_STORE_PROVIDER:-milvus}
|
406
406
|
CELERY_RESULTS_TTL: "3600"
|
407
|
-
EVENT_BROKER_TTL: "
|
407
|
+
EVENT_BROKER_TTL: "3600"
|
408
408
|
TAVILY_API_KEY: ${TAVILY_API_KEY:-dummy_tavily_api_key}
|
409
409
|
WATSONX_APIKEY: ${WATSONX_APIKEY}
|
410
410
|
WATSONX_URL: ${WATSONX_URL}
|
@@ -751,8 +751,8 @@ services:
|
|
751
751
|
SERVER_HTTP_PORT: "9044"
|
752
752
|
SERVER_CONTEXT_PATH:
|
753
753
|
SERVER_JWK_URL: https://wo-ibm-dev.verify.ibm.com/v1.0/endpoint/default/jwks
|
754
|
-
SERVER_STANDALONE_TASK_CALLBACK_URL: http://
|
755
|
-
SERVER_FLOW_CALLBACK_URL: http://
|
754
|
+
SERVER_STANDALONE_TASK_CALLBACK_URL: http://wxo-tempus-runtime:9044/task/callback/{thread_id}/{requestId}
|
755
|
+
SERVER_FLOW_CALLBACK_URL: http://wxo-tempus-runtime:9044/v1/flows/{flow_instance_id}/{task_instance_id}/resume/async
|
756
756
|
JWT_SECRET: ${JWT_SECRET}
|
757
757
|
SERVER_INTERNAL_PROTOCOL: http
|
758
758
|
SERVER_INTERNAL_HOSTNAME: wxo-tempus-runtime
|
@@ -780,19 +780,203 @@ services:
|
|
780
780
|
LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY:-pk-lf-7417757e-d6df-421b-957e-683b76acb5df}
|
781
781
|
LANGFUSE_SECRET_KEY: ${LANGFUSE_PRIVATE_KEY:-sk-lf-7bc4da63-7b2b-40c0-b5eb-1e0cf64f9af2}
|
782
782
|
LOG_LEVEL: info
|
783
|
+
DISABLE_FLOW_BINDING: true
|
784
|
+
DOCPROC_ENABLED: ${DOCPROC_ENABLED:-false}
|
785
|
+
DOCPROC_BASE_URL: http://wxo-doc-processing-infra-standalone:9080
|
783
786
|
WO_API_KEY: ${WO_API_KEY}
|
784
787
|
WO_INSTANCE: ${WO_INSTANCE}
|
785
788
|
AUTHORIZATION_URL: ${AUTHORIZATION_URL}
|
786
789
|
WO_AUTH_TYPE: ${WO_AUTH_TYPE}
|
787
790
|
healthcheck:
|
788
791
|
test: curl -k http://localhost:9044/readiness --fail
|
789
|
-
interval:
|
792
|
+
interval: 30s
|
790
793
|
timeout: 60s
|
791
794
|
retries: 5
|
792
795
|
ports:
|
793
796
|
- 9044:9044
|
794
797
|
depends_on:
|
795
798
|
- wxo-server-db
|
799
|
+
|
800
|
+
cpe:
|
801
|
+
image: ${CPE_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-prompt-optimizer:${CPE_TAG:-latest}
|
802
|
+
platform: linux/amd64
|
803
|
+
restart: unless-stopped
|
804
|
+
environment:
|
805
|
+
WATSONX_APIKEY: ${WATSONX_APIKEY}
|
806
|
+
WATSONX_SPACE_ID: ${WATSONX_SPACE_ID}
|
807
|
+
WO_API_KEY: ${WO_API_KEY}
|
808
|
+
WO_USERNAME: ${WO_USERNAME}
|
809
|
+
WO_PASSWORD: ${WO_PASSWORD}
|
810
|
+
WO_INSTANCE: ${WO_INSTANCE}
|
811
|
+
USE_SAAS_ML_TOOLS_RUNTIME: ${USE_SAAS_ML_TOOLS_RUNTIME}
|
812
|
+
WO_AUTH_TYPE: ${WO_AUTH_TYPE}
|
813
|
+
AUTHORIZATION_URL: ${AUTHORIZATION_URL}
|
814
|
+
ports:
|
815
|
+
- 8081:8080
|
816
|
+
|
817
|
+
########################
|
818
|
+
# DOCPROC dependencies
|
819
|
+
# DPS - 18081
|
820
|
+
# DPI - 19080 / 19443
|
821
|
+
# WDU - 18082
|
822
|
+
# WDU (Prometheus) - 18086
|
823
|
+
# DPS Cache - 18083
|
824
|
+
# LLM Service - 18084
|
825
|
+
########################
|
826
|
+
|
827
|
+
wxo-doc-processing-service:
|
828
|
+
image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo_doc_processing_service:${DOCPROC_DPS_TAG:-20250606-172035-246-4191121}
|
829
|
+
platform: linux/amd64
|
830
|
+
restart: unless-stopped
|
831
|
+
environment:
|
832
|
+
SERVICE_NAME: wxo-doc-processing-service
|
833
|
+
LOG_LEVEL: info
|
834
|
+
VERIFY_CLIENT_CERT: 0
|
835
|
+
SERVICE_URL: ${SERVICE_URL:-https://wxo-doc-processing-cache:8080}
|
836
|
+
RATE_LIMITING_ENABLED: "false"
|
837
|
+
SHOULD_CACHE_IMAGES: "false"
|
838
|
+
HANDWRITING_ENABLED: "true"
|
839
|
+
WDU_RUNTIME_URL: wdu-runtime:8080
|
840
|
+
WDU_TIMEOUT_SECS: "180"
|
841
|
+
IBM_DPS_CACHE_SERVICE: https://wxo-doc-processing-cache:8080
|
842
|
+
profiles:
|
843
|
+
- docproc
|
844
|
+
# depends_on:
|
845
|
+
# wxo-doc-processing-cache:
|
846
|
+
# condition: service_healthy
|
847
|
+
ports:
|
848
|
+
- "18081:8080"
|
849
|
+
healthcheck:
|
850
|
+
test: ["CMD-SHELL", "curl -fk https://localhost:8080/ping"]
|
851
|
+
interval: 30s
|
852
|
+
timeout: 30s
|
853
|
+
retries: 10
|
854
|
+
|
855
|
+
wdu-runtime:
|
856
|
+
image: ${WDU_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wdu-runtime:${WDU_TAG:-2.4.0}
|
857
|
+
platform: linux/amd64
|
858
|
+
restart: unless-stopped
|
859
|
+
environment:
|
860
|
+
MEMORY_MINIMAL: "true"
|
861
|
+
PREFLIGHT_MAX_SIZE: 10Mb
|
862
|
+
PREFLIGHT_MAX_PAGES: 600
|
863
|
+
RUNTIME_LIBRARY: "watson_doc_understanding"
|
864
|
+
profiles:
|
865
|
+
- docproc
|
866
|
+
ports:
|
867
|
+
- "18082:8080"
|
868
|
+
- "18086:8086"
|
869
|
+
volumes:
|
870
|
+
- "wdu-models:/models"
|
871
|
+
- "wdu-prometheus-files:/prometheus/"
|
872
|
+
tmpfs:
|
873
|
+
- "/dev/shm"
|
874
|
+
healthcheck:
|
875
|
+
test: ["CMD-SHELL", "/app/check_heartbeat.sh /tmp/heartbeat.txt 120"]
|
876
|
+
interval: 30s
|
877
|
+
timeout: 30s
|
878
|
+
retries: 10
|
879
|
+
depends_on:
|
880
|
+
wdu-model-copy:
|
881
|
+
condition: service_completed_successfully
|
882
|
+
|
883
|
+
wdu-model-copy:
|
884
|
+
image: ${WDU_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wdu-models:${WDU_TAG:-2.4.0}
|
885
|
+
platform: linux/amd64
|
886
|
+
user: root
|
887
|
+
profiles:
|
888
|
+
- docproc
|
889
|
+
environment:
|
890
|
+
DEST_FOLDER: "/app/models"
|
891
|
+
volumes:
|
892
|
+
- "wdu-models:/app/models"
|
893
|
+
- "wdu-prometheus-files:/prometheus/"
|
894
|
+
tmpfs:
|
895
|
+
- "/dev/shm"
|
896
|
+
|
897
|
+
wxo-doc-processing-infra-standalone:
|
898
|
+
image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo-doc-processing-infra-standalone:${DOCPROC_DPI_TAG:-2025-06-13-dev-1}
|
899
|
+
platform: linux/amd64
|
900
|
+
profiles:
|
901
|
+
- docproc
|
902
|
+
environment:
|
903
|
+
PGHOST: wxo-server-db
|
904
|
+
PGPORT: "5432"
|
905
|
+
PGUSER: ${POSTGRES_USER:-postgres}
|
906
|
+
PGPASSWORD: ${POSTGRES_PASSWORD:-postgres}
|
907
|
+
PGDATABASE: wxo-document-processing-dpi
|
908
|
+
PGURL: "jdbc:postgresql://localhost:5432/wxo-document-processing-dpi?user=${POSTGRES_USER:-postgres}&password=${POSTGRES_PASSWORD:-postgres}"
|
909
|
+
USE_PGBOUNCER: "false"
|
910
|
+
S3_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
|
911
|
+
S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-watsonxorchestrate}
|
912
|
+
S3_ENDPOINT_URL: http://wxo-server-minio:9000
|
913
|
+
BUCKET_NAME_DEFAULT: wxo-document-processing-dpi-common
|
914
|
+
S3_FILERESOURCE_BUCKET: ${BUCKET_NAME_DEFAULT:-wxo-document-processing-dpi}
|
915
|
+
# S3_TLS_ENABLED: "true"
|
916
|
+
ENRICHMENT_BATCH_SIZE: "1000"
|
917
|
+
CIPHER_AES_REALM_KEY: "dGVzdHRlc3R0ZXN0dGVzdA=="
|
918
|
+
SIDECAR_METERED_ENABLED: "false"
|
919
|
+
DPI_DEBUG: "false"
|
920
|
+
DPI_WO_WDU_SERVER_ENDPOINT: https://wxo-doc-processing-service:8080
|
921
|
+
# DPI_RAG_SERVER_ENDPOINT: https://wxo-doc-processing-llm-service:8083
|
922
|
+
DISABLE_TLS: true
|
923
|
+
STANDALONE_DPI: "true"
|
924
|
+
depends_on:
|
925
|
+
wxo-doc-processing-dpi-minio-init:
|
926
|
+
condition: service_completed_successfully
|
927
|
+
wxo-doc-processing-infra-pg-init:
|
928
|
+
condition: service_completed_successfully
|
929
|
+
wxo-doc-processing-service:
|
930
|
+
condition: service_healthy
|
931
|
+
# wxo-doc-processing-llm-service:
|
932
|
+
# condition: service_healthy
|
933
|
+
ports:
|
934
|
+
- 19080:9080
|
935
|
+
- 19443:9443
|
936
|
+
healthcheck:
|
937
|
+
test: ["CMD-SHELL", "HEALTHCHECK_URL=http://localhost:9080/dps/v1/health /healthcheck-all.sh all"]
|
938
|
+
interval: 30s
|
939
|
+
timeout: 30s
|
940
|
+
retries: 10
|
941
|
+
|
942
|
+
wxo-doc-processing-infra-pg-init:
|
943
|
+
image: ${DOCPROC_REGISTRY:-us.icr.io/watson-orchestrate-private}/document-processing/wo-doc-processing-infra-pg-init:${DOCPROC_DPI_TAG:-2025-06-13-dev-1}
|
944
|
+
platform: linux/amd64
|
945
|
+
environment:
|
946
|
+
PGHOST: wxo-server-db
|
947
|
+
PGPORT: "5432"
|
948
|
+
PGUSER: ${POSTGRES_USER:-postgres}
|
949
|
+
PGPASSWORD: ${POSTGRES_PASSWORD:-postgres}
|
950
|
+
PGDATABASE: wxo-document-processing-dpi
|
951
|
+
PGURL: "jdbc:postgresql://localhost:5432/wxo-document-processing-dpi?user=${POSTGRES_USER:-postgres}&password=${POSTGRES_PASSWORD:-postgres}"
|
952
|
+
USE_PGBOUNCER: "false"
|
953
|
+
entrypoint: /liquibase-init.sh
|
954
|
+
- pgbouncer
|
955
|
+
profiles:
|
956
|
+
- docproc
|
957
|
+
depends_on:
|
958
|
+
wxo-server-db:
|
959
|
+
condition: service_started
|
960
|
+
healthcheck:
|
961
|
+
test: ["CMD-SHELL", "psql -h localhost -U ${POSTGRES_USER:-postgres} -d ${POSTGRES_PASSWORD:-postgres}"]
|
962
|
+
interval: 1s
|
963
|
+
timeout: 5s
|
964
|
+
retries: 50
|
965
|
+
|
966
|
+
wxo-doc-processing-dpi-minio-init:
|
967
|
+
image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/minio/mc:latest
|
968
|
+
platform: linux/amd64
|
969
|
+
profiles:
|
970
|
+
- docproc
|
971
|
+
depends_on:
|
972
|
+
wxo-server-minio:
|
973
|
+
condition: service_healthy
|
974
|
+
entrypoint: >
|
975
|
+
/bin/sh -c "
|
976
|
+
/usr/bin/mc alias set wxo-server-minio http://wxo-server-minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD:-watsonxorchestrate};
|
977
|
+
/usr/bin/mc mb wxo-server-minio/wxo-document-processing-dpi;
|
978
|
+
exit 0;
|
979
|
+
"
|
796
980
|
|
797
981
|
volumes:
|
798
982
|
tools:
|
@@ -817,6 +1001,14 @@ volumes:
|
|
817
1001
|
driver: local
|
818
1002
|
langfuse_clickhouse_logs:
|
819
1003
|
driver: local
|
1004
|
+
wdu-prometheus-files:
|
1005
|
+
driver: local
|
1006
|
+
driver_opts:
|
1007
|
+
type: tmpfs
|
1008
|
+
device: tmpfs
|
1009
|
+
o: "uid=1000,gid=1000,mode=1777"
|
1010
|
+
wdu-models:
|
1011
|
+
driver: local
|
820
1012
|
es_data:
|
821
1013
|
|
822
1014
|
networks:
|
@@ -42,7 +42,7 @@ LANGFUSE_PRIVATE_KEY=sk-lf-7bc4da63-7b2b-40c0-b5eb-1e0cf64f9af2
|
|
42
42
|
|
43
43
|
CELERY_WORKER_CONCURRENCY=12
|
44
44
|
CELERY_RESULTS_TTL="3600"
|
45
|
-
EVENT_BROKER_TTL="
|
45
|
+
EVENT_BROKER_TTL="3600"
|
46
46
|
|
47
47
|
# START -- IMAGE REGISTRIES AND TAGS
|
48
48
|
# The registry URL to pull the private images from, including the name of the repository in the registry.
|
@@ -53,41 +53,41 @@ EVENT_BROKER_TTL="-1"
|
|
53
53
|
REGISTRY_URL=
|
54
54
|
|
55
55
|
|
56
|
-
SERVER_TAG=
|
56
|
+
SERVER_TAG=22-07-2025
|
57
57
|
SERVER_REGISTRY=
|
58
58
|
|
59
|
-
WORKER_TAG=
|
59
|
+
WORKER_TAG=22-07-2025
|
60
60
|
WORKER_REGISTRY=
|
61
61
|
|
62
|
-
AI_GATEWAY_TAG=
|
62
|
+
AI_GATEWAY_TAG=21-07-2025
|
63
63
|
AI_GATEWAY_REGISTRY=
|
64
64
|
|
65
|
-
AGENT_GATEWAY_TAG=
|
65
|
+
AGENT_GATEWAY_TAG=07-07-2025
|
66
66
|
AGENT_GATEWAY_REGISTRY=
|
67
67
|
|
68
68
|
DB_REGISTRY=
|
69
69
|
# If you build multiarch set all three of these to the same, we have a pr against main
|
70
70
|
# to not have this separation, but we can merge it later
|
71
|
-
DBTAG=
|
71
|
+
DBTAG=22-07-2025
|
72
72
|
AMDDBTAG=24-06-2025-v1
|
73
73
|
ARM64DBTAG=24-06-2025-v1
|
74
74
|
|
75
75
|
UI_REGISTRY=
|
76
|
-
UITAG=
|
76
|
+
UITAG=23-07-2025
|
77
77
|
|
78
78
|
CM_REGISTRY=
|
79
|
-
CM_TAG=
|
79
|
+
CM_TAG=24-07-2025
|
80
80
|
|
81
|
-
TRM_TAG=
|
81
|
+
TRM_TAG=23-07-2025-3c60549f0bac275de3e5736265a3fd49cdd3a203
|
82
82
|
TRM_REGISTRY=
|
83
83
|
|
84
|
-
TR_TAG=
|
84
|
+
TR_TAG=23-07-2025-3c60549f0bac275de3e5736265a3fd49cdd3a203
|
85
85
|
TR_REGISTRY=
|
86
86
|
|
87
|
-
BUILDER_TAG=
|
87
|
+
BUILDER_TAG=22-07-2025-v1
|
88
88
|
BUILDER_REGISTRY=
|
89
89
|
|
90
|
-
FLOW_RUNTIME_TAG=
|
90
|
+
FLOW_RUNTIME_TAG=15-07-2025
|
91
91
|
FLOW_RUMTIME_REGISTRY=
|
92
92
|
|
93
93
|
|
@@ -100,6 +100,18 @@ JAEGER_PROXY_REGISTRY=
|
|
100
100
|
SOCKET_HANDLER_TAG=29-05-2025
|
101
101
|
SOCKET_HANDLER_REGISTRY=
|
102
102
|
|
103
|
+
CPE_TAG=17-07-2025
|
104
|
+
CPE_REGISTRY=
|
105
|
+
|
106
|
+
# IBM Document Processing
|
107
|
+
WDU_TAG=2.5.0
|
108
|
+
WDU_REGISTRY=
|
109
|
+
|
110
|
+
DOCPROC_DPS_TAG=20250610-183301-248-865fbc1
|
111
|
+
DOCPROC_LLMSERVICE_TAG=20250604-192056-107-e1d4d66
|
112
|
+
DOCPROC_CACHE_TAG=20250610-214940-68-f3258f4
|
113
|
+
DOCPROC_DPI_TAG=20250702-000808-237-7b1e424d
|
114
|
+
DOCPROC_REGISTRY=
|
103
115
|
|
104
116
|
# END -- IMAGE REGISTRIES AND TAGS
|
105
117
|
|
@@ -152,6 +164,14 @@ DB_CONN_LIFE=
|
|
152
164
|
DB_MAX_IDLE_CONN=
|
153
165
|
DB_MAX_CONN=
|
154
166
|
SERVER_HOST=
|
167
|
+
WO_API_KEY=
|
168
|
+
WO_PASSWORD=
|
169
|
+
WO_USERNAME=
|
170
|
+
WO_INSTANCE=
|
171
|
+
AUTHORIZATION_URL=
|
172
|
+
WO_AUTH_TYPE=
|
173
|
+
PYTHONPATH=
|
174
|
+
CM_SUFFIXLIST=
|
155
175
|
|
156
176
|
# Use your machine's local IP address for external async tool communication.
|
157
177
|
CALLBACK_HOST_URL=
|
@@ -160,3 +180,7 @@ AGENTOPS_API_KEY_AUTH_ENABLED=true
|
|
160
180
|
AGENTOPS_API_KEY=qwertyuiop
|
161
181
|
|
162
182
|
RUNTIME_MANAGER_API_KEY=example
|
183
|
+
|
184
|
+
|
185
|
+
# IBM Document Processing
|
186
|
+
SERVICE_URL=https://wxo-doc-processing-cache:8080
|
@@ -1,6 +1,8 @@
|
|
1
1
|
from .constants import START, END, RESERVED
|
2
|
-
|
3
|
-
from ..
|
2
|
+
|
3
|
+
from ..types import FlowContext, TaskData, TaskEventType, File, DecisionsCondition, DecisionsRule
|
4
|
+
from ..node import UserNode, AgentNode, StartNode, EndNode, PromptNode, ToolNode, DecisionsNode
|
5
|
+
|
4
6
|
from .flow import Flow, CompiledFlow, FlowRun, FlowEvent, FlowEventType, FlowFactory, MatchPolicy, WaitPolicy, ForeachPolicy, Branch, Foreach, Loop
|
5
7
|
from .decorators import flow
|
6
8
|
from ..data_map import Assignment, DataMap
|
@@ -14,13 +16,16 @@ __all__ = [
|
|
14
16
|
"FlowContext",
|
15
17
|
"TaskData",
|
16
18
|
"TaskEventType",
|
19
|
+
"File",
|
17
20
|
|
21
|
+
"DocProcNode",
|
18
22
|
"UserNode",
|
19
23
|
"AgentNode",
|
20
24
|
"StartNode",
|
21
25
|
"EndNode",
|
22
26
|
"PromptNode",
|
23
27
|
"ToolNode",
|
28
|
+
"DecisionsNode",
|
24
29
|
"Assignment",
|
25
30
|
"DataMap",
|
26
31
|
|
@@ -36,8 +41,8 @@ __all__ = [
|
|
36
41
|
"Branch",
|
37
42
|
"Foreach",
|
38
43
|
"Loop",
|
44
|
+
"DecisionsCondition",
|
45
|
+
"DecisionsRule",
|
39
46
|
|
40
|
-
"user",
|
41
|
-
"flow_spec",
|
42
47
|
"flow"
|
43
48
|
]
|
@@ -33,7 +33,8 @@ def flow(*args,
|
|
33
33
|
description: str|None=None,
|
34
34
|
input_schema: type[BaseModel] | None = None,
|
35
35
|
output_schema: type[BaseModel] | None = None,
|
36
|
-
initiators: Sequence[str] = ()
|
36
|
+
initiators: Sequence[str] = (),
|
37
|
+
schedulable: bool = False):
|
37
38
|
"""Decorator to mark a function as a flow model builder."""
|
38
39
|
|
39
40
|
def decorator(func: Callable):
|
@@ -58,7 +59,8 @@ def flow(*args,
|
|
58
59
|
description = node_spec.description,
|
59
60
|
input_schema = input_schema,
|
60
61
|
output_schema = output_schema,
|
61
|
-
initiators = initiators
|
62
|
+
initiators = initiators,
|
63
|
+
schedulable = schedulable)
|
62
64
|
|
63
65
|
# logger.info("Creating flow model: %s", a_model.spec.name)
|
64
66
|
|
@@ -5,9 +5,11 @@ from dotenv import load_dotenv
|
|
5
5
|
import os
|
6
6
|
|
7
7
|
from typing import (
|
8
|
-
AsyncIterator, Union
|
8
|
+
AsyncIterator, TypeVar, Union
|
9
9
|
)
|
10
10
|
|
11
|
+
from enum import Enum
|
12
|
+
|
11
13
|
from ..types import (
|
12
14
|
FlowEventType, TaskEventType, FlowEvent, FlowContext
|
13
15
|
)
|
@@ -66,12 +68,11 @@ def deserialize_flow_event(byte_data: bytes) -> FlowEvent:
|
|
66
68
|
|
67
69
|
return flow_event
|
68
70
|
|
71
|
+
def is_valid_enum_value(value: str, enum_type: type[Enum]) -> bool:
|
72
|
+
return value in (item.value for item in enum_type)
|
73
|
+
|
69
74
|
def get_event_type(selected_event_type: str) -> Union[FlowEventType, TaskEventType]:
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
elif eventKind in TaskEventType.__members__:
|
75
|
-
return TaskEventType(selected_event_type)
|
76
|
-
else:
|
77
|
-
raise ValueError(f"Invalid event type: {eventKind}")
|
75
|
+
for enum_type in [FlowEventType, TaskEventType]:
|
76
|
+
if is_valid_enum_value(selected_event_type, enum_type):
|
77
|
+
return enum_type(selected_event_type)
|
78
|
+
raise ValueError(f"Invalid event type: {selected_event_type}")
|