Research_Bot / app.py
singhvaibhav924's picture
Prompts Updated
c83f530
raw
history blame contribute delete
No virus
2.08 kB
import uvicorn
import helper
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from typing import List
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"]
)
class RequestData(BaseModel):
abstract: str
words: int
papers: int
class ResponseData(BaseModel):
summary: str
ids: List[str]
base_prompt = """
Write a related work section for a scientific paper based on the following abstract and references. Your output should:
1. Introduce the topic (1 sentence)
2. Summarize key related works (3-4 sentences)
3. Compare and contrast approaches (2-3 sentences)
4. Connect to the proposed work (1-2 sentences)
Use [1], [2], etc. to cite references. Do not copy text directly. Be concise and coherent.
Abstract: {abstract}
References:
{references}
Write the related work section:
"""
sentence_plan = """
1. Introduction sentence (1 sentence)
2. Overview of relevant studies (2-3 sentences, cite [1], [2])
3. Detailed discussion on key papers (4-5 sentences, cite [3], [4], [5], if present)
4. Summary of related work and connection to proposed approach (2 sentences, cite remaining papers, if present)
"""
@app.post("/generateLiteratureSurvey/", response_model=ResponseData)
async def generate_literature_survey(request_data: RequestData):
summary, ids = summarize(request_data.abstract, request_data.words, request_data.papers)
return {"summary": summary,
"ids": ids
}
@app.get("/")
async def root():
return {"status": 1}
def summarize(query, n_words, n_papers) :
keywords = helper.extract_keywords(query)
papers = helper.search_papers(keywords, n_papers*2)
ranked_papers = helper.re_rank_papers(query, papers, n_papers)
literature_review, ids = helper.generate_related_work(query, ranked_papers, base_prompt, sentence_plan, n_words)
return literature_review, ids
if __name__ == '__main__':
print("Program running")
uvicorn.run(app)