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)