Spaces:
Runtime error
Runtime error
| from langchain_community.vectorstores import FAISS | |
| from langchain_core.documents import Document | |
| from langchain_nvidia_ai_endpoints import NVIDIAEmbeddings | |
| import os | |
| from google import genai | |
| from google.genai import types | |
| # Set up the Gemini API key | |
| import os | |
| def index_text(): | |
| os.environ["NVIDIA_API_KEY"] =os.getenv("NVIDIA_API_KEY") | |
| nvidia_embeddings = NVIDIAEmbeddings( | |
| model="nvidia/llama-3.2-nv-embedqa-1b-v2", | |
| truncate="NONE" | |
| ) | |
| vectorstore = FAISS.load_local("nvidia_faiss_index", embeddings=nvidia_embeddings,allow_dangerous_deserialization=True) | |
| return vectorstore | |
| def answer_query(query, vectorstore): | |
| RAG_TEMPLATE = """ | |
| #CONTEXT: | |
| {context} | |
| QUERY: | |
| {query} | |
| Use the provided context to answer the user query. Only use the provided context to answer the query. | |
| If you do not know the answer, or it's not contained in the provided context, respond with "I don't know". | |
| """ | |
| os.environ["GEMINI_API_KEY"] = os.getenv("GEMINI_API_KEY") | |
| client = genai.Client() | |
| # Get relevant documents | |
| retriever = vectorstore.as_retriever() | |
| search_results = retriever.invoke(query, k=2) | |
| # Combine context from retrieved documents | |
| context = " ".join([doc.page_content for doc in search_results]) | |
| # Build prompt | |
| prompt = RAG_TEMPLATE.format(context=context, query=query) | |
| # Generate response using Gemini | |
| response = client.models.generate_content( | |
| model="gemini-2.5-pro", | |
| contents=prompt, | |
| config=types.GenerateContentConfig(), | |
| ) | |
| return response.text | |