Vera-ZWY's picture
Update app.py
89661b3 verified
import gradio as gr
from gradio_client import Client, handle_file
import os
# Define your Hugging Face token (make sure to set it as an environment variable)
HF_TOKEN = os.getenv("HF_TOKEN") # Replace with your actual token if not using an environment variable
# Initialize the Gradio Client for the specified API
client = Client("mangoesai/Elections_Comparing_Agent_V2", hf_token=HF_TOKEN)
client_name = ['2016 Election','2024 Election', 'Comparison two years']
def stream_chat_with_rag(
message: str,
# history: list,
client_name: str
):
# print(f"Message: {message}")
# print(f"History: {history}")
# # Build the conversation prompt including system prompt and history
# conversation = f"For Client: {client_name}\n"
# # Add previous conversation history
# for user_input, assistant_response in history:
# conversation += f"User: {user_input}\nAssistant: {assistant_response}\n"
# # Add the current user message
# conversation += f"User: {message}\nAssistant:"
# # # Call the API with the user's process_query
# question = message
#answer = client.predict(question=question, api_name="/run_graph")
answer = client.predict(
query= message,
election_year=client_name,
api_name="/process_query"
)
# Debugging: Print the raw response
print("Raw answer from API:")
print(answer)
return answer
# Create Gradio interface
with gr.Blocks(title="Reddit Election Comments Analysis") as demo:
gr.Markdown("# Reddit Election Comments Analysis")
gr.Markdown("Ask questions about election-related comments and posts")
with gr.Row():
with gr.Column():
# Add election year selector
year_selector = gr.Radio(
choices=["2016 Election", "2024 Election", "Comparison two years"],
label="Select Election Year",
value="2016 Election" # Default value
)
query_input = gr.Textbox(
label="Your Question",
placeholder="Ask about election comments or posts..."
)
# context_input = gr.Textbox(
# label="Context (Optional)",
# value = "Looking for discussions about the election results in 2016" #default value
# )
submit_btn = gr.Button("Submit")
with gr.Column():
output = gr.Textbox(
label="Response",
lines=20
)
# Update submit button to include year selection
submit_btn.click(
fn=stream_chat_with_rag,
inputs=[query_input, year_selector],
outputs=output
)
gr.Markdown("""
## Example Questions:
- Is there any comments don't like the election results
- Summarize the main discussions about voting process
- What are the common opinions about candidates?
- How have people's attitudes toward the Republican Party changed in the past two years?
""")
if __name__ == "__main__":
demo.launch(share=True)