Spaces:
Sleeping
Sleeping
Added functionality to detect missing keys
Browse files- helpers.py +31 -7
helpers.py
CHANGED
|
@@ -20,11 +20,31 @@ from langchain.text_splitter import RecursiveCharacterTextSplitter
|
|
| 20 |
from langchain.vectorstores import Pinecone
|
| 21 |
from langchain_openai import OpenAIEmbeddings
|
| 22 |
from langchain_openai import OpenAI
|
| 23 |
-
from langchain import hub
|
| 24 |
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
|
| 30 |
def file_uploader() -> List[Document]:
|
|
@@ -107,7 +127,11 @@ def upload_button(documents: List[Document], vector_store: Pinecone):
|
|
| 107 |
self.message = message
|
| 108 |
super().__init__(self.message)
|
| 109 |
|
| 110 |
-
if st.sidebar.button(
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
|
| 112 |
try:
|
| 113 |
if documents is None:
|
|
@@ -155,14 +179,14 @@ def match_resumes(job_description: str, vector_store: Pinecone):
|
|
| 155 |
|
| 156 |
class NoResults(Exception):
|
| 157 |
"""
|
| 158 |
-
A custom exception for when
|
| 159 |
"""
|
| 160 |
def __init__(self, message = 'No matched results found'):
|
| 161 |
self.message = message
|
| 162 |
super().__init__(self.message)
|
| 163 |
|
| 164 |
try:
|
| 165 |
-
if st.button('Match resumes'):
|
| 166 |
with st.status("Fetching matching resumes...", expanded=True):
|
| 167 |
|
| 168 |
if job_description == '':
|
|
|
|
| 20 |
from langchain.vectorstores import Pinecone
|
| 21 |
from langchain_openai import OpenAIEmbeddings
|
| 22 |
from langchain_openai import OpenAI
|
|
|
|
| 23 |
|
| 24 |
+
def check_missing_keys():
|
| 25 |
+
try:
|
| 26 |
+
|
| 27 |
+
st.session_state.KEYS_ARE_MISSING = False
|
| 28 |
+
|
| 29 |
+
keys = {
|
| 30 |
+
"OpenAI": os.getenv("OPENAI_API_KEY"),
|
| 31 |
+
"Pinecone": os.getenv("PINECONE_API_KEY")
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
missing_keys = []
|
| 35 |
+
for key, value in keys.items():
|
| 36 |
+
if not value:
|
| 37 |
+
missing_keys.append(key)
|
| 38 |
+
|
| 39 |
+
if len(missing_keys) > 0:
|
| 40 |
+
st.session_state.KEYS_ARE_MISSING = True
|
| 41 |
+
raise KeyError(f"Missing required API keys: {', '.join(missing_keys)}")
|
| 42 |
+
|
| 43 |
+
except KeyError as e:
|
| 44 |
+
st.error(e)
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
|
| 48 |
|
| 49 |
|
| 50 |
def file_uploader() -> List[Document]:
|
|
|
|
| 127 |
self.message = message
|
| 128 |
super().__init__(self.message)
|
| 129 |
|
| 130 |
+
if st.sidebar.button(
|
| 131 |
+
'Store to the Database',
|
| 132 |
+
key='vector-store',
|
| 133 |
+
disabled=st.session_state.KEYS_ARE_MISSING
|
| 134 |
+
):
|
| 135 |
|
| 136 |
try:
|
| 137 |
if documents is None:
|
|
|
|
| 179 |
|
| 180 |
class NoResults(Exception):
|
| 181 |
"""
|
| 182 |
+
A custom exception for when there no results retrieved.
|
| 183 |
"""
|
| 184 |
def __init__(self, message = 'No matched results found'):
|
| 185 |
self.message = message
|
| 186 |
super().__init__(self.message)
|
| 187 |
|
| 188 |
try:
|
| 189 |
+
if st.button('Match resumes', disabled=st.session_state.KEYS_ARE_MISSING):
|
| 190 |
with st.status("Fetching matching resumes...", expanded=True):
|
| 191 |
|
| 192 |
if job_description == '':
|