AI-RESEARCHER-2024 commited on
Commit
035b1d4
·
verified ·
1 Parent(s): 1b01c3d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -17
app.py CHANGED
@@ -1,6 +1,8 @@
1
  import streamlit as st
2
  from PyPDF2 import PdfReader
3
  from io import BytesIO
 
 
4
  from langchain.text_splitter import RecursiveCharacterTextSplitter
5
  from langchain_google_genai import GoogleGenerativeAIEmbeddings
6
  from langchain_community.vectorstores import FAISS
@@ -8,17 +10,8 @@ from langchain_google_genai import ChatGoogleGenerativeAI
8
  from langchain.chains.question_answering import load_qa_chain
9
  from langchain.prompts import PromptTemplate
10
 
11
- # Hardcoded Gemini API keys (for fallback)
12
- API_KEYS = [
13
- "AIzaSyBYbyC4qCJoKxKR-r0oIn4SVqj4CfSdx4s",
14
- "AIzaSyBfvYURYVijTurxvFUyV3vZkCojpOAAnFk"
15
- ]
16
- current_key_index = -1
17
-
18
- def switch_api_key():
19
- global current_key_index
20
- current_key_index = (current_key_index + 1) % len(API_KEYS)
21
- return API_KEYS[current_key_index]
22
 
23
  def get_pdf_text(pdf_docs):
24
  text = ""
@@ -67,21 +60,28 @@ def main():
67
  st.header("Retrieval-Augmented Generation - Gemini 2.0")
68
  st.markdown("---")
69
 
70
- # STEP 1: Enter API key
71
  if "api_entered" not in st.session_state:
72
  st.session_state["api_entered"] = False
73
  if "pdf_processed" not in st.session_state:
74
  st.session_state["pdf_processed"] = False
75
 
 
 
76
  if not st.session_state["api_entered"]:
77
- user_api_key = st.text_input("Enter your Gemini API key", type="password")
78
- if st.button("Continue") and user_api_key:
79
- st.session_state["user_api_key"] = user_api_key
 
 
 
 
 
 
80
  st.session_state["api_entered"] = True
81
  st.experimental_rerun()
82
- st.stop()
83
 
84
- api_key = st.session_state.get("user_api_key", switch_api_key())
85
 
86
  # STEP 2: Upload PDF(s)
87
  if not st.session_state["pdf_processed"]:
 
1
  import streamlit as st
2
  from PyPDF2 import PdfReader
3
  from io import BytesIO
4
+ import os
5
+
6
  from langchain.text_splitter import RecursiveCharacterTextSplitter
7
  from langchain_google_genai import GoogleGenerativeAIEmbeddings
8
  from langchain_community.vectorstores import FAISS
 
10
  from langchain.chains.question_answering import load_qa_chain
11
  from langchain.prompts import PromptTemplate
12
 
13
+ # --- Get API key from environment variable (set in Hugging Face Secrets or .env file) ---
14
+ GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY", "")
 
 
 
 
 
 
 
 
 
15
 
16
  def get_pdf_text(pdf_docs):
17
  text = ""
 
60
  st.header("Retrieval-Augmented Generation - Gemini 2.0")
61
  st.markdown("---")
62
 
63
+ # STEP 1: Use API key from env or ask user
64
  if "api_entered" not in st.session_state:
65
  st.session_state["api_entered"] = False
66
  if "pdf_processed" not in st.session_state:
67
  st.session_state["pdf_processed"] = False
68
 
69
+ api_key = GOOGLE_API_KEY
70
+
71
  if not st.session_state["api_entered"]:
72
+ if not api_key:
73
+ user_api_key = st.text_input("Enter your Gemini API key", type="password")
74
+ if st.button("Continue") and user_api_key:
75
+ st.session_state["user_api_key"] = user_api_key
76
+ st.session_state["api_entered"] = True
77
+ st.experimental_rerun()
78
+ st.stop()
79
+ else:
80
+ st.session_state["user_api_key"] = api_key
81
  st.session_state["api_entered"] = True
82
  st.experimental_rerun()
 
83
 
84
+ api_key = st.session_state.get("user_api_key", "")
85
 
86
  # STEP 2: Upload PDF(s)
87
  if not st.session_state["pdf_processed"]: