Skip to content

Commit 6f4b00f

Browse files
Documentation README update for ProductivitySuite example (opea-project#863)
Signed-off-by: Yeoh, Hoong Tee <hoong.tee.yeoh@intel.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 3fb6060 commit 6f4b00f

File tree

5 files changed

+103
-65
lines changed

5 files changed

+103
-65
lines changed

ProductivitySuite/README.md

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,39 @@
1-
# OPEA Productivity Suite Application
1+
# Productivity Suite Application
22

3-
OPEA Productivity Suite streamlines your workflow to boost productivity. It leverages the OPEA microservices to provide a comprehensive suite of features to cater to the diverse needs of modern enterprises.
3+
Productivity Suite, a tool designed to streamline your workflow and boost productivity! Our application leverages the power of OPEA microservices to deliver a comprehensive suite of features tailored to meet the diverse needs of modern enterprises.
44

5-
## Key Features
5+
---
66

7-
- Chat with Documents: Engage in intelligent conversations with your documents using our advanced RAG Capabilities. Our Retrieval-Augmented Generation (RAG) model allows you to ask questions, receive relevant information, and gain insights from your documents in real-time.
7+
## 🛠️ Key Features
88

9-
- Content Summarization: Save time and effort by automatically summarizing lengthy documents or articles, enabling you to quickly grasp the key takeaways.
9+
### 💬 Chat with Documents
1010

11-
- FAQ Generation: Effortlessly create comprehensive FAQs based on your documents, ensuring that your users have access to the information they need.
11+
Engage in intelligent conversations with your documents using our advanced **Retrieval-Augmented Generation (RAG)** capabilities. Ask questions, receive relevant information, and gain insights from your documents in real-time!
1212

13-
- Code Generation: Boost your coding productivity with our code generation feature. Simply provide a description of the functionality you require, and the application will generate the corresponding code snippets, saving you valuable time and effort.
13+
### 📄 Content Summarization
1414

15-
- User Context Management: Maintain a seamless workflow by managing your user's context within the application. Our context management system keeps track of your documents and chat history, allowing for personalized experiences.
15+
Summarize lengthy documents or articles, enabling you to grasp key takeaways quickly. Save time and effort with our intelligent summarization feature!
1616

17-
- Identity and access management: uses the open source platform Keycloak for single sign-on identity and access management.
17+
### ❓ FAQ Generation
1818

19-
Refer to the [Keycloak Configuration Guide](./docker_compose/intel/cpu/xeon/keycloak_setup_guide.md) for instructions to setup Keycloak.
19+
Effortlessly create comprehensive FAQs based on your documents. Ensure your users have access to the information they need with minimal effort!
2020

21-
Refer to the [Xeon Guide](./docker_compose/intel/cpu/xeon/README.md) for instructions to build docker images from source and running the application via docker compose.
21+
### 💻 Code Generation
2222

23-
Refer to the [Xeon Kubernetes Guide](./kubernetes/intel/README.md) for instructions to deploy the application via kubernetes.
23+
Boost your coding productivity by providing a description of the functionality you require. Our application generates corresponding code snippets, saving you valuable time and effort!
24+
25+
### 🎛️ User Context Management
26+
27+
Maintain a seamless workflow by managing your user's context within the application. Our context management system keeps track of documents and chat history for a personalized experience.
28+
29+
### 🔐 Identity and Access Management
30+
31+
Utilizes the open-source platform **Keycloak** for single sign-on identity and access management. This ensures secure and convenient access to your productivity tools.
32+
33+
---
34+
35+
## 📚 Setup Guide
36+
37+
- **[Keycloak Configuration Guide](./docker_compose/intel/cpu/xeon/keycloak_setup_guide.md)**: Instructions to set up Keycloak for identity and access management.
38+
- **[Xeon Guide](./docker_compose/intel/cpu/xeon/README.md)**: Instructions to build Docker images from source and run the application via Docker Compose.
39+
- **[Xeon Kubernetes Guide](./kubernetes/intel/README.md)**: Instructions to deploy the application via Kubernetes.

ProductivitySuite/docker_compose/intel/cpu/xeon/README.md

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
This document outlines the deployment process for OPEA Productivity Suite utilizing the [GenAIComps](https://github.com/opea-project/GenAIComps.git) microservice pipeline on Intel Xeon server and [GenAIExamples](https://github.com/opea-project/GenAIExamples.git) solutions. The steps include Docker image creation, container deployment via Docker Compose, and service execution to integrate microservices such as `embedding`, `retriever`, `rerank`, and `llm`. We will publish the Docker images to Docker Hub soon, it will simplify the deployment process for this service.
44

5-
## 🚀 Build Docker Images
5+
---
6+
7+
## 🐳 Build Docker Images
68

79
First of all, you need to build Docker Images locally and install the python package of it.
810

@@ -38,15 +40,12 @@ docker build --no-cache -t opea/llm-tgi:latest --build-arg https_proxy=$https_pr
3840

3941
```bash
4042
docker build --no-cache -t opea/dataprep-redis:latest --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy -f comps/dataprep/redis/langchain/Dockerfile .
41-
4243
```
4344

4445
### 6. Build Prompt Registry Image
4546

4647
```bash
4748
docker build -t opea/promptregistry-mongo-server:latest --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy -f comps/prompt_registry/mongo/Dockerfile .
48-
49-
5049
```
5150

5251
### 7. Build Chat History Image
@@ -100,6 +99,8 @@ cd GenAIExamples/ProductivitySuite/ui
10099
docker build --no-cache -t ProductivitySuite/docker_compose/intel/cpu/xeon/compose.yaml docker/Dockerfile.react .
101100
```
102101

102+
---
103+
103104
## 🚀 Start Microservices
104105

105106
### Setup Environment Variables
@@ -184,17 +185,19 @@ Note: Please replace with `host_ip` with you external IP address, do not use loc
184185
185186
```bash
186187
cd GenAIExamples/ProductivitySuite/docker_compose/intel/cpu/xeon
187-
```
188188

189-
```bash
190189
docker compose -f compose.yaml up -d
191190
```
192191

193-
### Setup Keycloak
192+
---
193+
194+
### 🔐 Setup Keycloak
195+
196+
Please refer to **[keycloak_setup_guide](keycloak_setup_guide.md)** for more detail related to Keycloak configuration setup.
194197

195-
Please refer to [keycloak_setup_guide](keycloak_setup_guide.md) for more detail related to Keycloak configuration setup.
198+
---
196199

197-
### Validate Microservices
200+
### Validate Microservices
198201

199202
1. TEI Embedding Service
200203

@@ -474,6 +477,8 @@ Please refer to [keycloak_setup_guide](keycloak_setup_guide.md) for more detail
474477
"user": "test", "id":"{Conversation id to Delete}"}'
475478
```
476479

480+
---
481+
477482
## 🚀 Launch the UI
478483

479484
To access the frontend, open the following URL in your browser: http://{host_ip}:5174. By default, the UI runs on port 80 internally. If you prefer to use a different host port to access the frontend, you can modify the port mapping in the `compose.yaml` file as shown below:
@@ -490,57 +495,60 @@ Here is an example of running Productivity Suite
490495
![project-screenshot](../../../../assets/img/chat_qna_init.png)
491496
![project-screenshot](../../../../assets/img/Login_page.png)
492497

493-
## 🧐 Features
498+
---
499+
500+
## 🛠️ Key Features
494501

495502
Here're some of the project's features:
496503

497-
### CHAT QNA
504+
### 💬ChatQnA
498505

499-
- Start a Text Chat:Initiate a text chat with the ability to input written conversations, where the dialogue content can also be customized based on uploaded files.
500-
- Context Awareness: The AI assistant maintains the context of the conversation, understanding references to previous statements or questions. This allows for more natural and coherent exchanges.
506+
- **Start a Text Chat**:Initiate a text chat with the ability to input written conversations, where the dialogue content can also be customized based on uploaded files.
507+
- **Context Awareness**: The AI assistant maintains the context of the conversation, understanding references to previous statements or questions. This allows for more natural and coherent exchanges.
501508

502-
### DATA SOURCE
509+
### 🎛️ Data Source
503510

504-
- The choice between uploading locally or copying a remote link. Chat according to uploaded knowledge base.
505-
- Uploaded File would get listed and user would be able add or remove file/links
511+
- **File Upload or Remote Link**: The choice between uploading locally or copying a remote link. Chat according to uploaded knowledge base.
512+
- **File Management**:Uploaded File would get listed and user would be able add or remove file/links
506513

507-
#### Screen Shot
514+
#### Screenshots
508515

509516
![project-screenshot](../../../../assets/img/data_source.png)
510517

511-
- Clear: Clear the record of the current dialog box without retaining the contents of the dialog box.
512-
- Chat history: Historical chat records can still be retained after refreshing, making it easier for users to view the context.
513-
- Conversational Chat : The application maintains a history of the conversation, allowing users to review previous messages and the AI to refer back to earlier points in the dialogue when necessary.
518+
- **Clear Chat**: Clear the record of the current dialog box without retaining the contents of the dialog box.
519+
- **Chat history**: Historical chat records can still be retained after refreshing, making it easier for users to view the context.
520+
- **Conversational Chat**: The application maintains a history of the conversation, allowing users to review previous messages and the AI to refer back to earlier points in the dialogue when necessary.
514521

515-
#### Screen Shots
522+
#### Screenshots
516523

517524
![project-screenshot](../../../../assets/img/chat_qna_init.png)
518525
![project-screenshot](../../../../assets/img/chatqna_with_conversation.png)
519526

520-
### CODEGEN
527+
### 💻 Codegen
528+
529+
- **Generate code**: generate the corresponding code based on the current user's input.
521530
522-
- Generate code: generate the corresponding code based on the current user's input.
531+
#### Screenshots
523532
524-
Screen Shot
525-
![project-screenshot](../../../../assets/img/codegen.png)
533+
![project-screenshot](../../../../assets/img/codegen.png)
526534
527-
### DOC SUMMARY
535+
### 📚 Document Summarization
528536
529-
- Summarizing Uploaded Files: Upload files from their local device, then click 'Generate Summary' to summarize the content of the uploaded file. The summary will be displayed on the 'Summary' box.
530-
- Summarizing Text via Pasting: Paste the text to be summarized into the text box, then click 'Generate Summary' to produce a condensed summary of the content, which will be displayed in the 'Summary' box on the right.
531-
- Scroll to Bottom: The summarized content will automatically scroll to the bottom.
537+
- **Summarizing Uploaded Files**: Upload files from their local device, then click 'Generate Summary' to summarize the content of the uploaded file. The summary will be displayed on the 'Summary' box.
538+
- **Summarizing Text via Pasting**: Paste the text to be summarized into the text box, then click 'Generate Summary' to produce a condensed summary of the content, which will be displayed in the 'Summary' box on the right.
539+
- **Scroll to Bottom**: The summarized content will automatically scroll to the bottom.
532540
533-
#### Screen Shot
541+
#### Screenshots
534542
535543
![project-screenshot](../../../../assets/img/doc_summary_paste.png)
536544
![project-screenshot](../../../../assets/img/doc_summary_file.png)
537545
538-
### FAQ Generator
546+
### FAQ Generator
539547
540-
- Generate FAQs from Text via Pasting: Paste the text to into the text box, then click 'Generate FAQ' to produce a condensed FAQ of the content, which will be displayed in the 'FAQ' box below.
548+
- **Generate FAQs from Text via Pasting**: Paste the text to into the text box, then click 'Generate FAQ' to produce a condensed FAQ of the content, which will be displayed in the 'FAQ' box below.
541549
542-
- Generate FAQs from Text via txt file Upload: Upload the file in the Upload bar, then click 'Generate FAQ' to produce a condensed FAQ of the content, which will be displayed in the 'FAQ' box below.
550+
- **Generate FAQs from Text via txt file Upload**: Upload the file in the Upload bar, then click 'Generate FAQ' to produce a condensed FAQ of the content, which will be displayed in the 'FAQ' box below.
543551
544-
#### Screen Shot
552+
#### Screenshots
545553
546554
![project-screenshot](../../../../assets/img/faq_generator.png)
Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
1-
# Keycloak Configuration Setup
1+
# 🔐 Keycloak Configuration Setup
22

3-
This document show you step-by-step how to configure Keycloak settings.
3+
This README document provides a comprehensive, step-by-step guide on how to configure **Keycloak** settings. The user management is facilitated via Keycloak, and the configuration is outlined below:
44

5-
The user management is done via Keycloak and the configuration steps look like this:
6-
7-
1. Access the Keycloak admin console via url http:${host_ip}:8080 or endpoint that exposed from your kubernetes cluster to configure user. Use default username(admin) and password(admin) to login.
5+
1. Access the Keycloak admin console via url http:${host_ip}:8080 or endpoint that is exposed from your Kubernetes cluster to configure users. Use the default username(**admin**) and password(**admin**) to login.
86
![project-screenshot](../../../../assets/img/keycloak_login.png)
7+
98
2. Create a new realm named **productivitysuite** within Keycloak.
109
![project-screenshot](../../../../assets/img/create_realm.png)
10+
1111
![project-screenshot](../../../../assets/img/create_productivitysuite_realm.png)
12+
1213
3. Create a new client called **productivitysuite** with default configurations.
1314
![project-screenshot](../../../../assets/img/create_client.png)
14-
4. Select the **productivitysuite** client that created just now. Insert your ProductivitySuite UI url endpoint into "Valid redirect URIs" and "Web origins" field. Example as screenshot below:
15+
16+
4. Select the **productivitysuite** client that you just created. Insert your ProductivitySuite UI url endpoint into **"Valid redirect URIs"** and **"Web origins"** field. Refer to screenshot below as an example:
1517
![project-screenshot](../../../../assets/img/productivitysuite_client_settings.png)
16-
5. From the left pane select the Realm roles and create a new role name as user and another new role as viewer.
18+
19+
5. From the left pane, select the Realm roles and create a new role named **user** and another new role as **viewer**.
1720
![project-screenshot](../../../../assets/img/create_roles.png)
18-
6. Create a new user name as for example mary and another user as bob. Set passwords for both users (set 'Temporary' to 'Off'). Select Role mapping on the top, assign the user role to mary and assign the viewer role to bob.
21+
22+
6. Create a new user named, for example, **mary** and another user as **bob**. Set passwords for both users (set **'Temporary'** to **'Off'**).Select **Role mapping** on the top, assign the user role to mary and assign the viewer role to bob.
1923
![project-screenshot](../../../../assets/img/create_users.png)
24+
2025
![project-screenshot](../../../../assets/img/set_user_password.png)
26+
2127
![project-screenshot](../../../../assets/img/user_role_mapping.png)

ProductivitySuite/kubernetes/intel/README.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Deploy ProductivitySuite with ReactUI
1+
# 🚀 Deploy ProductivitySuite with ReactUI
22

33
The document outlines the deployment steps for ProductivitySuite via Kubernetes cluster while utilizing the [GenAIComps](https://github.com/opea-project/GenAIComps.git) microservice pipeline components and ReactUI, a popular React-based user interface library.
44

@@ -16,12 +16,14 @@ In ProductivitySuite, it consists of following pipelines/examples and components
1616
- keycloak
1717
```
1818

19-
## Prerequisites for Deploying ProductivitySuite with ReactUI
19+
---
20+
21+
## ⚠️ Prerequisites for Deploying ProductivitySuite with ReactUI
2022
To begin with, ensure that you have following prerequisites in place:
2123

22-
1. Kubernetes installation: Make sure that you have Kubernetes installed.
23-
2. Images: Make sure you have all the images ready for the examples and components stated above. You may refer to [README](../../docker_compose/intel/cpu/xeon/README.md) for steps to build the images.
24-
3. Configuration Values: Set the following values in all the yaml files before proceeding with the deployment:
24+
1. Kubernetes installation: Make sure that you have Kubernetes installed.
25+
2. 🐳 Images: Make sure you have all the images ready for the examples and components stated above. You may refer to [README](../../docker_compose/intel/cpu/xeon/README.md) for steps to build the images.
26+
3. 🔧 Configuration Values: Set the following values in all the yaml files before proceeding with the deployment:
2527

2628
a. HUGGINGFACEHUB_API_TOKEN (Your HuggingFace token to download your desired model from HuggingFace):
2729
```
@@ -42,20 +44,26 @@ To begin with, ensure that you have following prerequisites in place:
4244
# Look for ENDPOINT in the yaml and insert all the url endpoint for all the required backend service.
4345
```
4446
45-
4. MODEL_ID and model-volume (OPTIONAL): You may as well customize the "MODEL_ID" to use different model and model-volume for the volume to be mounted.
47+
4. MODEL_ID and model-volume **(OPTIONAL)**: You may as well customize the "MODEL_ID" to use different model and model-volume for the volume to be mounted.
4648
5. After finish with steps above, you can proceed with the deployment of the yaml file.
4749
48-
## Deploying ProductivitySuite
50+
---
51+
52+
## 🌐 Deploying ProductivitySuite
4953
You can use yaml files in xeon folder to deploy ProductivitySuite with reactUI.
5054
```
5155
cd GenAIExamples/ProductivitySuite/kubernetes/intel/cpu/xeon/manifests/
5256
kubectl apply -f *.yaml
5357
```
5458
55-
## User Management via Keycloak Configuration
56-
Please refer to [keycloak_setup_guide](../../docker_compose/intel/cpu/xeon/keycloak_setup_guide.md) for more detail related to Keycloak configuration setup.
59+
---
60+
61+
## 🔐 User Management via Keycloak Configuration
62+
Please refer to **[keycloak_setup_guide](../../docker_compose/intel/cpu/xeon/keycloak_setup_guide.md)** for more detail related to Keycloak configuration setup.
63+
64+
---
5765
58-
## Verify Services
66+
## Verify Services
5967
To verify the installation, run command 'kubectl get pod' to make sure all pods are running.
6068
6169
To view all the available services, run command 'kubectl get svc' to obtain ports that need to used as backend service endpoint in productivity_suite_reactui.yaml.

supported_examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,4 +190,4 @@ FAQ Generation Application leverages the power of large language models (LLMs) t
190190

191191
### ProductivitySuite
192192

193-
[Productivity Suite](./ProductivitySuite/README.md) streamlines your workflow to boost productivity. It leverages the OPEA microservices to provide a comprehensive suite of features to cater to the diverse needs of modern enterprises.
193+
[Productivity Suite](./ProductivitySuite/README.md) streamlines your workflow to boost productivity. It leverages the power of OPEA microservices to deliver a comprehensive suite of features tailored to meet the diverse needs of modern enterprises.

0 commit comments

Comments
 (0)