generated from ibm-client-engineering/solution-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from ibm-client-engineering/eashan-updates
updated docs
- Loading branch information
Showing
28 changed files
with
1,463 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
--- | ||
title: Overview | ||
sidebar_position: 1 | ||
description: sample page | ||
custom_edit_url: null | ||
--- | ||
|
||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
The goal of a solution doc is to outline a clear and actionable plan for implementing a unified agent that effectively | ||
leverages generative AI to route conversations to the appropriate actions and integrations. This document serves as a blueprint for developers | ||
and project managers by providing a detailed roadmap for the overall implementation and configuration of various generative AI capabilities and third-party integrations, | ||
as well as outlining the necessary infrastructure and workflows. | ||
|
||
This solution doc will address the different use cases for this soltuion, as well as outline the necessary requirements for building out each solution component to ultimately | ||
demonstrate a successful implementation of the unified agent with generative AI capabilities. | ||
|
||
### Business Statement | ||
- A plethora of siloed internal chatbots is posing challenges to an enterprise's operational, compliance, and enterprise architecture standards. | ||
- Employees are frustrated because they have to locate the right chatbot to answer their specific questions. | ||
- Enterprise Architecture team is frustrated because lines of business will launch their own chatbot to fill their teams’ specific needs. | ||
- Compliance teams are frustrated because there is no single point of oversight to ensures that chatbot responses are grounded on vetted information and that sensitive material remains protected. | ||
|
||
### Challenges | ||
- **User Experience challenges:** | ||
- **Time to information:** Information is difficult to find in a timely manner, as employees need to first know which chatbot to leverage for their particular question. | ||
- **Limited Access:** users will only be able to leverage the chatbots they are aware of. Many employees will be without the conversational search of a chatbot unless they have awareness and access to it. | ||
- **Limited capabilities and integration**: very few chatbots are currently designed to do more than provide information. Employees need to take extra steps in order to action on the insight (like opening tickets, connecting with support, etc) | ||
- **Cost and Operational challenges:** | ||
- **Redundant efforts:** lines of business across the business are duplicating efforts by creating redundant chatbots. | ||
- **Scalability:** Without a unified approach, every new chatbot that is added only magnifies the existing user experience challenges and info risk challenges. | ||
- **Information Challenges:** | ||
- **Veracity Risk:** How can Enterprise Architecture and Compliance teams ensure that the many chatbots across each line of business are providing employees information grounded on vetted source material? | ||
- **Security and Sensitivity Risk:** How can Enterprise Architecture and Compliance teams ensure that sensitive material remains protected across specified clearance levels? | ||
- **Enterprise-level governance:** Enterprise Architecture lacks a single view of all LLMs deployed in the organization. | ||
|
||
### Desired Outcomes | ||
- A platform that can unite across lines of business | ||
- Flexibility to connect with existing systems as well as extend to future additions. | ||
- Enable users to take actions (like opening tickets, changing passwords, etc) | ||
- Enable users to answer questions, grounded on pre-approved source material | ||
- Governed access to sensitive content (only allow access to content that you are cleared for) | ||
- Delegate specified questions to vetted chatbots that may already exist across the enterprise | ||
|
||
### Expected Benefits to the business | ||
- A More Informed Workforce: less noise per inquiry, less time to answers | ||
- Cost and Operational Efficiency Gains: reduced duplicated efforts and a scalable framework | ||
- Enhanced Compliance and Governance: a united framework enables clearer centralized oversight - including models deployed, model health, source information, governed access to sensitive material | ||
|
||
|
||
## Solution Components | ||
The objective of this solution is to demonstrate a chatbot which has the ability to orchestrate conversations to the | ||
appropriate channels and/or 3rd-party applications while leveraging generative AI technologies. This unified agent solution revolves around six key capabilities: | ||
|
||
**Core Products:** watsonx Orchestrate, IBM Cloud Object Storage | ||
| Capability | IBM Product | | ||
| -------- | ------- | | ||
| Identity Access Management | IBM Security Verify | | ||
| Generative AI-Driven Conversational Routing | watsonx.gov or watsonx.ai <br /> Watson Matchine Learning | | ||
| RAG Document Search | <div>watsonx Discovery<br /> watsonx.ai <br /> Watson Machine Learning</div> | | ||
| 3rd-Party Application Integrations | watsonx Orchestrate | | ||
| Governance | watsonx.gov | | ||
| Subordinate Bot Integration | watsonx Orchestrate Assistant | | ||
|
||
|
||
|
||
--- | ||
|
||
![Solution Components](https://media.github.ibm.com/user/386696/files/275d5fa0-c2a4-416c-861d-b9c3c0dc83c0) | ||
|
||
---- | ||
### **Web-Chat Interface** | ||
* Leveraging IBM Cloud Object Storage to host a static website for the chatbot. | ||
* Configuration Steps [here](/Create/Webchat%20Interface/Static-Webpage) | ||
|
||
---- | ||
### **Identity and Access Management (IAM)** | ||
|
||
Security can be demostrated in one of two ways: | ||
|
||
1. **Security Verify SSO** | ||
* Configuration Steps [here](/Create/User%20Authentication/IBM_Security_Verify) | ||
|
||
2. **Simulation:** <br></br> | ||
* Leverage stored user information (e.g. username, password, role, access, etc,) in a data structure within the Assistant Builder. | ||
* Configuration Steps [here](/Create/User%20Authentication/Simulated) | ||
---- | ||
### **Conversational Engine** | ||
* Built within the watsonx Orchestrate Assistant Builder | ||
* Built out Generative AI layer to route conversations to the right actions based on the logged-in user's access/role. | ||
* GenAI Routing: Configuration Steps [here](/Create/GenAI_routing_create) | ||
---- | ||
### **Integrations** | ||
#### **RAG Document Search** | ||
* Leverage native assistant builder extensions to integrate with watsonx Discovery or watson Discovery | ||
* Watsonx Discovery Configuration Steps [here](/Create/RAG%20Document%20Search/Watsonx_Discovery) | ||
* Watson Discovery Configuration Steps [here](/Create/RAG%20Document%20Search/Watson_Discovery) | ||
|
||
#### **Governance** | ||
* Leverage native assistant builder extensions to integrate with watsonx.gov | ||
* Configuration Steps [here](/Create/Governance/watsonx_gov) | ||
|
||
#### **3rd-Party Applications** | ||
* Leverage native assistant builder extensions to integrate with Genesys. | ||
* Genesys Configuration Steps [here](/Create/Third%20Party%20Apps/Genesys) | ||
* Leverage watsonx Orchestrate skills to integrate with ServiceNow and Workday | ||
* ServiceNow Configuration Steps [here](/Create/Third%20Party%20Apps/ServiceNow) | ||
* Workday Configuration Steps [here](/Create/Third%20Party%20Apps/Workday) | ||
|
||
#### **Subordinate Bot** | ||
* Leverage native assistant builder extensions to integrate with watsonx.gov | ||
* Configuration Steps [here](/Create/Governance/watsonx_gov) | ||
---- | ||
### **Data Repository** | ||
* Leverage Cloud Object Storage to store documents relevant to the use case |
45 changes: 45 additions & 0 deletions
45
docs/01-Business Overview/02-Capabilities/01-Identity_Access_Mgmt.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
--- | ||
title: Identity and Access Management | ||
sidebar_position: 1 | ||
description: sample page | ||
custom_edit_url: null | ||
--- | ||
|
||
## Overview | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
It is essential to consider the security and access control aspects for the user interface within the agent. Implementing user login functionality allows users to securely authenticate themselves, enabling them to access specific actions and features based on their access rights. By integrating user access information with the chatbot, the system can ensure that users can only interact with and modify data they are authorized to access. This not only enhances the overall security of the system but also provides a more personalized and controlled user experience. | ||
|
||
For instance, a user with administrative privileges may have access to change theirs' and others' passwords , while a regular user will be limited to basic functions. | ||
This approach ensures that users are only exposed to the features and actions they are qualified to perform, reducing the risk of errors and improving the usability of the chatbot. | ||
|
||
### **Examples** | ||
|
||
For this solution there was a focus on four simulated personas. | ||
|
||
![User Examples](https://media.github.ibm.com/user/386696/files/f08aec9d-0c3a-4984-8903-8f499ec14a42) | ||
|
||
**Admin** : Has the ability to change passwords | ||
|
||
**Manager** : Has the ability to file short-term disablity requests for oneself and others | ||
|
||
**Employees** : Has the ability to search corpus for answers and open tickets to change passwords or open short-term disablity requests | ||
|
||
**fixed-income access** : Has the ability to search documents pertaining to fixed-income reports | ||
|
||
**real-estate access** : Has the ability to search documents pertaining to real-estate reports | ||
|
||
## Solution Implementation | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
|
||
### **Method 1: Simulation** | ||
Simulating user login within Watsonx Orchestrate Assistant Builder can be achieved by storing simulated individuals in a data structure. This data structure, typically a list or map, can store information about each simulated user, such as their name, access level, and other relevant details. By initializing this data structure with a set of simulated users, you can create a realistic login scenario where the system checks user credentials and grants or denies access accordingly. | ||
|
||
Storing simulated individuals in a data structure within Watsonx Orchestrate Assistant Builder allows you to test the login functionality and ensure that the system behaves as expected. This can help identify potential issues early in the development process, saving time and resources. Additionally, you can customize the simulated users' data to represent different user types, enabling you to test the system's access control mechanisms and ensure that users are only granted access to the appropriate actions and data. | ||
|
||
By using simulated users in this manner, you can thoroughly test the user login functionality and ensure that the unified agent with generative AI capabilities is secure, reliable, and user-friendly. | ||
|
||
[Implementation Guide Here](/Create/Identity%20and%20Access%20Management/Simulated) | ||
### **Method 2: IBM Security Verify** | ||
Leverage the IBM Security Verify API to carry differnt actions like authenticating user logins and resetting passwords. | ||
|
||
[Implementation Guide Here](/Create/Identity%20and%20Access%20Management/IBM_Security_Verify) |
47 changes: 47 additions & 0 deletions
47
docs/01-Business Overview/02-Capabilities/02-GenAI_routing.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
--- | ||
title: GenAI Routing | ||
sidebar_position: 2 | ||
description: sample page | ||
custom_edit_url: null | ||
--- | ||
## Overview | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
Leveraging generative AI to help classify user prompts as different groups can significantly improve the routing of conversations to the right actions | ||
within an assistant builder. | ||
|
||
This approach not only streamlines the conversation routing process but also enhances the overall user experience by providing more accurate and relevant responses. | ||
For example, if a user inputs "I need to reset my password," the system can classify the prompt as an "Action" intent and route the conversation to the relevant action or workflow. | ||
Similarly, if a user inputs "What are the password policies?", the system can classify the prompt as a "Query" intent and route the conversation to the appropriate e-commerce action or workflow. | ||
|
||
## Solution Implementation | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
|
||
### **Action vs. Query** | ||
Generative AI is leveraged within the Assistant to determine whether a user's request is an "Action", such as changing a password, or a request to | ||
"Query" a knowledge base for an answer. | ||
|
||
For example, if a user inputs "change my password," the system can classify the request as an "Acion" and route the conversation to the relevant action | ||
or workflow. Similarly, if a user inputs "What are the different password policies?" the system will classify the request as a "Query" and route the | ||
conversation to the appropriate knowledge base action or workflow, where the AI model can generate an accurate and relevant answer. | ||
|
||
By accurately determining the nature of a user's request, the system can provide more targeted and relevant responses, improving the overall user | ||
experience. Additionally, generative AI can be used to generate tailored responses for each action type, ensuring that users receive accurate and | ||
engaging information for both action requests and knowledge base queries. | ||
|
||
### **Financial vs. Non-Financial Query** | ||
Generative AI is leveraged within the Assistant to determine whether a user's query is related to financial reports or not. If the query is related | ||
to financial reports, the Large Language Model classifies the request as "Financial" and classifies the request as "None" if it is not financially related. | ||
|
||
For example, if a user inputs "How did the mortgage rates change from the previous year to the fourth quarter of 2023," the system will classify the request as "Financial" and route the conversation to the relevant action | ||
or workflow to search against a finanical-focused corpus. Similarly, if a user inputs "What are the different password policies?" the system can classify the request as a "None" and route the | ||
conversation to the appropriate knowledge base action or workflow where an AI model can generate an accurate and relevant answer. | ||
|
||
### **Individual Request vs. Request for another** | ||
Generative AI is leveraged within the Assistant to determine whether a user's query is for the individual or if the request is for others. If the query is for the individual | ||
user, the Large Language Model classifies the request as "Individual" and classifies the request as "Other" if it is request for another individual. | ||
|
||
For example, if a user inputs "I would like to change my password" the system will classify the request as "Individual" and route the conversation to the relevant action | ||
or workflow. Similarly, if a user inputs "I would like to file a short-term disability claim for Robert" the system will classify the request as a "Other" and route the | ||
conversation to the appropriate action or workflow to ensure the right users can carry out specific actions. | ||
|
||
[Implementation Guide Here](/Create/GenAI_routing_create) |
33 changes: 33 additions & 0 deletions
33
docs/01-Business Overview/02-Capabilities/03-RAG_DocumentSearch.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
title: RAG Document Search | ||
sidebar_position: 3 | ||
description: sample page | ||
custom_edit_url: null | ||
--- | ||
## Overview | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
|
||
By leveraging a RAG pipeline to help users query a given knowledge base corpus, the Assistant can provide a more reliable and accurate knowledge base search experience. | ||
This not only enhances the overall user experience but also ensures that users receive the most relevant and up-to-date information possible by providing source links to the provided answers. | ||
|
||
A RAG pipeline for Document Search usually consists of a Data Repository, a Vector Database and a Large Language Model. This pipeline can be carried out as one of three patterns. | ||
|
||
## Solution Implementation | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
|
||
### **Method 1: Watson Discovery** | ||
|
||
This pattern consists of creating two integrations with Watson Discovery and Watsonx.ai. Watson Discovery is used to store and carry out searches on data collections. The native native search capability to pass relevant passages into an LLM prompt template to generate an answer to a user's query. | ||
|
||
**Required Integrations:** | ||
* Watson Discovery | ||
* Watsonx.ai | ||
|
||
![RAG Method 1](https://media.github.ibm.com/user/386696/files/e5296158-ada0-4aa8-beee-d9b1d47b6ab6) | ||
|
||
[Implementation Guide Here](/Create/RAG%20Document%20Search/Watson_Discovery) | ||
### **Method 2: Watsonx Discovery with Elasticsearch** | ||
|
||
![RAG Method 2](https://media.github.ibm.com/user/386696/files/635e8b89-32f7-4899-9284-86d376e54d9e) | ||
|
||
[Implementation Guide Here](/Create/RAG%20Document%20Search/Watsonx_Discovery) |
22 changes: 22 additions & 0 deletions
22
docs/01-Business Overview/02-Capabilities/04-Integrations.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- | ||
title: 3rd-Party Integrations | ||
sidebar_position: 4 | ||
description: sample page | ||
custom_edit_url: null | ||
--- | ||
## Overview | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
|
||
Integrating third-party applications with a chatbot is pivotal for predefined workflows within an organization because it allows the chatbot to seamlessly interact with various systems, streamlining processes and enhancing efficiency. By leveraging existing tools and platforms, the chatbot can execute tasks such as updating databases, triggering notifications, or retrieving real-time data without manual intervention. This integration ensures that the chatbot is not just a standalone solution but becomes a central hub for workflow automation, reducing operational silos and enabling more cohesive and agile business operations. Moreover, the ability to connect with third-party services empowers organizations to customize and expand their workflows, making the chatbot a more flexible and powerful tool that adapts to the organization's unique needs. | ||
|
||
## Solution Implementation | ||
<div style={{ borderBottom: '1px solid #000', marginTop: '20px', marginBottom: '20px' }}></div> | ||
|
||
### ServiceNow | ||
[Implementation Guide Here](/Create/Third%20Party%20Apps/ServiceNow) | ||
|
||
### Workday | ||
[Implementation Guide Here](/Create/Third%20Party%20Apps/Workday) | ||
|
||
### Genesys | ||
[Implementation Guide Here](Create/Third%20Party%20Apps/Genesys) |
Oops, something went wrong.