Writing is an essential part of our daily lives. Whether it's drafting emails, creating documents, or telling stories, we aim for clarity and accuracy. Yet, correcting errors with spell checkers can be challenging.
Enter AI proofreading, a fantastic tool designed to polish your text. Today, we'll explore simple code that uses AI to improve your writing, correcting grammar, spelling, punctuation, and formatting.
Problem Statement
Creating grammatically correct text is crucial but often difficult. Manual proofreading is time-consuming and can miss errors. This code uses Lyzr.ai to check and edit text, enhancing writing effectiveness.
Prerequisites
Before starting, you should understand Python programming and have access to the OpenAI API with an API key. Familiarity with installing and importing Python libraries and Lyzr.ai’s framework will also help.
Installing the Lyzr Automata Framework
pip install lyzr-automata
# For Google Colab or notebook
!pip install lyzr-automata
Code and Explanation
Let's break down the code step-by-step.
from lyzr_automata.ai_models.openai import OpenAIModel
from lyzr_automata import Agent, Task
from lyzr_automata.tasks.task_literals import InputType, OutputType
from lyzr_automata.pipelines.linear_sync_pipeline import LinearSyncPipeline
from lyzr_automata import Logger
API_KEY = input('Enter OpenAI API Key')
text = input('Enter the Text Here: ')
We start by importing necessary tools from the Lyzr.ai library and prompt the user for their OpenAI API key and text to proofread.
open_ai_model_text = OpenAIModel(
api_key=API_KEY,
parameters={
"model": "gpt-4-turbo-preview",
"temperature": 0.5,
"max_tokens": 1500,
},
)
We set up the AI model with the API key and parameters, controlling the AI’s behavior and response length.
def ai_proofreader(text):
ProofReader = Agent(
prompt_persona="""You are an expert proofreader who can find grammatical errors, and you excel at checking for grammar, spelling, punctuation, and formatting errors.""",
role="AI Proofreader",
)
rephrase_text = Task(
name="Rephrasing Text",
agent=ProofReader,
output_type=OutputType.TEXT,
input_type=InputType.TEXT,
model=open_ai_model_text,
instructions=f"Check the entire text: '{text}' and rephrase it according to grammar, spelling, punctuation, and formatting errors. [Important] Avoid introduction and conclusion in the response.",
log_output=True,
enhance_prompt=False,
default_input=text
)
remarks = Task(
name="Remarks",
agent=ProofReader,
output_type=OutputType.TEXT,
input_type=InputType.TEXT,
model=open_ai_model_text,
instructions=f"Check the entire text: '{text}' and provide remarks in bullet points according to grammar, spelling, punctuation, and formatting errors. [Important] Avoid introduction and conclusion in the response.",
log_output=True,
enhance_prompt=False,
default_input=text
)
logger = Logger()
main_output = LinearSyncPipeline(
logger=logger,
name="AI ProofReader",
completion_message="App Generated all things!",
tasks=[
rephrase_text,
remarks,
],
).run()
return main_output
We define a function called ai_proofreader
. Inside, we create an agent named ProofReader, acting as an expert proofreader. Two tasks are created: one for rephrasing text and another for providing remarks. Both tasks use the ProofReader agent and the AI model.
A logger monitors the process. We then establish a pipeline that sequentially executes the tasks, yielding corrected text and remarks.
generated_output = ai_proofreader(text=text)
rephrased_text = generated_output[0]['task_output']
remarks = generated_output[1]['task_output']
We call the function with the user’s text and get the rephrased text and remarks as outputs.
Sample Input
text = """ I Rajesh have 2+ years of experience in python developer,
I know to create backend applications,
I am seeking a new role for new learnings """
Output
"""
My name is Rajesh, and I possess over two years of experience as a Python developer.
I am skilled in creating backend applications and am currently seeking a new role to further my learning
- The phrase "I Rajesh have 2+ years of experience in python developer" should be corrected to "I, Rajesh, have over two years of experience as a Python developer." This correction addresses a punctuation issue (adding commas around "Rajesh"), a numerical expression ("2+" to "over two"), and clarifies the role ("in python developer" to "as a Python developer").
- "python" should be capitalized to "Python" to properly denote the programming language.
- The phrase "I know to create backend applications" could be more fluidly expressed as "I know how to create backend applications" or "I am skilled in creating backend applications" for clarity and grammatical correctness.
- The phrase "I am seeking a new role for new learnings" could be improved for clarity and professionalism. A better alternative might be "I am seeking a new role to further my learning" or "I am seeking a new role to continue my professional development."
- The entire passage could benefit from better punctuation and formatting for clarity and flow. For instance, using semicolons or periods to separate independent clauses can improve readability: "My name is Rajesh, and I possess over two years of experience as a Python developer; I am skilled in creating backend applications and am currently seeking a new role to further my learning."
- Consistency in tense and style would improve the professional tone of the passage.
"""
About Lyzr.ai
Lyzr.ai offers a low-code agent development kit for creating GenAI applications quickly. With this simple agent framework, you can build secure and reliable generative AI applications for various uses, including proofreading and writing.
References
For more information, visit Lyzr’s website, book a demo, or join the community channels on Discord and Slack.
- Lyzr Website
- Book a Demo
- Lyzr Community Channels: Discord, Slack
AI Proofreader: GitHub
Top comments (0)