Files

1 line
2.9 KiB
JSON

{"repo": "amritraj2001/project", "files": {".env": {"08d407969e008011063784a46cbb1937dfcab1ff": {"t": 1785674381.2798839, "n": 2687, "h": "5fa0255f34ee1d03", "c": "import streamlit as st\nimport os\nfrom langchain_groq import ChatGroq\nfrom langchain.text_splitter import RecursiveCharacterTextSplitter\nfrom langchain.chains.combine_documents import create_stuff_documents_chain\nfrom langchain_core.prompts import ChatPromptTemplate\nfrom langchain.chains import create_retrieval_chain\nfrom langchain_community.vectorstores import FAISS\nfrom langchain_community.document_loaders import PyPDFDirectoryLoader\n\n\nfrom dotenv import load_dotenv\nload_dotenv()\n## load the GROQ API Key\nos.environ['GROQ_API_KEY']=os.getenv(\"GROQ_API_KEY\")\ngroq_api_key=os.getenv(\"GROQ_API_KEY\")\n\n## If you do not have open AI key use the below Huggingface embedding\nos.environ['HF_TOKEN']=os.getenv(\"HF_TOKEN\")\n\nfrom langchain_huggingface import HuggingFaceEmbeddings\nembeddings=HuggingFaceEmbeddings(model_name=\"all-MiniLM-L6-v2\")\n\nllm=ChatGroq(groq_api_key=groq_api_key,model_name=\"Llama3-8b-8192\")\n\nprompt=ChatPromptTemplate.from_template(\n \"\"\"\n Answer the questions based on the provided context only.\n Please provide the most accurate respone based on the question\n <context>\n {context}\n <context>\n Question:{input}\n\n \"\"\"\n\n)\n\ndef create_vector_embedding():\n if \"vectors\" not in st.session_state:\n st.session_state.embeddings=HuggingFaceEmbeddings(model_name=\"all-MiniLM-L6-v2\")\n st.session_state.loader=PyPDFDirectoryLoader(\"research_papers\") ## Data Ingestion step\n st.session_state.docs=st.session_state.loader.load() ## Document Loading\n st.session_state.text_splitter=RecursiveCharacterTextSplitter(chunk_size=1000,chunk_overlap=200)\n st.session_state.final_documents=st.session_state.text_splitter.split_documents(st.session_state.docs[:50])\n st.session_state.vectors=FAISS.from_documents(st.session_state.final_documents,st.session_state.embeddings)\nst.title(\"RAG Document Q&A With Groq And Lama3\")\n\nuser_prompt=st.text_input(\"Enter your query from the research paper\")\n\nif st.button(\"Document Embedding\"):\n create_vector_embedding()\n st.write(\"Vector Database is ready\")\n\nimport time\n\nif user_prompt:\n document_chain=create_stuff_documents_chain(llm,prompt)\n retriever=st.session_state.vectors.as_retriever()\n retrieval_chain=create_retrieval_chain(retriever,document_chain)\n\n start=time.process_time()\n response=retrieval_chain.invoke({'input':user_prompt})\n print(f\"Response time :{time.process_time()-start}\")\n\n st.write(response['answer'])\n\n ## With a streamlit expander\n with st.expander(\"Document similarity Search\"):\n for i,doc in enumerate(response['context']):\n st.write(doc.page_content)\n st.write('------------------------')\n"}}}}