|
import gradio as gr |
|
from gradio_client import Client, handle_file |
|
import os |
|
|
|
|
|
|
|
HF_TOKEN = os.getenv("HF_TOKEN") |
|
|
|
|
|
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, |
|
|
|
client_name: str |
|
): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
answer = client.predict( |
|
query= message, |
|
election_year=client_name, |
|
api_name="/process_query" |
|
) |
|
|
|
|
|
print("Raw answer from API:") |
|
print(answer) |
|
|
|
|
|
return answer |
|
|
|
|
|
|
|
|
|
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(): |
|
|
|
year_selector = gr.Radio( |
|
choices=["2016 Election", "2024 Election", "Comparison two years"], |
|
label="Select Election Year", |
|
value="2016 Election" |
|
) |
|
|
|
query_input = gr.Textbox( |
|
label="Your Question", |
|
placeholder="Ask about election comments or posts..." |
|
) |
|
|
|
|
|
|
|
|
|
submit_btn = gr.Button("Submit") |
|
|
|
with gr.Column(): |
|
output = gr.Textbox( |
|
label="Response", |
|
lines=20 |
|
) |
|
|
|
|
|
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) |
|
|
|
|
|
|
|
|