def create_langchain_azure_openai_wrappers()

in demo-python/code/community-integration/ragas/lib/utils.py [0:0]


def create_langchain_azure_openai_wrappers(
        azure_openai_api_version: str,
        azure_openai_endpoint: str,
        azure_openai_3_large_embedding_deployment: str,
        azure_openai_ada002_embedding_deployment: str,
        azure_openai_generator_deployment: str,
        azure_openai_critic_deployment: str,
        azure_openai_key: Optional[str] = None
    ):
    openai_credential = DefaultAzureCredential()
    token_provider = get_bearer_token_provider(openai_credential, "https://cognitiveservices.azure.com/.default")

    azure_openai_args = {
        "openai_api_version": azure_openai_api_version,
        "azure_endpoint": azure_openai_endpoint,
        "api_key": azure_openai_key,
        "azure_ad_token_provider": token_provider if not azure_openai_key else None
    }

    # Use API key if provided, otherwise use RBAC authentication
    text_3_large_embeddings = AzureOpenAIEmbeddings(
        azure_deployment=azure_openai_3_large_embedding_deployment,
        **azure_openai_args
    )
    ada_002_embeddings = AzureOpenAIEmbeddings(
        azure_deployment=azure_openai_ada002_embedding_deployment,
        **azure_openai_args
    )

    generator_llm = AzureChatOpenAI(
        azure_deployment=azure_openai_generator_deployment,
        **azure_openai_args
    )

    critic_llm = AzureChatOpenAI(
        azure_deployment=azure_openai_critic_deployment,
        **azure_openai_args
    )
    return (text_3_large_embeddings, ada_002_embeddings, generator_llm, critic_llm)