Spaces:
Runtime error
Runtime error
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) | |