DEV Community

Cover image for Simplify Event Planning with Lyzr’s QABot Agent: A Comprehensive Guide
Prajjwal Sule
Prajjwal Sule

Posted on

Simplify Event Planning with Lyzr’s QABot Agent: A Comprehensive Guide

Event planning requires meticulous organization and attention to detail, but managing attendee inquiries can be overwhelming. Enter "Event Planner by Lyzr" – an innovative tool designed to streamline event logistics through the advanced capabilities of Lyzr’s QABot Agent. This article explores how this application revolutionizes event planning, empowering organizers to address attendee questions and concerns efficiently.

Event Planner with Lyzr’s QABot Agent

Event Planner QnA harnesses the power of Lyzr’s QABot agent to respond promptly and accurately to attendee queries. Attendees can ask about schedules, locations, logistics, and more, ensuring they have the information they need for a seamless event experience.

Lyzr’s Approach to Application Development

Lyzr offers an agent-centric approach to rapidly developing LLM (Large Language Model) applications with minimal code and time investment. Even if you’re unfamiliar with the GenAI stack, Lyzr empowers you to effortlessly build your AI applications. It serves as the go-to solution for constructing GenAI apps without requiring an in-depth understanding of Generative AI.


Lyzr Question-Answering (QA) Bot | Lyzr Documentation

Welcome to the QABot module in Lyzr, your key to effortless question-answering on various documents. This module is built on the powerful Retrieval-Augmented Generation (RAG) model, enhancing your ability to extract valuable insights from PDF files and other document types.

favicon docs.lyzr.ai

Setting up the Project

Clone the "Event Planning Assistant" app repository.
Set up a virtual environment:

python3 -m venv venv
source venv/bin/activate
Enter fullscreen mode Exit fullscreen mode

Create an environment file named .env and add your OpenAI API key:

OPENAI_API_KEY = "Your_OpenAI_API_Key"
Enter fullscreen mode Exit fullscreen mode

Install the required dependencies

pip install lyzr streamlit docx2txt
Enter fullscreen mode Exit fullscreen mode

Project Structure

Event-Planning-Assistant

├── utils/
 ├── __init__.py
 └── utils.py

├── data/
 ├── __init__.py
 └── Event Planner Assistance.docx

├── app.py

├── README.md

├── .env

├── .gitignore

└── requirements.txt
Enter fullscreen mode Exit fullscreen mode

Data Directory

The data directory contains a document file titled “Event Planner Assistance.docx,” which acts as a template for the event planning application. Users can modify this document to align with the requirements of their events.

Utility Functions

The utils.py file contains essential utility functions for the application, such as get_files_in_directory to retrieve file paths within a directory.

import os


def get_files_in_directory(directory):
    files_list = []

    if os.path.exists(directory) and os.path.isdir(directory):
        for filename in os.listdir(directory):
            file_path = os.path.join(directory, filename)

            if os.path.isfile(file_path):
                files_list.append(file_path)

    return files_list
Enter fullscreen mode Exit fullscreen mode

Creating an Entry Point for the Application ‘app.py’

The entry point script imports necessary libraries and modules, sets up the environment variables, and initializes the application.

import os
from PIL import Image
import streamlit as st
from pathlib import Path
from utils import utils
from dotenv import load_dotenv; load_dotenv()
from lyzr import QABot

# replace this with your openai api key or create an environment variable for storing the key.
os.environ["OPENAI_API_KEY"] = os.getenv('OPENAI_API_KEY')
Enter fullscreen mode Exit fullscreen mode

Event Planning by QABot Agent

The event_planner_qa function sets up the Event Planner Question and Answer system using Lyzr’s QABot Agent. It retrieves relevant information from the document file and initializes the QABot agent.

def event_planner_qa():
    path = utils.get_files_in_directory('data')
    planner_qa = QABot.docx_qa(
        input_files=[Path(str(path[1]))]
    )

    return planner_qa
Enter fullscreen mode Exit fullscreen mode

file_checker() function is designed to check for files within the ‘data’ directory. This function is useful for verifying the existence and retrieving the paths of files stored in the specified directory.

def file_checker():
    file = []
    for filename in os.listdir('data'):
        file_path = os.path.join('data', filename)
        file.append(file_path)


    return file
Enter fullscreen mode Exit fullscreen mode

Initiating the Application

The application prompts users to ask questions about event planning. Upon submission, it queries the QABot agent and displays the response.

if __name__ == "__main__":
    file = file_checker()
    if file is not None:
        st.subheader('Plan your dream event!')
        question = st.text_input('Write you query')
        if st.button('Submit'):
            if question is not None:
                event_agent = event_planner_qa()
                response = event_agent.query(question)
                st.markdown('---')
                st.subheader('Response')
                st.write(response.response)
            else:
                st.warning("Ask question, don't keep it blank")
Enter fullscreen mode Exit fullscreen mode

Event Planner QnA operates by processing uploaded event documents using Lyzr’s powerful QABot agent. This backend automation saves time and ensures consistency in responses, even for complex questions.

References

For further exploration and engagement, visit Lyzr’s website, book a demo, or join the community channels on Discord and Slack.

This article provides a comprehensive guide for leveraging Lyzr’s QABot agent to simplify event planning processes, demonstrating the effectiveness of AI-driven solutions in managing attendee inquiries and optimizing event logistics.

Top comments (0)