Unlocking the Power of SIMO: A Deep Dive into Intelligent Content Retrieval

Introduction

🔍 How many times have you wanted to find some content (mail, task, workflow...) within a system and started thinking at that moment: "When did I receive it.. maybe two months ago. 😕 I think it had OWIS in the title and..."?

🛑 Stop right there!!! 🛑

For SIMO, the intelligent chatbot within the OWIS system, that’s quite enough!

Just tell SIMO what you are looking for, exactly the way you are thinking or how you would tell a colleague: "I created a workflow maybe a month ago. It had, I think, the word ORKA in the title. Can you find it?" - that’s all it takes.

This is not just a search, this is a completely new way of extracting information from the system where you can retrieve analytics, summaries, reports, and all of that in a conversational manner.

Questions like:

  • How many workflows did I process last month?

  • How many days of annual leave have I used, and how many are left?

  • Give me an overview of the number of workflows processed by users

are Questions that SIMO adores and responds to in a split second.

In this blog post, we will unveil the technical intricacies that empower SIMO to deliver such precision and speed, offering a deep dive into a tool that’s as powerful as it is user-friendly.

How It Works

SIMO is powered by the cutting-edge Microsoft Semantic Kernel SDK and the OpenAI GPT-4 model, enabling it to understand and process natural language queries with unprecedented accuracy and speed.

SIMO is engineered with dual functionality to enhance user experience within the OWIS system. Its first role involves answering general questions about the system, its features, and functionalities. This is achieved through the implementation of the Retrieval Augmented Generation (RAG) pattern, where SIMO seamlessly integrates a knowledge database to provide accurate and instant responses. The second core function is its advanced search capability, designed to swiftly locate specific content within the OWIS system based on natural language queries. SIMO’s intelligence lies in its ability to discern the nature of the user’s query, determining whether to pull information from the knowledge database or initiate a system-wide search. This intuitive categorization is what sets SIMO apart, ensuring that users receive precise information tailored to their specific queries. How SIMO masters this intelligent discernment is a blend of technology and design, which we will explore in the next section.

Design

So, how does it all begin?

A user of the OWIS system opens the SIMO chat and asks a question.

As mentioned, the question can be a general one about OWIS, its features, and functionalities, such as:

  • How to add a document in OWIS

  • What are the categories in OWIS?

  • What is a workflow?

Or, the question can represent a content search in the OWIS system, like:

  •  How many workflows have I created this year?

  • On which workflow did I work yesterday?

  • Generate a summary of the number of created workflows by users.

  • What is the average time for invoice approval?

So, SIMO's first task is to determine what the user wants based on the question.

This is where the Microsoft Semantic Kernel SDK and the OpenAI GPT-4 model come into play.

Using the semantic kernel, we've created the first semantic function called "GetIntent" to determine the user's intent.

This function returns information about whether we need to perform a content search or if it's a general question about OWIS.

 If SIMO concludes that we need to perform a content search, we create a pipeline of three functions, as shown in the image below.

Simplifying Information Retrieval: How SIMO Empowers OWIS with Advanced Tech

The first function in the pipeline is the semantic function "GenerateQuery," and its main role is to generate an SQL query based on the user's query. This function contains information about the core tables of the OWIS database. With well-defined guidelines for query generation, this function generates an SQL query, and all we need to do is execute it on the database.

For example, for the user's prompt "Calculate the average time in minutes required to approve an invoice in the OWIS" the output of this semantic function is an SQL query that calculates the average time.

This output becomes input for the next function in the pipeline: "ExecuteQuery."

"ExecuteQuery" is a native function. This function executes the generated query and passes the result in the form of a JSON string to the last function, "GenerateResponse."

The output of the "ExecuteQuery" function for this example is: {"averageTimeInMinutes": "48"}.

The task of the last function, "GenerateResponse," is to generate a response to the user based on the initial question and the result of the executed query.

Based on these two parameters, this function generates a response to the user:

Response: The average time required to approve an invoice in the system is 48 minutes.

Previous
Previous

Enhancing business efficiency: Kickstarting workflow automation with OWIS Chatbot

Next
Next

How We Solved Complex Contract Creation Challenges with OWIS