Spaces:
Running
Running
Commit
·
6965e7c
1
Parent(s):
582e440
Major update. Support for 15 LLMs, World Flora Online taxonomy validation, geolocation, 2 OCR methods, significant UI changes, stability improvements, consistent JSON parsing
Browse files- app.py +1 -1
- vouchervision/API_validation.py +14 -7
- vouchervision/utils_VoucherVision.py +10 -3
app.py
CHANGED
|
@@ -1468,7 +1468,7 @@ def check_api_key_status():
|
|
| 1468 |
except:
|
| 1469 |
cfg_private = None
|
| 1470 |
|
| 1471 |
-
API_Validator = APIvalidation(cfg_private, st.session_state.dir_home)
|
| 1472 |
present_keys, missing_keys, date_of_check = API_Validator.report_api_key_status() # Assuming this function returns two lists
|
| 1473 |
|
| 1474 |
# Prepare annotations for present keys
|
|
|
|
| 1468 |
except:
|
| 1469 |
cfg_private = None
|
| 1470 |
|
| 1471 |
+
API_Validator = APIvalidation(cfg_private, st.session_state.dir_home, st.session_state['is_hf'])
|
| 1472 |
present_keys, missing_keys, date_of_check = API_Validator.report_api_key_status() # Assuming this function returns two lists
|
| 1473 |
|
| 1474 |
# Prepare annotations for present keys
|
vouchervision/API_validation.py
CHANGED
|
@@ -14,9 +14,10 @@ from googleapiclient.discovery import build
|
|
| 14 |
|
| 15 |
class APIvalidation:
|
| 16 |
|
| 17 |
-
def __init__(self, cfg_private, dir_home) -> None:
|
| 18 |
self.cfg_private = cfg_private
|
| 19 |
self.dir_home = dir_home
|
|
|
|
| 20 |
self.formatted_date = self.get_formatted_date()
|
| 21 |
|
| 22 |
def get_formatted_date(self):
|
|
@@ -94,7 +95,7 @@ class APIvalidation:
|
|
| 94 |
# return False
|
| 95 |
|
| 96 |
def check_azure_openai_api_key(self):
|
| 97 |
-
if self.
|
| 98 |
try:
|
| 99 |
# Initialize the Azure OpenAI client
|
| 100 |
model = AzureChatOpenAI(
|
|
@@ -145,7 +146,7 @@ class APIvalidation:
|
|
| 145 |
|
| 146 |
def check_mistral_api_key(self):
|
| 147 |
try:
|
| 148 |
-
if self.
|
| 149 |
client = MistralClient(api_key=self.cfg_private['mistral']['mistral_key'])
|
| 150 |
else:
|
| 151 |
client = MistralClient(api_key=os.getenv('MISTRAL_API_KEY'))
|
|
@@ -179,6 +180,10 @@ class APIvalidation:
|
|
| 179 |
# temp_filename = temp.name
|
| 180 |
|
| 181 |
# return temp_filename
|
|
|
|
|
|
|
|
|
|
|
|
|
| 182 |
|
| 183 |
# def init_google_client(opt, opt2):
|
| 184 |
# # Fetch the credentials JSON string from Hugging Face Secrets
|
|
@@ -197,7 +202,7 @@ class APIvalidation:
|
|
| 197 |
|
| 198 |
def check_google_vertex_genai_api_key(self):
|
| 199 |
results = {"palm2": False, "gemini": False}
|
| 200 |
-
if self.
|
| 201 |
try: # Local
|
| 202 |
# Assuming genai and vertexai are clients for Google services
|
| 203 |
# os.environ["GOOGLE_API_KEY"] = self.cfg_private['google_palm']['google_palm_api']
|
|
@@ -238,13 +243,15 @@ class APIvalidation:
|
|
| 238 |
# os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = self.get_google_credentials()
|
| 239 |
# client, credentials = self.init_google_client('gemini-pro', 'v1')
|
| 240 |
# print(credentials)
|
|
|
|
| 241 |
palm_api_key = os.getenv('PALM_API_KEY')
|
| 242 |
google_project_id = os.getenv('GOOGLE_PROJECT_ID')
|
| 243 |
google_location = os.getenv('GOOGLE_LOCATION')
|
| 244 |
os.environ['GOOGLE_API_KEY'] = os.getenv('PALM_API_KEY')
|
| 245 |
-
vertexai.init(project=os.getenv('GOOGLE_PROJECT_ID'), location=os.getenv('GOOGLE_LOCATION'))
|
| 246 |
# genai.configure(api_key=palm_api_key)
|
| 247 |
# vertexai.init(project=google_project_id, location=google_location)#, credentials=credentials)
|
|
|
|
| 248 |
|
| 249 |
try:
|
| 250 |
model = TextGenerationModel.from_pretrained("text-bison@001")
|
|
@@ -283,11 +290,11 @@ class APIvalidation:
|
|
| 283 |
print(f"Immediate [{e}]")
|
| 284 |
return results
|
| 285 |
|
| 286 |
-
def report_api_key_status(self):
|
| 287 |
missing_keys = []
|
| 288 |
present_keys = []
|
| 289 |
|
| 290 |
-
if self.
|
| 291 |
k_OPENAI_API_KEY = self.cfg_private['openai']['OPENAI_API_KEY']
|
| 292 |
k_openai_azure = self.cfg_private['openai_azure']['api_version']
|
| 293 |
k_google_palm_api = self.cfg_private['google_palm']['google_palm_api']
|
|
|
|
| 14 |
|
| 15 |
class APIvalidation:
|
| 16 |
|
| 17 |
+
def __init__(self, cfg_private, dir_home, is_hf) -> None:
|
| 18 |
self.cfg_private = cfg_private
|
| 19 |
self.dir_home = dir_home
|
| 20 |
+
self.is_hf = is_hf
|
| 21 |
self.formatted_date = self.get_formatted_date()
|
| 22 |
|
| 23 |
def get_formatted_date(self):
|
|
|
|
| 95 |
# return False
|
| 96 |
|
| 97 |
def check_azure_openai_api_key(self):
|
| 98 |
+
if not self.is_hf:
|
| 99 |
try:
|
| 100 |
# Initialize the Azure OpenAI client
|
| 101 |
model = AzureChatOpenAI(
|
|
|
|
| 146 |
|
| 147 |
def check_mistral_api_key(self):
|
| 148 |
try:
|
| 149 |
+
if not self.is_hf:
|
| 150 |
client = MistralClient(api_key=self.cfg_private['mistral']['mistral_key'])
|
| 151 |
else:
|
| 152 |
client = MistralClient(api_key=os.getenv('MISTRAL_API_KEY'))
|
|
|
|
| 180 |
# temp_filename = temp.name
|
| 181 |
|
| 182 |
# return temp_filename
|
| 183 |
+
def get_google_credentials(self):
|
| 184 |
+
creds_json_str = os.getenv('GOOGLE_SERVICE_ACCOUNT_JSON')
|
| 185 |
+
credentials = service_account.Credentials.from_service_account_info(json.loads(creds_json_str))
|
| 186 |
+
return credentials
|
| 187 |
|
| 188 |
# def init_google_client(opt, opt2):
|
| 189 |
# # Fetch the credentials JSON string from Hugging Face Secrets
|
|
|
|
| 202 |
|
| 203 |
def check_google_vertex_genai_api_key(self):
|
| 204 |
results = {"palm2": False, "gemini": False}
|
| 205 |
+
if not self.is_hf:
|
| 206 |
try: # Local
|
| 207 |
# Assuming genai and vertexai are clients for Google services
|
| 208 |
# os.environ["GOOGLE_API_KEY"] = self.cfg_private['google_palm']['google_palm_api']
|
|
|
|
| 243 |
# os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = self.get_google_credentials()
|
| 244 |
# client, credentials = self.init_google_client('gemini-pro', 'v1')
|
| 245 |
# print(credentials)
|
| 246 |
+
print("service account")
|
| 247 |
palm_api_key = os.getenv('PALM_API_KEY')
|
| 248 |
google_project_id = os.getenv('GOOGLE_PROJECT_ID')
|
| 249 |
google_location = os.getenv('GOOGLE_LOCATION')
|
| 250 |
os.environ['GOOGLE_API_KEY'] = os.getenv('PALM_API_KEY')
|
| 251 |
+
vertexai.init(project=os.getenv('GOOGLE_PROJECT_ID'), location=os.getenv('GOOGLE_LOCATION'),credentials=self.get_google_credentials())
|
| 252 |
# genai.configure(api_key=palm_api_key)
|
| 253 |
# vertexai.init(project=google_project_id, location=google_location)#, credentials=credentials)
|
| 254 |
+
print("service account pass")
|
| 255 |
|
| 256 |
try:
|
| 257 |
model = TextGenerationModel.from_pretrained("text-bison@001")
|
|
|
|
| 290 |
print(f"Immediate [{e}]")
|
| 291 |
return results
|
| 292 |
|
| 293 |
+
def report_api_key_status(self, is_hf):
|
| 294 |
missing_keys = []
|
| 295 |
present_keys = []
|
| 296 |
|
| 297 |
+
if not self.is_hf:
|
| 298 |
k_OPENAI_API_KEY = self.cfg_private['openai']['OPENAI_API_KEY']
|
| 299 |
k_openai_azure = self.cfg_private['openai_azure']['api_version']
|
| 300 |
k_google_palm_api = self.cfg_private['google_palm']['google_palm_api']
|
vouchervision/utils_VoucherVision.py
CHANGED
|
@@ -434,7 +434,10 @@ class VoucherVision():
|
|
| 434 |
# return client, credentials
|
| 435 |
# else:
|
| 436 |
# print("Google API credentials not found.")
|
| 437 |
-
|
|
|
|
|
|
|
|
|
|
| 438 |
|
| 439 |
def set_API_keys(self):
|
| 440 |
if self.is_hf:
|
|
@@ -461,9 +464,13 @@ class VoucherVision():
|
|
| 461 |
self.has_key_google_project_id = google_project_id is not None
|
| 462 |
self.has_key_google_project_location = google_project_location is not None
|
| 463 |
|
| 464 |
-
genai_api_key = os.getenv('PALM_API_KEY')
|
| 465 |
os.environ['GOOGLE_API_KEY'] = os.getenv('PALM_API_KEY')
|
| 466 |
vertexai.init(project=os.getenv('GOOGLE_PROJECT_ID'), location=os.getenv('GOOGLE_LOCATION'))
|
|
|
|
|
|
|
|
|
|
|
|
|
| 467 |
# try:
|
| 468 |
# if genai_api_key:
|
| 469 |
# genai.configure(api_key=genai_api_key)
|
|
@@ -551,7 +558,7 @@ class VoucherVision():
|
|
| 551 |
vertexai.init(project=os.environ['GOOGLE_PROJECT_ID'], location=os.environ['GOOGLE_LOCATION'])
|
| 552 |
|
| 553 |
|
| 554 |
-
|
| 555 |
# os.environ.pop("GOOGLE_APPLICATION_CREDENTIALS", None)
|
| 556 |
# os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = self.cfg_private['google_cloud']['path_json_file'] ####
|
| 557 |
# os.environ['GOOGLE_API_KEY'] = self.cfg_private['google_palm']['google_palm_api']
|
|
|
|
| 434 |
# return client, credentials
|
| 435 |
# else:
|
| 436 |
# print("Google API credentials not found.")
|
| 437 |
+
def get_google_credentials(self):
|
| 438 |
+
creds_json_str = os.getenv('GOOGLE_SERVICE_ACCOUNT_JSON')
|
| 439 |
+
credentials = service_account.Credentials.from_service_account_info(json.loads(creds_json_str))
|
| 440 |
+
return credentials
|
| 441 |
|
| 442 |
def set_API_keys(self):
|
| 443 |
if self.is_hf:
|
|
|
|
| 464 |
self.has_key_google_project_id = google_project_id is not None
|
| 465 |
self.has_key_google_project_location = google_project_location is not None
|
| 466 |
|
| 467 |
+
# genai_api_key = os.getenv('PALM_API_KEY')
|
| 468 |
os.environ['GOOGLE_API_KEY'] = os.getenv('PALM_API_KEY')
|
| 469 |
vertexai.init(project=os.getenv('GOOGLE_PROJECT_ID'), location=os.getenv('GOOGLE_LOCATION'))
|
| 470 |
+
|
| 471 |
+
|
| 472 |
+
os.environ['GOOGLE_API_KEY'] = os.getenv('PALM_API_KEY')
|
| 473 |
+
vertexai.init(project=os.getenv('GOOGLE_PROJECT_ID'), location=os.getenv('GOOGLE_LOCATION'),credentials=self.get_google_credentials())
|
| 474 |
# try:
|
| 475 |
# if genai_api_key:
|
| 476 |
# genai.configure(api_key=genai_api_key)
|
|
|
|
| 558 |
vertexai.init(project=os.environ['GOOGLE_PROJECT_ID'], location=os.environ['GOOGLE_LOCATION'])
|
| 559 |
|
| 560 |
|
| 561 |
+
|
| 562 |
# os.environ.pop("GOOGLE_APPLICATION_CREDENTIALS", None)
|
| 563 |
# os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = self.cfg_private['google_cloud']['path_json_file'] ####
|
| 564 |
# os.environ['GOOGLE_API_KEY'] = self.cfg_private['google_palm']['google_palm_api']
|