DEV Community

Cover image for Building an Error Resolution App with Lyzr Automata,Streamlit and OpenAI
harshit-lyzr
harshit-lyzr

Posted on

Building an Error Resolution App with Lyzr Automata,Streamlit and OpenAI

In the realm of software development, encountering errors is inevitable. Whether you're a seasoned developer or just starting your coding journey, errors can be a source of frustration and time-consuming to resolve. However, what if there was a way to expedite the process of error resolution using cutting-edge technology?

Error Resolver using Lyzr Automata is a revolutionary application designed to streamline the process of fixing errors in code. Leveraging the power of Lyzr Automata, Streamlit for the user interface and OpenAI's advanced language models for error resolution, this app promises to make error debugging more efficient and less labor-intensive.
Join the Lyzr.ai Discord Server!

How It Works
The Error Resolver with Lyzr follows a simple yet powerful workflow:
User Input: Users provide the problematic code snippet along with the error they're encountering.
Resolution: The resolved solution is displayed to the user, guiding them through the debugging process.

Setting Up the Environment
Imports:

pip install lyzr_automata openai streamlit
Enter fullscreen mode Exit fullscreen mode
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 dotenv import load_dotenv
import os

load_dotenv()
api = os.getenv("OPENAI_API_KEY")
Enter fullscreen mode Exit fullscreen mode

Libraries from lyzr_automata: These libraries seem to be custom modules for working with AI models, agents, and tasks. Potentially related to a specific AI framework.
dotenv and os for environment variable handling (to store the OpenAI API key securely).
load_dotenv() is called to load environment variables from a .env file (likely containing your OpenAI API key).
api = os.getenv("OPENAI_API_KEY") retrieves the API key from the environment variable.

OpenAI Model Configuration:
Enter fullscreen mode Exit fullscreen mode
open_ai_text_completion_model = OpenAIModel(
    api_key=api,
    parameters={
        "model": "gpt-4-turbo-preview",
        "temperature": 0.2,
        "max_tokens": 1500,
    },
)
Enter fullscreen mode Exit fullscreen mode

open_ai_text_completion_model is created using the OpenAIModel class, likely from lyzr_automata.
It's provided with your API key and sets parameters for the AI model:
"model": "gpt-4-turbo-preview" specifies the AI model to use (likely a large language model from OpenAI).
"temperature": 0.2" controls the randomness of the generated text (lower value means less random).
"max_tokens": 1500" sets the maximum number of words the model can generate.

Agent:

bug_fixing_agent = Agent(
    role="Bug Fixing expert",
    prompt_persona=f"You are a Software developer and You are an expert at bug fixing"
)
Enter fullscreen mode Exit fullscreen mode

Defines an Agent (bug_fixing_agent) with the role "Bug Fixing expert" and sets the prompt persona to describe the agent's expertise.

Task:

bug_fixing_task = Task(
    name="Bug Fixing Task",
    model=open_ai_text_completion_model,
    agent=bug_fixing_agent,
    log_output=True,
    instructions=f"""I am getting the error {tech} from the following snippet of code: {system}. How can I fix it?
    """
)
Enter fullscreen mode Exit fullscreen mode

Defines a Task (bug_fixing_task) with the following properties:
Name: "Bug Fixing Task"
Model: The open_ai_text_completion_model object
Agent: The bug_fixing_agent object
Log output: Set to True to record model output
Instructions: A formatted string describing the error and providing the code snippet.

Running the Pipeline:

if st.button("Resolve"):
    output = LinearSyncPipeline(
        name="Bug Fixing Pipeline",
        completion_message="Bug Fixed!!",
        tasks=[
            bug_fixing_task
        ],
    ).run()

    st.markdown(output[0]['task_output'])
Enter fullscreen mode Exit fullscreen mode

Creates a button labeled "Resolve" using st.button.
Clicking the button triggers the LinearSyncPipeline (output = LinearSyncPipeline(...)).
This pipeline defines a name ("Bug Fixing Pipeline"), completion message ("Bug Fixed!!"), and a list of tasks containing the bug_fixing_task.
The run() method executes the tasks sequentially.
The pipeline output (output) is retrieved. It's likely a list containing dictionaries with task information and potentially generated responses.
Finally, the first element's (output[0]) task output ('task_output') is displayed as markdown using st.markdown. This will show the AI-generated response containing the suggested bug fix.

try it now: https://lyzr-error-resolver.streamlit.app/
For more information explore the website: Lyzr

Lyzr AI: The Simplest Agent Framework to Build GenAI Apps Faster

Lyzr is the simpler alternative to Langchain. Build LLM apps faster in the 'agentic' way instead of using complex functions and chains.

favicon lyzr.ai

Top comments (0)