Spaces:
Running
Running

Refactor summarizer functions to accept URL, ID, and access key; implement PDF text extraction
48f0f78
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 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 response |