Spaces:
Running
Running
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://glhf.chat/api/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)) |