# Productivity Suite React UI

## 📸 Project Screenshots

![project-screenshot](../../assets/img/chat_qna_init.png)
![project-screenshot](../../assets/img/Login_page.png)

## 🧐 Features

Here're some of the project's features:

### CHAT QNA

- 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.
- 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.

#### DATA SOURCE

- The choice between uploading locally or copying a remote link. Chat according to uploaded knowledge base.
- Uploaded File would get listed and user would be able add or remove file/links

##### Screen Shot

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

- Clear: Clear the record of the current dialog box without retaining the contents of the dialog box.
- Chat history: Historical chat records can still be retained after refreshing, making it easier for users to view the context.
- 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.

##### Screen Shots

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

### CODEGEN

- Generate code: generate the corresponding code based on the current user's input.

  Screen Shot
  ![project-screenshot](../../assets/img/codegen.png)

### DOC SUMMARY

- 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.
- 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.
- Scroll to Bottom: The summarized content will automatically scroll to the bottom.

#### Screen Shot

![project-screenshot](../../assets/img/doc_summary_paste.png)
![project-screenshot](../../assets/img/doc_summary_file.png)

### FAQ Generator

- 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.

- 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.

#### Screen Shot

![project-screenshot](../../assets/img/faq_generator.png)

## 🛠️ Get it Running

1. Clone the repo.

2. cd command to the current folder.

3. create a .env file and add the following variables and values.
   ```
   VITE_BACKEND_SERVICE_ENDPOINT_CHATQNA=''
   VITE_BACKEND_SERVICE_ENDPOINT_CODEGEN=''
   VITE_BACKEND_SERVICE_ENDPOINT_DOCSUM=''
   VITE_BACKEND_SERVICE_ENDPOINT_FAQGEN=''
   VITE_KEYCLOAK_SERVICE_ENDPOINT=''
   VITE_DATAPREP_SERVICE_ENDPOINT=''
   VITE_DATAPREP_GET_FILE_ENDPOINT=''
   VITE_DATAPREP_DELETE_FILE_ENDPOINT=''
   VITE_CHAT_HISTORY_CREATE_ENDPOINT=''
   VITE_CHAT_HISTORY_GET_ENDPOINT=''
   VITE_CHAT_HISTORY_DELETE_ENDPOINT=''
   VITE_PROMPT_SERVICE_GET_ENDPOINT=''
   VITE_PROMPT_SERVICE_CREATE_ENDPOINT=''
   ```
4. Execute `npm install` to install the corresponding dependencies.

5. Execute `npm run dev`

6. open http://localhost:5174 in browser to the see the UI
