75 lines
2.6 KiB
Python
75 lines
2.6 KiB
Python
import os
|
|
import json
|
|
|
|
from models.user_config import UserConfig
|
|
from utils.get_env import (
|
|
get_custom_llm_api_key_env,
|
|
get_custom_llm_url_env,
|
|
get_custom_model_env,
|
|
get_google_api_key_env,
|
|
get_llm_provider_env,
|
|
get_ollama_model_env,
|
|
get_ollama_url_env,
|
|
get_openai_api_key_env,
|
|
get_pexels_api_key_env,
|
|
get_user_config_path_env,
|
|
)
|
|
from utils.set_env import (
|
|
set_custom_llm_api_key_env,
|
|
set_custom_llm_url_env,
|
|
set_custom_model_env,
|
|
set_google_api_key_env,
|
|
set_llm_provider_env,
|
|
set_ollama_model_env,
|
|
set_ollama_url_env,
|
|
set_openai_api_key_env,
|
|
set_pexels_api_key_env,
|
|
)
|
|
|
|
|
|
def get_user_config():
|
|
user_config_path = get_user_config_path_env()
|
|
|
|
existing_config = UserConfig()
|
|
try:
|
|
if os.path.exists(user_config_path):
|
|
with open(user_config_path, "r") as f:
|
|
existing_config = UserConfig(**json.load(f))
|
|
except Exception as e:
|
|
print("Error while loading user config")
|
|
pass
|
|
|
|
return UserConfig(
|
|
LLM=existing_config.LLM or get_llm_provider_env(),
|
|
OPENAI_API_KEY=existing_config.OPENAI_API_KEY or get_openai_api_key_env(),
|
|
GOOGLE_API_KEY=existing_config.GOOGLE_API_KEY or get_google_api_key_env(),
|
|
OLLAMA_URL=existing_config.OLLAMA_URL or get_ollama_url_env(),
|
|
OLLAMA_MODEL=existing_config.OLLAMA_MODEL or get_ollama_model_env(),
|
|
CUSTOM_LLM_URL=existing_config.CUSTOM_LLM_URL or get_custom_llm_url_env(),
|
|
CUSTOM_LLM_API_KEY=existing_config.CUSTOM_LLM_API_KEY
|
|
or get_custom_llm_api_key_env(),
|
|
CUSTOM_MODEL=existing_config.CUSTOM_MODEL or get_custom_model_env(),
|
|
PEXELS_API_KEY=existing_config.PEXELS_API_KEY or get_pexels_api_key_env(),
|
|
)
|
|
|
|
|
|
def update_env_with_user_config():
|
|
user_config = get_user_config()
|
|
if user_config.LLM:
|
|
set_llm_provider_env(user_config.LLM)
|
|
if user_config.OPENAI_API_KEY:
|
|
set_openai_api_key_env(user_config.OPENAI_API_KEY)
|
|
if user_config.GOOGLE_API_KEY:
|
|
set_google_api_key_env(user_config.GOOGLE_API_KEY)
|
|
if user_config.OLLAMA_URL:
|
|
set_ollama_url_env(user_config.OLLAMA_URL)
|
|
if user_config.OLLAMA_MODEL:
|
|
set_ollama_model_env(user_config.OLLAMA_MODEL)
|
|
if user_config.CUSTOM_LLM_URL:
|
|
set_custom_llm_url_env(user_config.CUSTOM_LLM_URL)
|
|
if user_config.CUSTOM_LLM_API_KEY:
|
|
set_custom_llm_api_key_env(user_config.CUSTOM_LLM_API_KEY)
|
|
if user_config.CUSTOM_MODEL:
|
|
set_custom_model_env(user_config.CUSTOM_MODEL)
|
|
if user_config.PEXELS_API_KEY:
|
|
set_pexels_api_key_env(user_config.PEXELS_API_KEY)
|