🐛 fix(langfuse.py): handle ImportError when importing Langfuse to prevent crashes when Langfuse is not installed

✨ feat(langfuse.py): set cls._instance to None when no Langfuse credentials are found to improve error handling and prevent crashes
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-09-27 16:21:41 -03:00
commit 5590dfe8f3

View file

@ -17,23 +17,27 @@ class LangfuseInstance:
@classmethod @classmethod
def create(cls): def create(cls):
logger.debug("Creating Langfuse instance") try:
from langfuse import Langfuse # type: ignore logger.debug("Creating Langfuse instance")
from langfuse import Langfuse # type: ignore
settings_manager = get_settings_service() settings_manager = get_settings_service()
if ( if (
settings_manager.settings.LANGFUSE_PUBLIC_KEY settings_manager.settings.LANGFUSE_PUBLIC_KEY
and settings_manager.settings.LANGFUSE_SECRET_KEY and settings_manager.settings.LANGFUSE_SECRET_KEY
): ):
logger.debug("Langfuse credentials found") logger.debug("Langfuse credentials found")
cls._instance = Langfuse( cls._instance = Langfuse(
public_key=settings_manager.settings.LANGFUSE_PUBLIC_KEY, public_key=settings_manager.settings.LANGFUSE_PUBLIC_KEY,
secret_key=settings_manager.settings.LANGFUSE_SECRET_KEY, secret_key=settings_manager.settings.LANGFUSE_SECRET_KEY,
host=settings_manager.settings.LANGFUSE_HOST, host=settings_manager.settings.LANGFUSE_HOST,
) )
else: else:
logger.debug("No Langfuse credentials found") logger.debug("No Langfuse credentials found")
cls._instance = None
except ImportError:
logger.debug("Langfuse not installed")
cls._instance = None cls._instance = None
@classmethod @classmethod