Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -7,7 +7,7 @@ import os
|
|
| 7 |
HF_TOKEN = os.getenv("HF_TOKEN") # Replace with your actual token if not using an environment variable
|
| 8 |
|
| 9 |
# Initialize the Gradio Client for the specified API
|
| 10 |
-
client = Client("mangoesai/
|
| 11 |
|
| 12 |
client_name = ['2016 Election','2024 Election', 'Comparison two years']
|
| 13 |
|
|
@@ -19,22 +19,8 @@ def stream_chat_with_rag(
|
|
| 19 |
client_name: str
|
| 20 |
):
|
| 21 |
# print(f"Message: {message}")
|
| 22 |
-
# print(f"History: {history}")
|
| 23 |
-
|
| 24 |
-
# # Build the conversation prompt including system prompt and history
|
| 25 |
-
# conversation = f"For Client: {client_name}\n"
|
| 26 |
-
|
| 27 |
-
# # Add previous conversation history
|
| 28 |
-
# for user_input, assistant_response in history:
|
| 29 |
-
# conversation += f"User: {user_input}\nAssistant: {assistant_response}\n"
|
| 30 |
-
|
| 31 |
-
# # Add the current user message
|
| 32 |
-
# conversation += f"User: {message}\nAssistant:"
|
| 33 |
-
|
| 34 |
-
# # # Call the API with the user's process_query
|
| 35 |
-
# question = message
|
| 36 |
#answer = client.predict(question=question, api_name="/run_graph")
|
| 37 |
-
answer = client.predict(
|
| 38 |
query= message,
|
| 39 |
election_year=client_name,
|
| 40 |
api_name="/process_query"
|
|
@@ -45,54 +31,72 @@ def stream_chat_with_rag(
|
|
| 45 |
print(answer)
|
| 46 |
|
| 47 |
|
| 48 |
-
return answer
|
| 49 |
|
| 50 |
|
| 51 |
|
| 52 |
# Create Gradio interface
|
| 53 |
-
with gr.Blocks(title="Reddit Election
|
| 54 |
-
gr.Markdown("# Reddit
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
gr.Markdown("Ask questions about election-related comments and posts")
|
| 56 |
-
|
| 57 |
with gr.Row():
|
| 58 |
with gr.Column():
|
| 59 |
-
# Add election year selector
|
| 60 |
year_selector = gr.Radio(
|
| 61 |
choices=["2016 Election", "2024 Election", "Comparison two years"],
|
| 62 |
label="Select Election Year",
|
| 63 |
-
value="2016 Election"
|
| 64 |
)
|
| 65 |
-
|
| 66 |
query_input = gr.Textbox(
|
| 67 |
label="Your Question",
|
| 68 |
placeholder="Ask about election comments or posts..."
|
| 69 |
)
|
| 70 |
-
|
| 71 |
-
# label="Context (Optional)",
|
| 72 |
-
# value = "Looking for discussions about the election results in 2016" #default value
|
| 73 |
-
# )
|
| 74 |
submit_btn = gr.Button("Submit")
|
| 75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
with gr.Column():
|
| 77 |
-
|
| 78 |
label="Response",
|
| 79 |
lines=20
|
| 80 |
)
|
| 81 |
-
|
| 82 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
submit_btn.click(
|
| 84 |
fn=stream_chat_with_rag,
|
| 85 |
inputs=[query_input, year_selector],
|
| 86 |
-
outputs=
|
| 87 |
)
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
## Example Questions:
|
| 91 |
-
- Is there any comments don't like the election results
|
| 92 |
-
- Summarize the main discussions about voting process
|
| 93 |
-
- What are the common opinions about candidates?
|
| 94 |
-
- How have people's attitudes toward the Republican Party changed in the past two years?
|
| 95 |
-
""")
|
| 96 |
|
| 97 |
if __name__ == "__main__":
|
| 98 |
demo.launch(share=True)
|
|
|
|
| 7 |
HF_TOKEN = os.getenv("HF_TOKEN") # Replace with your actual token if not using an environment variable
|
| 8 |
|
| 9 |
# Initialize the Gradio Client for the specified API
|
| 10 |
+
client = Client("mangoesai/Elections_Comparison_Agent_V3", hf_token=HF_TOKEN)
|
| 11 |
|
| 12 |
client_name = ['2016 Election','2024 Election', 'Comparison two years']
|
| 13 |
|
|
|
|
| 19 |
client_name: str
|
| 20 |
):
|
| 21 |
# print(f"Message: {message}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
#answer = client.predict(question=question, api_name="/run_graph")
|
| 23 |
+
answer, fig = client.predict(
|
| 24 |
query= message,
|
| 25 |
election_year=client_name,
|
| 26 |
api_name="/process_query"
|
|
|
|
| 31 |
print(answer)
|
| 32 |
|
| 33 |
|
| 34 |
+
return answer, fig
|
| 35 |
|
| 36 |
|
| 37 |
|
| 38 |
# Create Gradio interface
|
| 39 |
+
with gr.Blocks(title="Reddit Election Analysis") as demo:
|
| 40 |
+
gr.Markdown("# Reddit Public sentiment & Social topic distribution ")
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
gr.Markdown("# Reddit Election Posts/Comments Analysis")
|
| 45 |
gr.Markdown("Ask questions about election-related comments and posts")
|
| 46 |
+
|
| 47 |
with gr.Row():
|
| 48 |
with gr.Column():
|
|
|
|
| 49 |
year_selector = gr.Radio(
|
| 50 |
choices=["2016 Election", "2024 Election", "Comparison two years"],
|
| 51 |
label="Select Election Year",
|
| 52 |
+
value="2016 Election"
|
| 53 |
)
|
| 54 |
+
|
| 55 |
query_input = gr.Textbox(
|
| 56 |
label="Your Question",
|
| 57 |
placeholder="Ask about election comments or posts..."
|
| 58 |
)
|
| 59 |
+
|
|
|
|
|
|
|
|
|
|
| 60 |
submit_btn = gr.Button("Submit")
|
| 61 |
+
|
| 62 |
+
gr.Markdown("""
|
| 63 |
+
## Example Questions:
|
| 64 |
+
- Is there any comments don't like the election results
|
| 65 |
+
- Summarize the main discussions about voting process
|
| 66 |
+
- What are the common opinions about candidates?
|
| 67 |
+
""")
|
| 68 |
with gr.Column():
|
| 69 |
+
output_text = gr.Textbox(
|
| 70 |
label="Response",
|
| 71 |
lines=20
|
| 72 |
)
|
| 73 |
+
|
| 74 |
+
with gr.Row():
|
| 75 |
+
output_plot = gr.Plot(
|
| 76 |
+
label="Topic Distribution",
|
| 77 |
+
container=True, # Ensures the plot is contained within its area
|
| 78 |
+
elem_classes="topic-plot" # Add a custom class for styling
|
| 79 |
+
)
|
| 80 |
+
|
| 81 |
+
# Add custom CSS to ensure proper plot sizing
|
| 82 |
+
gr.HTML("""
|
| 83 |
+
<style>
|
| 84 |
+
.topic-plot {
|
| 85 |
+
min-height: 600px;
|
| 86 |
+
width: 100%;
|
| 87 |
+
margin: auto;
|
| 88 |
+
}
|
| 89 |
+
</style>
|
| 90 |
+
""")
|
| 91 |
+
|
| 92 |
+
# Update both outputs when submit is clicked
|
| 93 |
submit_btn.click(
|
| 94 |
fn=stream_chat_with_rag,
|
| 95 |
inputs=[query_input, year_selector],
|
| 96 |
+
outputs=[output_text, output_plot]
|
| 97 |
)
|
| 98 |
+
|
| 99 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 100 |
|
| 101 |
if __name__ == "__main__":
|
| 102 |
demo.launch(share=True)
|