by Michael Miranda and Troy Miranda on 20231115
small, strong, and smartmenehune is an assistant that provides students, employees, and faculty information about the University of Hawaii before and as you need it.
This prototype version of this application specializes in UH Information Technology Services support and UH Information Security Policies.
menehune is an extension (Google Chrome) to your web browser that constantly monitors what you are viewing. menehune is tuned to look for specific keywords in the pages called "special text". The "special text" is associated with a specially crafted Google AI prompt relevant to "hawaii.edu" webpage the user is viewing. That prompt is automatically sent to the Google AI service (Seach and Conversation). Google AI summarizes a response from the database of UH ITS AskUS webpages and UH information security policies. The AI-generated summary response and citations to relevant documents are returned and displayed in the web browser extension. Here is the current sample list of "specialText" and the correlating prompts:
const textPrompts = {
items: [
{
specialText: "Sorry, you entered an invalid UH username or password",
prompt: "I forgot my laulima password"
},
{
specialText: "duo_form",
prompt: "What is DUO and MFA"
},
{
specialText: "mfa",
prompt: "What is MFA"
},
{
specialText: "duo",
prompt: "What is DUO"
},
{
specialText: "Welcome to Laulima",
prompt: "what is laulima"
},
{
specialText: "credit card",
prompt: "is uh pci compliant?"
},
{
specialText: "gmail",
prompt: "how do i use gmail"
},
// Add more objects as needed
]
Watch this video to see it in action. (NOTE: The videos are also available in the assets folder in the repository). At the beginning of the video, you can see prompts being manually input in the text box and sent to the Google AI API. Responses are returned accodingly. Later, you see AI prompts being sent automatically in the background to the Google AI API based on the content viewed. For example:
- Upon visiting the Laulima page, menehune automatically sent a prompt "What is laulima" to the Google AI API (which is seeded by UH AskUS and infosec policy documents).
- When a login to to Laulima failed, menehuyne automatically sent a prompt "I forgot my laulima password" to the Google AI API which generated relevant summaries and responses.
- When the user visited a page with "credit card" in the page, menehune automatically sent a prompt "is uh pci compliant?" to the Google AI API to generate relevant summaries and links to relevant policies.
- I want direct answers. I know I am talking to a machine. Just give me relevant results and don't simulate a human.
- The assistant needs to provide answers automatically as much as possible. I am not interested in conversing or having to develop the "right" question to get the "right" answer.
- I really don't want to call anyone.
- Detect what's wrong and give me a reason or solution.
Google AI API (Search and Conversation) was used to ensure responses were limited to the information in the specific data provided: UH AskUS files and information security policies. All results needed to be UH specific and not bring in other resources not directly from UH. We had tested Microsoft's Power Virtual Agents and ChatBots. The Google AI API was slightly simpler to use in this short amount of time specifically relating to authentication and permissions. Microsoft's tool would likely be more appropriate for an enterprise heavily invested in the Microsoft 365 cloud services.
During testing, it was clear that generative AI/LLMs are not 100% accurate. Developing a good prompt is key to reaping the benefits of this technology. However, users are generally not interested in developing prompt skills. Therefore, it is up to the menehune developers to identify key content in web pages and develop a relevant prompt to submit to the AI to develop summaries and cite relevant resources. This human layer between the user and the AI is necessary to alleviate the burden on the user to develop/write prompts. The user still has the option to type in their own prompt. However, the "prompt engineering" should alleviate most needs for a user to write their own.
- Download the menehune folder with all its files.
- Open your Google Chrome browser and go to "chrome://extensions"
- Add the Supersonic Legends profile to the Chrome browser using the email: menehune.hacc@gmail.com (the password will be provided by Slack direct message to Tiger Li). Ensure you are logged into the menehune.hacc@gmail.com account by going to Gmail.
- At the top right of the page, turn on "Developer Mode" by moving the switch to the right.
- Click on the "Load Unpacked" button at the top left.
- Select the menehune directory of files you downloaded.
- In the "My Extensions" page, the menehune extension should be listed.
- Open the menehune extension by clicking on the browser's side panel icon at the top right. Once the side panel is visible, select the menehune item from the drop-down menu. The menehune application should be visible at this point.
View this Installation Video. (NOTE: The videos are also available in the assets folder in the repository).
- Google API Rate Limits: Due to the level of subscription, requests to the Google API are limited and when they are exceeded, responses will not be returned. If you make too many requests to the API in a minute, it is stops returning results. Therefore, wait at least five (5) seconds in between requests to ensure the rate limit is not hit. You can verify that the rate limit is the reason for the lack of responses by pointing your browser to "chrome://extensions" and viewing the "Errors" in the menehune extension.
- Sometimes, the prompt in the AskUs text area (where you input the prompt) is not refreshed when responses are updated. This usually happens with the prompts sent in the background when a page is refreshed (versus when you manually press on the AskUs button). It does not impact the results.
- This is limited to hawaii.edu content viewed in the Chrome browser. This application will not monitor any other application or content.