diff --git a/reference-architecture/rag-pattern.svg b/reference-architecture/rag-pattern.svg index 0bacfa40..c4350ed9 100644 --- a/reference-architecture/rag-pattern.svg +++ b/reference-architecture/rag-pattern.svg @@ -1,4 +1,4 @@ -
Primary Region (Multi Zone)
5
Client Workload
Gen AI App
Data Processing
watsonx Assistant /Orchestrate
or watsonx.ai
SaaS
Cloud Object Storagewatsonx.ai In-memoryICD Elasticsearch or watsonx.data Milvusor Watson Discovery
LLM 
(Embedded)
6
IBM Cloud
1. Raw client data is stored in Object Storage 
2. Data is processed utilizing custom tools or data preparation and transformation features available in watsonx.ai or watsonx Asssitant 
    or Orchestrate. Machine learning models create vector indexes/embeddings and store 'in-memory' watsonx.ai or Elasticsearch or 
    watsonx.data Milvus vector db. Alternatively create and store keyword indexes in Watson Discovery.
3. User asks natural language question (Query)
4. Gen AI app routes question through watsonx Assistant (for conversational flow) or through watsonx.ai
5. watsonx Assistant or watsonx.ai queries the vector or keyword indexes to get the relevant content (Retrieval)
6. The received content is sent to LLM to generate a summary (Generation)
7. Generated summary response is sent to the requesting Gen AI app
8. Generated summarized response is received by the user (Response)
UserAI EngineerClient Data
7
2
3
4
8
1
\ No newline at end of file +
Primary Region (Multi Zone)
5
Client Workload
Gen AI App
Data Processing
watsonx Assistant or watsonx.ai
SaaS
Cloud Object Storagewatsonx.ai In-memoryICD Elasticsearch or Watson Discovery
LLM 
(Embedded)
6
IBM Cloud
1. Raw client data is stored in Object Storage 
2. Data is processed utilizing custom tools or data preparation and transformation features available in watsonx.ai or watsonx Asssitant. 
    Machine learning models create vector indexes/embeddings and store 'in-memory' watsonx.ai or Elasticsearch vector db. Alternatively 
    create and store keyword indexes in Watson Discovery.
3. User asks natural language question (Query)
4. Gen AI app routes question through watsonx Assistant (for conversational flow) or through watsonx.ai
5. watsonx Assistant or watsonx.ai queries the vector or keyword indexes to get the relevant content (Retrieval)
6. The received content is sent to LLM to generate a summary (Generation)
7. Generated summary response is sent to the requesting Gen AI app
8. Generated summarized response is received by the user (Response)
UserAI EngineerClient Data
7
2
3
4
8
1
\ No newline at end of file diff --git a/solutions/basic/stack_definition.json b/solutions/basic/stack_definition.json index 111b7d4e..469904da 100644 --- a/solutions/basic/stack_definition.json +++ b/solutions/basic/stack_definition.json @@ -685,6 +685,10 @@ "name": "watson_assistant_region", "value": "ref:../../inputs/region" }, + { + "name": "watsonx_admin_api_key", + "value": "ref:../../inputs/watsonx_admin_api_key" + }, { "name": "watson_assistant_instance_id", "value": "ref:../Gen AI - WatsonX SaaS services/outputs/watsonx_assistant_guid" @@ -751,35 +755,155 @@ "outputs": [ { "name": "elasticsearch_hostname", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/hostname" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/hostname" }, { "name": "elasticsearch_port", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/port" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/port" }, { "name": "elasticsearch_service_credentials_json", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/service_credentials_json" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/service_credentials_json" }, { "name": "elasticsearch_crn", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/crn" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/crn" }, { "name": "watsonx_project_url", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watsonx_project_url" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watsonx_project_url" }, { "name": "watsonx_project_id", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watsonx_project_id" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watsonx_project_id" }, { "name": "watson_discovery_api_url", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watson_discovery_api_url" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watson_discovery_api_url" }, { "name": "watson_discovery_project_id", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watson_discovery_project_id" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watson_discovery_project_id" + }, + { + "name": "kms_instance_crn", + "value": "ref:./members/Essential Security - Encryption Key Management/outputs/kms_instance_crn" + }, + { + "name": "kms_private_endpoint", + "value": "ref:./members/Essential Security - Encryption Key Management/outputs/kms_private_endpoint" + }, + { + "name": "kms_public_endpoint", + "value": "ref:./members/Essential Security - Encryption Key Management/outputs/kms_public_endpoint" + }, + { + "name": "event_notification_instance_crn", + "value": "ref:./members/Essential Security - Event Notifications/outputs/crn" + }, + { + "name": "event_notification_instance_name", + "value": "ref:./members/Essential Security - Event Notifications/outputs/event_notification_instance_name" + }, + { + "name": "event_notification_instance_guid", + "value": "ref:./members/Essential Security - Event Notifications/outputs/guid" + }, + { + "name": "cloud_logs_crn", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_logs_crn" + }, + { + "name": "cloud_logs_guid", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_logs_guid" + }, + { + "name": "cloud_monitoring_crn", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_monitoring_crn" + }, + { + "name": "cloud_monitoring_guid", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_monitoring_guid" + }, + { + "name": "secrets_manager_crn", + "value": "ref:./members/Essential Security - Secrets Manager/outputs/secrets_manager_crn" + }, + { + "name": "secrets_manager_guid", + "value": "ref:./members/Essential Security - Secrets Manager/outputs/secrets_manager_guid" + }, + { + "name": "secrets_manager_name", + "value": "ref:./members/Essential Security - Secrets Manager/outputs/secrets_manager_name" + }, + { + "name": "scc_crn", + "value": "ref:./members/Essential Security - Security Compliance Center/outputs/scc_crn" + }, + { + "name": "scc_guid", + "value": "ref:./members/Essential Security - Security Compliance Center/outputs/scc_guid" + }, + { + "name": "scc_workload_protection_crn", + "value": "ref:./members/Essential Security - Security Compliance Center/outputs/scc_workload_protection_crn" + }, + { + "name": "watson_discovery_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_discovery_crn" + }, + { + "name": "watson_discovery_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_discovery_dashboard_url" + }, + { + "name": "watson_machine_learning_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_machine_learning_crn" + }, + { + "name": "watson_machine_learning_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_machine_learning_dashboard_url" + }, + { + "name": "watson_machine_learning_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_machine_learning_guid" + }, + { + "name": "watson_studio_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_studio_crn" + }, + { + "name": "watson_studio_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_studio_dashboard_url" + }, + { + "name": "watson_studio_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_studio_guid" + }, + { + "name": "watsonx_assistant_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_assistant_crn" + }, + { + "name": "watsonx_assistant_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_assistant_dashboard_url" + }, + { + "name": "watsonx_data_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_data_crn" + }, + { + "name": "watsonx_data_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_data_dashboard_url" + }, + { + "name": "watsonx_data_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_data_guid" + }, + { + "name": "watson_discovery_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_discovery_guid" } ] } diff --git a/solutions/standard/stack_definition.json b/solutions/standard/stack_definition.json index 9b441462..1be41ef1 100644 --- a/solutions/standard/stack_definition.json +++ b/solutions/standard/stack_definition.json @@ -735,6 +735,10 @@ "name": "watson_assistant_region", "value": "ref:../../inputs/region" }, + { + "name": "watsonx_admin_api_key", + "value": "ref:../../inputs/watsonx_admin_api_key" + }, { "name": "watson_assistant_instance_id", "value": "ref:../Gen AI - WatsonX SaaS services/outputs/watsonx_assistant_guid" @@ -809,35 +813,171 @@ "outputs": [ { "name": "elasticsearch_hostname", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/hostname" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/hostname" }, { "name": "elasticsearch_port", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/port" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/port" }, { "name": "elasticsearch_service_credentials_json", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/service_credentials_json" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/service_credentials_json" }, { "name": "elasticsearch_crn", - "value": "ref:../Gen AI - Databases for Elasticsearch/outputs/crn" + "value": "ref:./members/Gen AI - Databases for Elasticsearch/outputs/crn" }, { "name": "watsonx_project_url", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watsonx_project_url" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watsonx_project_url" }, { "name": "watsonx_project_id", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watsonx_project_id" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watsonx_project_id" }, { "name": "watson_discovery_api_url", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watson_discovery_api_url" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watson_discovery_api_url" }, { "name": "watson_discovery_project_id", - "value": "ref:../Workload - Sample RAG App Configuration/outputs/watson_discovery_project_id" + "value": "ref:./members/Workload - Sample RAG App Configuration/outputs/watson_discovery_project_id" + }, + { + "name": "kms_instance_crn", + "value": "ref:./members/Essential Security - Encryption Key Management/outputs/kms_instance_crn" + }, + { + "name": "kms_private_endpoint", + "value": "ref:./members/Essential Security - Encryption Key Management/outputs/kms_private_endpoint" + }, + { + "name": "kms_public_endpoint", + "value": "ref:./members/Essential Security - Encryption Key Management/outputs/kms_public_endpoint" + }, + { + "name": "event_notification_instance_crn", + "value": "ref:./members/Essential Security - Event Notifications/outputs/crn" + }, + { + "name": "event_notification_instance_name", + "value": "ref:./members/Essential Security - Event Notifications/outputs/event_notification_instance_name" + }, + { + "name": "event_notification_instance_guid", + "value": "ref:./members/Essential Security - Event Notifications/outputs/guid" + }, + { + "name": "cloud_logs_crn", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_logs_crn" + }, + { + "name": "cloud_logs_guid", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_logs_guid" + }, + { + "name": "cloud_monitoring_crn", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_monitoring_crn" + }, + { + "name": "cloud_monitoring_guid", + "value": "ref:./members/Essential Security - Logging Monitoring Activity Tracker/outputs/cloud_monitoring_guid" + }, + { + "name": "secrets_manager_crn", + "value": "ref:./members/Essential Security - Secrets Manager/outputs/secrets_manager_crn" + }, + { + "name": "secrets_manager_guid", + "value": "ref:./members/Essential Security - Secrets Manager/outputs/secrets_manager_guid" + }, + { + "name": "secrets_manager_name", + "value": "ref:./members/Essential Security - Secrets Manager/outputs/secrets_manager_name" + }, + { + "name": "scc_crn", + "value": "ref:./members/Essential Security - Security Compliance Center/outputs/scc_crn" + }, + { + "name": "scc_guid", + "value": "ref:./members/Essential Security - Security Compliance Center/outputs/scc_guid" + }, + { + "name": "scc_workload_protection_crn", + "value": "ref:./members/Essential Security - Security Compliance Center/outputs/scc_workload_protection_crn" + }, + { + "name": "watson_discovery_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_discovery_crn" + }, + { + "name": "watson_discovery_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_discovery_dashboard_url" + }, + { + "name": "watson_machine_learning_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_machine_learning_crn" + }, + { + "name": "watson_machine_learning_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_machine_learning_dashboard_url" + }, + { + "name": "watson_machine_learning_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_machine_learning_guid" + }, + { + "name": "watson_studio_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_studio_crn" + }, + { + "name": "watson_studio_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_studio_dashboard_url" + }, + { + "name": "watson_studio_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_studio_guid" + }, + { + "name": "watsonx_assistant_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_assistant_crn" + }, + { + "name": "watsonx_assistant_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_assistant_dashboard_url" + }, + { + "name": "watsonx_data_crn", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_data_crn" + }, + { + "name": "watsonx_data_dashboard_url", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_data_dashboard_url" + }, + { + "name": "watsonx_data_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watsonx_data_guid" + }, + { + "name": "watson_discovery_guid", + "value": "ref:./members/Gen AI - WatsonX SaaS services/outputs/watson_discovery_guid" + }, + { + "name": "workload_cluster_name", + "value": "ref:./members/Workload - Compute Red Hat OpenShift Container Platform on VPC/outputs/workload_cluster_name" + }, + { + "name": "workload_cluster_id", + "value": "ref:./members/Workload - Compute Red Hat OpenShift Container Platform on VPC/outputs/workload_cluster_id" + }, + { + "name": "workload_cluster_private_service_endpoint_url", + "value": "ref:./members/Workload - Compute Red Hat OpenShift Container Platform on VPC/outputs/workload_cluster_private_service_endpoint_url" + }, + { + "name": "workload_cluster_public_service_endpoint_url", + "value": "ref:./members/Workload - Compute Red Hat OpenShift Container Platform on VPC/outputs/workload_cluster_public_service_endpoint_url" } ] }