your-github-username
Auto-update from GitHub Actions
d9e62f5
raw
history blame
1.55 kB
import random
from src.data_ingestion import DataIngestion
from src.RAG import RetrievalModule
from src.AI_agent import ResearchAgent
from src.logger import logger
class ResearchBuddyPipeline:
def __init__(self, config):
self.config = config
self.ingestor = DataIngestion(self.config["api_url"])
self.retriever = RetrievalModule(self.config["embedding_model"], self.config["persist_dir"])
self.agent = ResearchAgent(self.config["summarizer_model"])
self.openers = [
"Hold my coffee, I’m diving into this!",
"Time to unleash my inner paper monster!",
"Buckle up, we’re raiding the research jungle!",
"Let’s crank this up to eleven—here we go!"
]
def process_query(self, topic, query):
opener = random.choice(self.openers)
logger.info(f"Processing query for topic: {topic}")
titles, abstracts = self.ingestor.fetch_papers(topic, self.config["max_results"])
if not abstracts:
return f"{opener}\n\nNo research found for '{topic}'. Try a different topic?"
summaries = self.agent.summarize_papers(abstracts)
self.retriever.build_vector_store(summaries)
relevant_papers = self.retriever.retrieve_relevant(query, k=self.config["top_k"])
if not relevant_papers:
return f"{opener}\n\nNo relevant results for '{query}'. Try refining your query?"
return f"{opener}\n\n" + self.agent.chat_response(None, relevant_papers, topic, query)