Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -6,67 +6,73 @@ from phi.tools.newspaper4k import Newspaper4k
|
|
6 |
import os
|
7 |
from dotenv import load_dotenv
|
8 |
|
|
|
9 |
load_dotenv()
|
10 |
|
11 |
-
#
|
12 |
agent = Agent(
|
13 |
-
model=Groq(id="
|
14 |
tools=[DuckDuckGo(), Newspaper4k()],
|
15 |
-
description="You
|
16 |
instructions=[
|
17 |
-
"
|
18 |
|
19 |
-
"**
|
20 |
|
21 |
-
"**
|
22 |
|
23 |
-
"**
|
24 |
|
25 |
-
"**
|
26 |
|
27 |
-
"**
|
|
|
|
|
|
|
|
|
28 |
],
|
29 |
markdown=True,
|
30 |
-
show_tool_calls=
|
31 |
-
add_datetime_to_instructions=
|
32 |
)
|
33 |
|
|
|
34 |
def main():
|
35 |
-
st.title("
|
36 |
-
st.markdown("
|
|
|
|
|
37 |
|
38 |
-
topic = st.text_input("
|
39 |
-
placeholder="e.g.,
|
40 |
|
41 |
-
if st.button("
|
42 |
if topic:
|
43 |
-
with st.spinner("
|
44 |
response = agent.run(
|
45 |
-
f"
|
46 |
-
"
|
47 |
-
"-
|
48 |
-
"-
|
49 |
-
"-
|
50 |
-
"-
|
51 |
-
"-
|
52 |
-
"
|
53 |
-
"
|
54 |
-
"2. Research journey with obstacles\n"
|
55 |
-
"3. Tangent that circles back\n"
|
56 |
-
"4. Profound conclusion that undercuts itself"
|
57 |
)
|
58 |
|
59 |
-
st.markdown("##
|
60 |
st.markdown(response.content)
|
61 |
|
|
|
62 |
st.download_button(
|
63 |
-
label="Download
|
64 |
data=response.content,
|
65 |
-
file_name=f"
|
66 |
mime="text/markdown"
|
67 |
)
|
68 |
else:
|
69 |
-
st.warning("
|
70 |
|
71 |
if __name__ == "__main__":
|
72 |
main()
|
|
|
6 |
import os
|
7 |
from dotenv import load_dotenv
|
8 |
|
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:
|
75 |
+
st.warning("Please enter a topic.")
|
76 |
|
77 |
if __name__ == "__main__":
|
78 |
main()
|