from extract_text import extract_text_from_pdf from math_summarizer import generate_math_summary from nlp_summarizer import generate_nlp_summary_and_mindmap import json import openai import dotenv import time import os dotenv.load_dotenv() API_KEY = os.getenv("API_KEY") ACCESS_KEY = os.getenv("ACCESS_KEY") def create_client(api_key): client = openai.OpenAI( api_key=api_key, base_url="https://api.groq.com/openai/v1", ) return client def generate_summary(client, corpus): response = {} math_summary = generate_math_summary(corpus) if not math_summary: print("Error generating Math Summary") response["summary_status"] = "error" response["summary"] = None response["mindmap_status"] = "error" response["mindmap"] = None return response else: response = generate_nlp_summary_and_mindmap(client, corpus) return response def main(url, id, access_key): if access_key != ACCESS_KEY: return {"error": "Invalid Access Key", "summary": None, "mindmap": None} else: corpus = extract_text_from_pdf(url, id) start_time = time.time() client = create_client(API_KEY) response = generate_summary(client, corpus) print(f"Total timetaken: {time.time() - start_time} seconds") return json.dumps(response, indent=4, ensure_ascii=False) if __name__ == "__main__": url = "https://arxiv.org/pdf/2106.01484" id = "123" access_key = "1234" print(main(url, id, access_key))