Spaces:
Sleeping
Sleeping
from fastapi import FastAPI, File, UploadFile | |
import os | |
import shutil | |
from LoadLLM import Loadllm | |
import tempfile | |
from langchain_community.document_loaders import PyMuPDFLoader | |
from langchain_community.embeddings import HuggingFaceEmbeddings | |
from langchain_community.vectorstores import FAISS | |
from langchain.chains import ConversationalRetrievalChain | |
import google.generativeai as genai | |
GOOGLE_API_KEY = 'AIzaSyDlpiD80XQIPdQV-u1bhBlc0zW3QxZuaEQ' | |
genai.configure(api_key=GOOGLE_API_KEY) | |
model = genai.GenerativeModel('gemini-pro') | |
#response = model.generate_content(query) | |
#return response.text | |
DB_FAISS_PATH = 'vectorstore/db_faiss' | |
app = FastAPI() | |
async def home(): | |
return "API Server Running" | |
async def PromptLLM(file: UploadFile = File(...)): | |
with tempfile.NamedTemporaryFile(delete=False) as temp_file: # Create temporary file | |
temp_file_path = temp_file.name | |
with open(temp_file_path, 'wb') as f: | |
shutil.copyfileobj(file.file, f) | |
loader = PyMuPDFLoader(file_path= temp_file_path) | |
data = loader.load() | |
# Create embeddings using Sentence Transformers | |
embeddings = HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2') | |
# Create a FAISS vector store and save embeddings | |
db = FAISS.from_documents(data, embeddings) | |
db.save_local(DB_FAISS_PATH) | |
# Load the language model | |
# Load the language model | |
llm = Loadllm.load_llm() | |
# Create a conversational chain | |
chain = ConversationalRetrievalChain.from_llm(llm=llm, retriever=db.as_retriever()) | |
result = chain({"question": "Summarise this report", "chat_history": ''}) | |
summary = result['answer'] | |
response = model.generate_content(summary + "\nBased on the information provided, what are the key medical insights and considerations for this patient?(100 words)") | |
ans = {"summary": summary, "insights": response.text} | |
return ans | |