Our April ToolJet Community Call was held in collaboration with Qdrant. During this call, we built a multilingual, AI-powered chat application for answering organization policy-related queries using RAG (Retrieval-Augmented Generation). The call started with a detailed overview of RAG and its evolution, followed by building a RAG application in ToolJet.

Here is the agenda:

  • ​Overview of Retrieval-Augmented Generation (RAG)
  • ​Building the Multi-Lingual Organisation Policy AI RAG Chat Application
    • ​Application Preview
    • ​Configuring the Qdrant Plugin in ToolJet
    • ​Chunking and Upserting Policy Data
    • ​Retrieving Data from Qdrant 
    • ​Generating Humanized Responses using OpenAI 
  • ​Closing Remarks

Here is the summary of the topics covered in the call.

Retrieval-Augmented Generation (RAG)

RAG is a technique that helps AI give better answers by looking things up before responding.

Instead of relying only on what it already knows (like most language models do), RAG searches a database or knowledge base to find the most relevant information. Next, it reads and combines that info with its own knowledge and then it generates a response based on both the retrieved information and its understanding of the question.

Illustration of how retrieval augmented generation works by taking ToolJet example

What is Qdrant?

When you give something like a document, image, or sentence to an AI model, it can turn that into a vector,  basically, a list of numbers that represent the meaning of that content.

Qdrant is a vector search engine. It stores these vectors in a vector database, and when you ask a question, it turns your question into a vector, finds the most similar vectors (i.e., content that matches your question in meaning), and returns the most relevant results quickly.

RAG evolution

Retrieval-Augmented Generation (RAG) has evolved through different stages to make AI smarter and more useful. Initially, RAG focused on retrieving relevant information and generating responses. Over time, it has grown into more advanced forms like Agentic RAG and MCP Server-powered RAG, each adding layers of reasoning, memory, and tool usage to improve how AI answers questions.

  • Basic RAG: Retrieves information once from a data source and generates a response based on it. It is simple and fast, but limited to direct queries.
  • Agentic RAG: Thinks like an agent, breaking tasks into steps, performing multiple searches, and reasoning through complex problems before answering.
  • MCP Server-powered RAG: Adds memory, control, and planning, allowing the AI to use tools, remember context, and plan actions like a mini decision-making system.

Building RAG application

In this session, we built a multilingual AI-powered RAG (Retrieval-Augmented Generation) chat application for company policies. Users can ask questions in different languages related to the company’s policies, and the app provides clear, concise, and contextual responses.

We used the Qdrant plugin as the vector database to store and search vector embeddings of the policy documents. OpenAI was used to generate embeddings and to provide human-like, contextual responses to user queries. ToolJet’s chat component handled user input and displayed responses, enabling an interactive chat experience.

Illustration of how Qdrant plugin can be used as a vector and OpenAI to generate human-like answers

We divided the app-building process into two parts: upserting and retrieval.

In the upserting phase, users start by entering the full company policy data into a text area component within the ToolJet application. This raw input is then processed using a JavaScript function executed through a RunJS query. The function breaks the policy content into smaller, manageable chunk. Each of these chunks is structured as a JavaScript object that includes two key pieces of information: a portion of the actual policy text and associated metadata, such as the section or category the chunk belongs to (e.g., “Leave Policy” or “Code of Conduct”). This metadata is important for providing contextual understanding later during retrieval.

Once the chunks are ready, they are sent to the OpenAI embedding model via a query, which generates vector embeddings. Finally, we create and run a Qdrant query using the “Upsert” operation to store all the generated embeddings into the Qdrant vector database. This prepares the knowledge base for efficient similarity-based searches in the retrieval phase, allowing the system to later find and return the most relevant policy content when a user asks a question.

Illustration showing the use of upsert operation to run a Quadrant query to create efficient knowledge base

In the retrieval phase, we begin by capturing the user’s question through the chat component. This question is then passed to an OpenAI query, which converts it into a vector embedding. We use this embedding to perform a similarity search in the Qdrant vector database, which holds the previously upserted policy data embeddings. To perform this search, we configured a Qdrant query using the “Query Points” operation, which returns the most relevant and contextually similar chunks of policy data based on the user’s question.

Once the relevant chunks are retrieved, we prepare the final input for the response generation step. This includes the user’s original question, the retrieved context, and the preferred response language selected from the UI. All of this is then passed to the OpenAI plugin, which generates a response in the desired language. The final response is then sent back and displayed within the chat component.

Illustration showing how retrieval works in generating the final input for the response generation step

Conclusion

This community call showcased how you can build a multilingual, AI-powered RAG chat application using ToolJet, OpenAI, and Qdrant, all without writing complex code. We walked through the full flow: from upserting policy data into a vector database to retrieving and generating contextual responses in real time. This session highlighted how easily internal tools and AI capabilities can be combined in ToolJet to solve real-world problems like company policy search. We hope this inspires you to explore more use cases with ToolJet’s powerful plugins and components. Thank you for joining us and we look forward to seeing what you build next!