DEV Community

Akshay Keerthi
Akshay Keerthi

Posted on

Building a Productivity Assistant using Lyzr SDK

In our fast-paced world, staying productive can often be challenging. With numerous tasks to juggle and goals to achieve, finding the right balance can be overwhelming. Enter the Productivity Assistant, an innovative app designed to provide personalized tips and actionable advice tailored to your specific needs. Powered by Lyzr Automata and OpenAI’s GPT-4 Turbo, this app is here to help you overcome productivity challenges and achieve your goals efficiently. Let’s delve into how this app works and how you can make the most of it.

Image description

Why Use the Productivity Assistant?

The Productivity Assistant is designed to analyze your daily routine, identify productivity challenges, and provide customized recommendations to help you achieve your short-term and long-term goals. Whether you’re struggling with time management, motivation, or prioritization, this app offers practical advice that you can implement immediately to enhance your productivity.

Setting Up the Environment

To get started, we set up our environment using Streamlit and the Lyzr Automata SDK. Streamlit is a powerful framework for creating interactive web applications in Python, while Lyzr Automata provides tools for leveraging advanced AI models.

import streamlit as st
from lyzr_automata.ai_models.openai import OpenAIModel
from lyzr_automata import Agent, Task
from lyzr_automata.pipelines.linear_sync_pipeline import LinearSyncPipeline
from PIL import Image
from lyzr_automata.tasks.task_literals import InputType, OutputType
import os
Enter fullscreen mode Exit fullscreen mode

Setting the OpenAI API Key

To access the GPT-4 Turbo model, we need to set the OpenAI API key.

os.environ["OPENAI_API_KEY"] = st.secrets["apikey"]
Enter fullscreen mode Exit fullscreen mode

App Title and Introduction

We begin by setting the title of our app and providing a brief introduction to guide users on how to use the Productivity Assistant.

st.title("Productivity Assistant👨‍💻")
st.markdown("Welcome to Productivity Assistant! We provide personalized tips and actionable advice to help you overcome challenges and achieve your specific goals efficiently.")
st.markdown("1) Mention your daily routine.")
st.markdown("2) Mention the productivity challenges you face.")
st.markdown("3) Mention your goals (Short Term or Long Term) or any other milestones you want to achieve if any.")
input = st.text_input("Please enter the above details:", placeholder="Type here")
Enter fullscreen mode Exit fullscreen mode

Setting Up the OpenAI Model

We initialize the OpenAI model with specific parameters to generate personalized productivity advice based on user input.

open_ai_text_completion_model = OpenAIModel(
    api_key=st.secrets["apikey"],
    parameters={
        "model": "gpt-4-turbo-preview",
        "temperature": 0.2,
        "max_tokens": 1500,
    },
)
Enter fullscreen mode Exit fullscreen mode

Defining the Generation Function

This function uses the Lyzr Automata SDK to create an agent that provides personalized productivity tips based on the user’s daily routine, productivity challenges, and goals.

def generation(input):
    generator_agent = Agent(
        role="Expert PRODUCTIVITY ASSISTANT",
        prompt_persona="Your task is to offer PERSONALIZED PRODUCTIVITY TIPS and ACTIONABLE RECOMMENDATIONS tailored to an individual's DAILY ROUTINE, the PRODUCTIVITY CHALLENGES they encounter, and their GOALS—whether SHORT-TERM or LONG-TERM—or any other MILESTONES they aim to achieve.")
    prompt = """
[prompts here]
"""
    generator_agent_task = Task(
        name="Generation",
        model=open_ai_text_completion_model,
        agent=generator_agent,
        instructions=prompt,
        default_input=input,
        output_type=OutputType.TEXT,
        input_type=InputType.TEXT,
    ).execute()
    return generator_agent_task
Enter fullscreen mode Exit fullscreen mode

Button to Generate Productivity Advice

We add a button that triggers the generation of personalized productivity advice when clicked.

if st.button("Assist!"):
    solution = generation(input)
    st.markdown(solution)
Enter fullscreen mode Exit fullscreen mode

The Productivity Assistant is designed to provide you with practical, feasible, and personalized productivity tips and recommendations. By leveraging the power of Lyzr Automata and OpenAI’s GPT-4 Turbo, you can receive expert advice tailored to your unique circumstances, helping you overcome challenges and achieve your goals efficiently. Whether you’re looking to improve your time management, increase your motivation, or prioritize your tasks better, the Productivity Assistant is here to support you.

App link: https://assistant-lyzr.streamlit.app/

Source Code: https://github.com/isakshay007/productivity_assistant

The Productivity Assistant app is powered by the Lyzr Automata Agent, utilizing the capabilities of OpenAI’s GPT-4 Turbo. For any inquiries or issues, please contact Lyzr. You can learn more about Lyzr and their offerings through the following links:

Website: Lyzr.ai
Book a Demo: Book a Demo
Discord: Join our Discord community
Slack: Join our Slack channel

Top comments (0)