|
import streamlit as st
|
|
import os
|
|
from dotenv import load_dotenv
|
|
from Agents.multi_agent import ResearchAgents
|
|
from data_loaders import DataLoader
|
|
|
|
load_dotenv()
|
|
|
|
st.title("π Virtual Research Assistant")
|
|
|
|
groq_api_key = os.getenv("GROQ_API_KEY")
|
|
if not groq_api_key:
|
|
st.error("GROQ_API_KEY is missing. Please set it in your environment variables.")
|
|
st.stop()
|
|
|
|
agents = ResearchAgents(groq_api_key)
|
|
data_loader = DataLoader()
|
|
|
|
query = st.text_input("Enter a research topic:")
|
|
|
|
if st.button("Search"):
|
|
with st.spinner("Fetching research papers..."):
|
|
arxiv_papers = data_loader.fetch_arxiv_papers(query)
|
|
all_papers = arxiv_papers
|
|
|
|
if not all_papers:
|
|
st.error("Failed to fetch papers. Try again!")
|
|
else:
|
|
processed_papers = []
|
|
|
|
for paper in all_papers:
|
|
summary = agents.summarize_paper(paper['summary'])
|
|
adv_dis = agents.analyze_advantages_disadvantages(summary)
|
|
|
|
processed_papers.append({
|
|
"title": paper["title"],
|
|
"link": paper["link"],
|
|
"summary": summary,
|
|
"advantages_disadvantages": adv_dis,
|
|
})
|
|
st.subheader("Top Research Papers:")
|
|
for i, paper in enumerate(processed_papers, 1):
|
|
st.markdown(f"### {i}. {paper['title']}")
|
|
st.markdown(f"π [Read Paper]({paper['link']})")
|
|
st.write(f"**Summary:** {paper['summary']}")
|
|
st.write(f"{paper['advantages_disadvantages']}")
|
|
st.markdown("---")
|
|
|