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 | |