Project Overview

The UH ITS Ask Us AI chatbot is a cutting-edge solution designed to revolutionize the user experience on the Ask Us support page. Our virtual assistant is equipped with the ability to intelligently navigate a vast database of articles, allowing it to provide prompt and accurate answers to user inquiries. This enhancement streamlines the information retrieval process, offering users a highly efficient and user-friendly interaction.

Our chatbot goes beyond simple keyword matching by leveraging advanced natural language processing techniques and the OpenAI API. It can not only retrieve information directly from articles but also synthesize content to address queries, even if the details are not explicitly mentioned in the articles themselves. This showcases a nuanced understanding of the knowledge base and ensures that users receive comprehensive and relevant responses.

For normal users, the chatbot offers personalized settings and history tracking, enabling a tailored experience. It also simplifies access to frequently asked questions, making it easier for users to find the information they need. Additionally, it provides valuable statistics and functionality for administrative users, enabling them to monitor and manage the system effectively.


Solution Approach

Our solution approach involves harnessing the power of the OpenAI API to create an intelligent chatbot that can seamlessly interact with users. This API serves as the backbone of our chatbot's ability to understand and respond to user queries effectively.

At its core, our chatbot is powered by advanced natural language processing (NLP) techniques. This means that it can not only understand the words users type but also comprehend the context and intent behind their questions. It can intelligently navigate through the extensive ITS Ask Us database of articles, extracting the most pertinent information.

One of the remarkable features of our chatbot is its ability to go beyond the surface content of articles. It can synthesize information from multiple sources, ensuring that users receive comprehensive answers to their questions, even if the information is not explicitly stated in the articles themselves. This showcases the chatbot's nuanced understanding and its dedication to providing users with the most relevant information

User Guide

Landing Page: A Frequently Asked Questions (FAQs): On the landing page, users will find a section featuring 8 frequently asked questions displayed as cards. Each card provides a brief summary of the question, and users can click on any card to access more detailed information. Navigation: Users can easily navigate to specific sections or articles by clicking on the cards related to their questions of interest. This provides a quick and convenient way for users to access relevant information. Chatbot Integration: Additionally, the landing page includes integration with your chatbot. Users can initiate conversations with the chatbot directly from this page, allowing them to ask questions and receive instant assistance.

Chatbot Page: Interactive Chat Interface: The Chatbot Page serves as the main interaction hub between users and the chatbot. It features an interactive chat interface where users can type their questions and receive responses from the chatbot. Language Translation: If your chatbot offers language translation, you can highlight this feature on the Chatbot Page. Users can inquire about translations of articles or ask questions in their preferred language, and the chatbot will provide responses accordingly. User-Friendly Experience: Ensure that the chatbot page provides a user-friendly and intuitive chat interface. Users should feel comfortable and encouraged to ask questions, knowing that they will receive helpful responses. Helpful Prompts: Consider adding helpful prompts or suggestions to guide users in initiating conversations with the chatbot. These prompts can be related to common inquiries or actions users might want to take.

Info Sec Page: Resource Hub: The Infosec Page serves as a central resource hub where users can access essential information related to information security (ID resource). This section may include documents, guidelines, or links to resources that help users understand and implement security best practices. System Operational Status: Users can check the current operational status of systems or services. This information can be critical for users who rely on these systems for their work or tasks. Security Alerts: The Infosec Page provides a section dedicated to security alerts. Users can stay informed about any recent security vulnerabilities, threats, or incidents. It's essential for users to have easy access to this information to take necessary precautions. Scheduled Maintenance: This section informs users about upcoming scheduled maintenance activities. Users can plan their activities accordingly and avoid potential disruptions during maintenance periods. General Notices: The Infosec Page can also feature general notices or announcements related to information security and system updates. These notices may include important announcements, policy changes, or other relevant information.

History Page: List of Previous Chats: The primary function of this page is to display a chronological list of the user's previous chat sessions. Each session may be represented by a timestamp or date, making it easy for users to identify specific interactions. Message Transcripts: Users can click on individual chat sessions to view the message transcripts from those conversations. This allows users to see the questions they asked and the responses provided by the chatbot. Message transcripts provide a detailed record of past interactions.

Admin Page: List of Articles: The page provides administrators with a list of articles available in the system's database. This list allows administrators to view, edit, or manage articles as needed. It serves as a central repository of knowledge. Frequently Asked Questions (FAQs): Administrators can access and manage the list of frequently asked questions. This section allows them to add, edit, or remove FAQs as necessary, ensuring that the chatbot has up-to-date responses to common queries. Bar Graph for Chatbot Metrics: Weekly Frequency: A bar graph displays the weekly frequency of interactions with the chatbot. This graph helps administrators track trends in chatbot usage over time, identifying periods of increased or decreased activity. Average Response Time: Another bar graph shows the average response time of the chatbot for each week. This metric helps administrators assess the chatbot's performance in terms of response speed and efficiency. Startup Requirements Status: This section provides an overview of the system's startup requirements. Administrators can monitor the status of each requirement, ensuring that all necessary components are functioning correctly. It may include checks for server status, database connectivity, and other essential system components. Management Tools: Administrators have access to various management tools that allow them to perform tasks such as adding new articles, updating FAQs, and reviewing chatbot performance metrics.


Video Demonstration


Deployment

The AskUs chatbot is deployed on Digital Ocean. Access the live application

https://askuh.info

Community Feedback

We are interested in your experience using our Askus chatbot! If you would like, please take a couple of minutes to fill out the AskUH Feedback Form. It contains only five short questions and will help us understand how to improve the system.

Here are some feedback from the communities

On a scale of 1 to 5, how easy was it to interact with the chatbot and find the information you were looking for?

On a scale of 1 to 10, how likely are you to recommend the Ask Us AI chatbot to others, with 1 being not likely at all and 10 being extremely likely?

Developer Guide

Built With

  • Meteor
  • React
  • Bootstrap

Getting Started

Prerequisites

Install Meteor according to https://docs.meteor.com/install.html

Installation

  1. Get your OPENAI API Key at https://platform.openai.com/
  2. Clone the repo
  3. git clone https://github.com/HACC2023/Regex.git
  4. Cd into the app directory
  5. cd app
  6. Meteor install
  7. meteor npm install
  8. Enter rename sample.env to .env and enter your API in .env
  9. OPENAI_API_KEY=<PUT_YOUR_KEY_HERE>
  10. Make sure meteor starts up without errors.
  11. $ meteor npm run start

OpenAI API Key Environment Set Up

If you are using a bash shell, you can set your API key as an environment variable by running the following command in your terminal:

powershell
                    $env:OPENAI_API_KEY="<your key here>"
                    Write-Output $env:OPENAI_API_KEY

                    linux
                    echo "export OPENAI_API_KEY='<your key here>'" >> ~/.zshrc
                    source ~/.zshrc
                    echo $OPENAI_API_KEY

                    window
                    set OPENAI_API_KEY "<your key here>"
                    echo %OPENAI_API_KEY%
            

https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety

Unit Testing

meteor npm run testcafe

Unit testing is done using Experience testing meteor application template react

Development Milestones

Milestone 1

In Milestone 1, our project primarily focused on enhancing the chatbot's functionality. We diligently worked on developing the chatbot's capability to effectively understand and process user queries, implementing advanced natural language processing (NLP) algorithms to refine its responses, and seamlessly integrating it with external APIs and databases to ensure the delivery of accurate information. Simultaneously, we prioritized the robustness of the chatbot by conducting extensive testing and debugging to identify and rectify potential issues. We fortified the chatbot with robust error handling and fallback mechanisms to gracefully handle queries it couldn't address and ensured its adaptability to a diverse array of user inputs and scenarios. In parallel, we created mock-ups for the landing page and admin page, visualizing the user interface design concepts. We also engaged in usability testing, actively seeking user feedback on the chatbot's functionality and the initial page designs, laying a strong foundation for our project's future development phases.

Milestone 2

Milestone 2 represents a pivotal stage in our project's development, where we build upon the foundational work completed in Milestone 1. By expanding functionality, improving user accessibility, and introducing new features, we aim to deliver a more robust and user-friendly experience while maintaining a strong focus on performance and user satisfaction.

Milestone 3

In milestone 3, we worked on finalizing our code and cleaning up both the frontend and backend functionality, polishing everything as opposed to adding too many new features. We finished all elements of the website and fixed any bugs that had arisen, making sure that everything was working satisfactorily. The most notable changes lie in the chat history section, where users are now able to accurately retrieve their past conversations, depending on the user. We also documented most of the code in detail, making it easier for future developers, or ourselves later, to continue working on the codebase.

Contact The Team Members


Project Contract