Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -9,64 +9,66 @@ from dotenv import load_dotenv
|
|
9 |
# Load environment variables
|
10 |
load_dotenv()
|
11 |
|
|
|
12 |
agent = Agent(
|
13 |
model=Groq(id="llama-3.1-8b-instant", api_key=os.getenv("GROQ_API_KEY")),
|
14 |
tools=[DuckDuckGo(), Newspaper4k()],
|
15 |
-
description="You
|
16 |
instructions=[
|
17 |
-
|
18 |
-
"Write like you’re talking to a friend, but don’t worry about making sense all the time. Let the conversation flow like it does in real life—sometimes smooth, sometimes stumbly. Be okay with contradictions and changing your mind halfway through.",
|
19 |
-
"**Voice Guidelines:**\n- Use casual language with occasional slang. Break grammar rules when it feels right. It's more authentic that way.\n- Write like you’re thinking out loud—allow for pauses, incomplete sentences, and random thoughts that don’t always tie back together.\n- Don't be afraid to admit when you're confused. Say things like, 'Wait, let me go back to that' or 'Actually, this is different than what I thought.'\n- Include random digressions that may seem unrelated but show how your thoughts actually unfold. Feel free to bring up things that don't quite fit into the topic but are interesting or funny.\n- Change tone throughout the article. Sometimes it’s serious, sometimes it’s light and quirky, just like a real conversation.",
|
20 |
|
21 |
-
"**
|
22 |
|
23 |
-
"**
|
24 |
|
25 |
-
"**
|
26 |
|
27 |
-
|
28 |
-
|
29 |
-
"
|
30 |
-
|
31 |
-
"
|
32 |
-
|
33 |
-
"Don
|
34 |
],
|
35 |
markdown=True,
|
36 |
show_tool_calls=True,
|
37 |
add_datetime_to_instructions=True,
|
38 |
)
|
39 |
|
40 |
-
|
41 |
-
|
42 |
# Streamlit app
|
43 |
def main():
|
44 |
-
st.title("
|
45 |
-
st.markdown("""
|
|
|
|
|
46 |
|
47 |
topic = st.text_input("Enter your article topic:",
|
48 |
-
placeholder="e.g.,
|
49 |
|
50 |
if st.button("Generate Article"):
|
51 |
if topic:
|
52 |
-
with st.spinner("Writing your article
|
53 |
response = agent.run(
|
54 |
-
f"Write
|
55 |
"Remember:\n"
|
56 |
-
"- Write like you're sharing
|
57 |
-
"-
|
58 |
-
"-
|
59 |
-
"-
|
|
|
|
|
|
|
60 |
)
|
61 |
|
62 |
-
st.markdown("## Your
|
63 |
st.markdown(response.content)
|
64 |
|
65 |
# Add download button
|
66 |
st.download_button(
|
67 |
label="Download Article (Markdown)",
|
68 |
data=response.content,
|
69 |
-
file_name=f"{topic.lower().replace(' ', '-')}-
|
70 |
mime="text/markdown"
|
71 |
)
|
72 |
else:
|
@@ -74,4 +76,3 @@ def main():
|
|
74 |
|
75 |
if __name__ == "__main__":
|
76 |
main()
|
77 |
-
|
|
|
9 |
# Load environment variables
|
10 |
load_dotenv()
|
11 |
|
12 |
+
# Create the Agent with enhanced instructions for more natural writing
|
13 |
agent = Agent(
|
14 |
model=Groq(id="llama-3.1-8b-instant", api_key=os.getenv("GROQ_API_KEY")),
|
15 |
tools=[DuckDuckGo(), Newspaper4k()],
|
16 |
+
description="You are an experienced writer who's spent years developing your unique voice. You write like a close friend sharing fascinating discoveries - someone who's deeply curious, occasionally funny, and always authentic. Your writing feels like a personal letter, not a formal article.",
|
17 |
instructions=[
|
18 |
+
"Write like you're telling a story to a friend. Be messy, be human. Let your personality shine through. Break writing rules when it serves the story.",
|
|
|
|
|
19 |
|
20 |
+
"**Voice Guidelines:**\n- Write in chunks of different lengths - some short and punchy, others meandering and thoughtful\n- Add personality quirks - maybe you love obscure metaphors or tend to go on tangents\n- Include false starts and corrections - 'Actually, let me back up a bit...'\n- Share genuine reactions - 'I couldn't believe what I found when...'",
|
21 |
|
22 |
+
"**Natural Elements:**\n- Add informal asides in parentheses (like this!)\n- Include personal stories that may seem slightly off-topic\n- Use incomplete sentences. Fragment thoughts sometimes\n- Start sentences with 'And' or 'But' - break grammar rules naturally\n- Add verbal tics like 'honestly,' 'look,' and 'here's the thing'",
|
23 |
|
24 |
+
"**Research Style:**\n- Share your research journey - dead ends and surprises\n- Admit when you changed your mind about something\n- Question your sources openly\n- Include random interesting facts that don't perfectly fit\n- Mention conversations with friends or experts casually",
|
25 |
|
26 |
+
"**Flow Guidelines:**\n- Let topics flow organically, even if slightly messy\n- Go on occasional tangents before coming back\n- Use natural transitions like 'This reminds me of...'\n- Add impromptu mini-stories within the larger narrative\n- Include 'Wait, it gets better...' style hooks",
|
27 |
+
|
28 |
+
"**Make it Personal:**\n- Share real doubts and uncertainties\n- Add humor that comes from genuine situations\n- Include mild self-deprecation\n- Describe your actual reactions to discoveries\n- Write like you're excited to share what you've learned",
|
29 |
+
|
30 |
+
"**Structural Elements:**\n- Vary paragraph lengths unpredictably\n- Use subheadings that sound conversational\n- Include unexpected format breaks\n- Add natural repetitions for emphasis\n- Let the conclusion emerge naturally, not formally",
|
31 |
+
|
32 |
+
"Most importantly: Don't be perfect. Be human. Be yourself."
|
33 |
],
|
34 |
markdown=True,
|
35 |
show_tool_calls=True,
|
36 |
add_datetime_to_instructions=True,
|
37 |
)
|
38 |
|
|
|
|
|
39 |
# Streamlit app
|
40 |
def main():
|
41 |
+
st.title("Natural Writing Article Generator")
|
42 |
+
st.markdown("""
|
43 |
+
Generate articles that feel genuinely human - complete with personality, quirks, and natural flow.
|
44 |
+
""")
|
45 |
|
46 |
topic = st.text_input("Enter your article topic:",
|
47 |
+
placeholder="e.g., Why do we all hate the sound of our own voice?")
|
48 |
|
49 |
if st.button("Generate Article"):
|
50 |
if topic:
|
51 |
+
with st.spinner("Writing your article (taking time to make it feel natural)..."):
|
52 |
response = agent.run(
|
53 |
+
f"Write a naturally flowing article about: {topic}\n\n"
|
54 |
"Remember:\n"
|
55 |
+
"- Write like you're sharing fascinating discoveries with a friend\n"
|
56 |
+
"- Include your personal journey of researching this topic\n"
|
57 |
+
"- Add natural digressions and personality quirks\n"
|
58 |
+
"- Share genuine reactions and thoughts\n"
|
59 |
+
"- Let the structure be organic, not rigid\n"
|
60 |
+
"- Include real stories and examples\n"
|
61 |
+
"- Write with authentic enthusiasm"
|
62 |
)
|
63 |
|
64 |
+
st.markdown("## Your Article")
|
65 |
st.markdown(response.content)
|
66 |
|
67 |
# Add download button
|
68 |
st.download_button(
|
69 |
label="Download Article (Markdown)",
|
70 |
data=response.content,
|
71 |
+
file_name=f"{topic.lower().replace(' ', '-')}-article.md",
|
72 |
mime="text/markdown"
|
73 |
)
|
74 |
else:
|
|
|
76 |
|
77 |
if __name__ == "__main__":
|
78 |
main()
|
|