from langchain.chat_models import AzureChatOpenAI, ChatOpenAI import os try: from dotenv import load_dotenv load_dotenv() except: pass def get_llm(max_tokens=1000, temperature=0.0, verbose=True, streaming=False, **kwargs): if has_azure_openai_config(): return get_azure_llm( max_tokens=max_tokens, temperature=temperature, verbose=verbose, streaming=streaming, **kwargs, ) return get_open_ai_llm( max_tokens=max_tokens, temperature=temperature, verbose=verbose, streaming=streaming, **kwargs, ) def has_azure_openai_config(): """ Checks if the necessary environment variables for Azure Blob Storage are set. Returns True if they are set, False otherwise. """ return all( key in os.environ for key in [ "AZURE_OPENAI_API_BASE_URL", "AZURE_OPENAI_API_VERSION", "AZURE_OPENAI_API_DEPLOYMENT_NAME", "AZURE_OPENAI_API_KEY", ] ) def get_open_ai_llm(**kwargs): return ChatOpenAI(**kwargs) def get_azure_llm(**kwargs): llm = AzureChatOpenAI( openai_api_base=os.environ["AZURE_OPENAI_API_BASE_URL"], openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"], deployment_name=os.environ["AZURE_OPENAI_API_DEPLOYMENT_NAME"], openai_api_key=os.environ["AZURE_OPENAI_API_KEY"], openai_api_type="azure", **kwargs, ) return llm