import sys from pathlib import Path import os sys.path.append(str(Path(__file__).resolve().parent.parent)) #print(sys.path) from typing import Any from fastapi import FastAPI, Request, APIRouter, Form from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates from fastapi.middleware.cors import CORSMiddleware from app.config import settings from app import __version__ from app.pyfiles import subject_gen from app.pyfiles import qa_gen import numpy as np import pandas as pd # from transformers import GPT2Tokenizer ,GPT2Model current_path = os.path.dirname(os.path.abspath(__file__)) # model = GPT2Model.from_pretrained("gpt2") # tokenizer = GPT2Tokenizer.from_pretrained("gpt2") # checkpoint1 = os.path.join(current_path, "pyfiles") # checkpoint = os.path.join(checkpoint1, "gpt_tokenizer") # model.save_pretrained(checkpoint) # tokenizer.save_pretrained(checkpoint) app = FastAPI( title=settings.PROJECT_NAME, openapi_url=f"{settings.API_V1_STR}/openapi.json" ) # To access Templates directory templates = Jinja2Templates(directory="app/templates") email_inp = None #################################### Home Page endpoints ################################################# @app.get("/") async def root(request: Request): return templates.TemplateResponse("index.html", {'request': request,}) @app.get("/email_input/") async def email_input_root(request: Request): return templates.TemplateResponse("email_input.html", {'request': request,}) @app.post("/subject_generation/") async def create_upload_files(request: Request , paragraphInput: str = Form(...)): print("hi im in subject gen", paragraphInput ) result = subject_gen.subject_gen_func(paragraphInput) print(result) if(len(result.split(""))>1): subject = result.split("")[1].replace("","") else : subject = "Please Try Again" return templates.TemplateResponse("subject_generation.html", {"request": request, "result":subject, "email":paragraphInput,}) ################################################################################################################### @app.get("/question_input/") async def question_input_root(request: Request): return templates.TemplateResponse("question_input.html", {'request': request,}) @app.post("/question_input/") async def question_awnser(request: Request , questionInput: str = Form(...)): # print("hi im in subject gen", paragraphInput ) result = qa_gen.question_awnser(questionInput) # print(result) answer = result # if(len(result)>1): # awnser = result # else : # awnser = "Please Try Again" # return templates.TemplateResponse("awnser_generation.html", {"request": request, # "result":awnser, # "question":questionInput,}) # Set all CORS enabled origins if settings.BACKEND_CORS_ORIGINS: app.add_middleware( CORSMiddleware, allow_origins=[str(origin) for origin in settings.BACKEND_CORS_ORIGINS], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Start app if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8001)