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, history,vectorstore): | |
| os.environ["GEMINI_API_KEY"] = os.getenv("GEMINI_API_KEY") | |
| client = genai.Client() | |
| RAG_TEMPLATE = """ | |
| #CONTEXT: | |
| {context} | |
| Use the provided context to answer the user query. | |
| """ | |
| retriever = vectorstore.as_retriever() | |
| search_results = retriever.invoke(query, k=2) | |
| context = " ".join([doc.page_content for doc in search_results]) | |
| prompt = RAG_TEMPLATE.format(context=context, query=query) | |
| gemini_history = [] | |
| for msg in history: | |
| # The Gemini API uses 'model' for the assistant's role | |
| role = 'model' if msg['role'] == 'assistant' else 'user' | |
| gemini_history.append( | |
| types.Content(role=role, parts=[types.Part(text=msg['content'])]) | |
| ) | |
| chat = client.chats.create( | |
| model="gemini-2.0-flash", | |
| history=gemini_history, | |
| config=types.GenerateContentConfig( | |
| system_instruction=prompt) | |
| ) | |
| response=chat.send_message(message=query) | |
| return response.text |