import os, litellm import pkg_resources import dotenv dotenv.load_dotenv() # load env variables def print_verbose(print_statement): pass def get_package_version(package_name): try: package = pkg_resources.get_distribution(package_name) return package.version except pkg_resources.DistributionNotFound: return None # Usage example package_name = "litellm" version = get_package_version(package_name) if version: print_verbose(f"The version of {package_name} is {version}") else: print_verbose(f"{package_name} is not installed") import yaml import dotenv from typing import Optional dotenv.load_dotenv() # load env variables def set_callbacks(): ## LOGGING if len(os.getenv("SET_VERBOSE", "")) > 0: if os.getenv("SET_VERBOSE") == "True": litellm.set_verbose = True print_verbose("\033[92mLiteLLM: Switched on verbose logging\033[0m") else: litellm.set_verbose = False ### LANGFUSE if (len(os.getenv("LANGFUSE_PUBLIC_KEY", "")) > 0 and len(os.getenv("LANGFUSE_SECRET_KEY", ""))) > 0 or len(os.getenv("LANGFUSE_HOST", "")) > 0: litellm.success_callback = ["langfuse"] print_verbose("\033[92mLiteLLM: Switched on Langfuse feature\033[0m") ## CACHING ### REDIS # if len(os.getenv("REDIS_HOST", "")) > 0 and len(os.getenv("REDIS_PORT", "")) > 0 and len(os.getenv("REDIS_PASSWORD", "")) > 0: # print(f"redis host: {os.getenv('REDIS_HOST')}; redis port: {os.getenv('REDIS_PORT')}; password: {os.getenv('REDIS_PASSWORD')}") # from litellm.caching import Cache # litellm.cache = Cache(type="redis", host=os.getenv("REDIS_HOST"), port=os.getenv("REDIS_PORT"), password=os.getenv("REDIS_PASSWORD")) # print("\033[92mLiteLLM: Switched on Redis caching\033[0m") def load_router_config(router: Optional[litellm.Router], config_file_path: Optional[str]='/app/config.yaml'): config = {} server_settings = {} try: if os.path.exists(config_file_path): # type: ignore with open(config_file_path, 'r') as file: # type: ignore config = yaml.safe_load(file) else: pass except: pass ## SERVER SETTINGS (e.g. default completion model = 'ollama/mistral') server_settings = config.get("server_settings", None) if server_settings: server_settings = server_settings ## LITELLM MODULE SETTINGS (e.g. litellm.drop_params=True,..) litellm_settings = config.get('litellm_settings', None) if litellm_settings: for key, value in litellm_settings.items(): setattr(litellm, key, value) ## MODEL LIST model_list = config.get('model_list', None) if model_list: router = litellm.Router(model_list=model_list) ## ENVIRONMENT VARIABLES environment_variables = config.get('environment_variables', None) if environment_variables: for key, value in environment_variables.items(): os.environ[key] = value return router, model_list, server_settings