import streamlit as st # from src.helper import download_hugging_face_embeddings from langchain_pinecone import PineconeVectorStore from langchain_openai import OpenAI from langchain_google_genai import ChatGoogleGenerativeAI from langchain.chains import create_retrieval_chain from langchain.chains.combine_documents import create_stuff_documents_chain from langchain_core.prompts import ChatPromptTemplate from langchain_huggingface import HuggingFaceEmbeddings from src.prompt import * from dotenv import load_dotenv import os #Download the Embeddings from Hugging Face def download_hugging_face_embeddings(): embeddings=HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2') return embeddings # Load env Variables load_dotenv() PINECONE_API_KEY=os.environ.get('PINECONE_API_KEY') OPENAI_API_KEY=os.environ.get('OPENAI_API_KEY') GOOGLE_API_KEY= os.environ.get("GOOGLE_API_KEY") os.environ["PINECONE_API_KEY"] = PINECONE_API_KEY os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY os.environ["GOOGLE_API_KEY"] = GOOGLE_API_KEY # Embedding model embeddings = download_hugging_face_embeddings() # load exisiting pinecone index index_name = "yolotest" Vector_store = PineconeVectorStore.from_existing_index( index_name=index_name, embedding=embeddings ) # Retriever retriever = Vector_store.as_retriever(search_type="similarity", search_kwargs={"k":5}) # llm # llm = OpenAI(api_key=OPENAI_API_KEY, temperature=0, max_tokens=500) llm = ChatGoogleGenerativeAI(model="gemini-1.5-pro",temperature=0,max_tokens=None,timeout=None) # streamlit st.title("RAG Application built on Gemini Model") query = st.chat_input("Say something: ") prompt = query prompt = ChatPromptTemplate.from_messages( [ ("system", system_prompt), ("human", "{input}"), ] ) if query: question_answer_chain = create_stuff_documents_chain(llm, prompt) rag_chain = create_retrieval_chain(retriever, question_answer_chain) response = rag_chain.invoke({"input": query}) st.write(response["answer"])