NBLM / initializer.py
youngtsai's picture
password
e485414
raw
history blame
3.64 kB
import json
import os
from google.oauth2 import service_account
from google.cloud import storage
from google import genai
from storage_service import GoogleCloudStorage
def initialize_google_credentials():
is_env_local = os.getenv("IS_ENV_LOCAL", "false") == "true"
print(f"Environment is local: {is_env_local}")
try:
if is_env_local:
config_path = os.path.join(os.path.dirname(__file__), "local_config.json")
print(f"Trying to load config from: {config_path}")
if not os.path.exists(config_path):
print(f"Warning: {config_path} does not exist")
return None
with open(config_path) as f:
config = json.load(f)
google_credentials_key = json.dumps(config["GOOGLE_APPLICATION_CREDENTIALS_JSON"])
else:
google_credentials_key = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
if not google_credentials_key:
print("Warning: GOOGLE_APPLICATION_CREDENTIALS_JSON environment variable not set")
return google_credentials_key
except Exception as e:
print(f"Error initializing credentials: {str(e)}")
return None
def initialize_gcs_service(google_credentials_key):
if not google_credentials_key:
print("Warning: No credentials provided, GCS service will not be initialized")
return None
return GoogleCloudStorage(google_credentials_key)
def initialize_genai_client(google_credentials_key):
try:
if not google_credentials_key:
print("Warning: No credentials provided, using default authentication")
return genai.Client(
vertexai=True,
project='junyiacademy',
location='us-central1'
)
google_service_account_info_dict = json.loads(google_credentials_key)
GOOGPE_SCOPES = ["https://www.googleapis.com/auth/cloud-platform"]
credentials = service_account.Credentials.from_service_account_info(
google_service_account_info_dict, scopes=GOOGPE_SCOPES
)
return genai.Client(
vertexai=True,
project='junyiacademy',
location='us-central1',
credentials=credentials
)
except Exception as e:
print(f"Error initializing GenAI client: {str(e)}")
print("Falling back to default authentication")
return genai.Client(
vertexai=True,
project='junyiacademy',
location='us-central1'
)
def initialize_password():
is_env_local = os.getenv("IS_ENV_LOCAL", "false") == "true"
print(f"Environment is local: {is_env_local}")
try:
if is_env_local:
config_path = os.path.join(os.path.dirname(__file__), "local_config.json")
print(f"Trying to load config from: {config_path}")
if not os.path.exists(config_path):
print(f"Warning: {config_path} does not exist")
return None
with open(config_path) as f:
config = json.load(f)
return config["PASSWORD"]
else:
return os.getenv("PASSWORD")
except Exception as e:
print(f"Error initializing password: {str(e)}")
return None
def initialize_clients():
google_credentials_key = initialize_google_credentials()
gcs_service = initialize_gcs_service(google_credentials_key)
genai_client = initialize_genai_client(google_credentials_key)
return gcs_service, genai_client