def main()

in assets/large_language_models/rag/components/src/validate_deployments.py [0:0]


def main(parser_args, activity_logger: Logger):
    """Extract main method."""
    # Determine if embeddings model is AOAI or OpenAI
    embeddings_model = parser_args.embeddings_model
    check_aoai_embeddings = (parser_args.check_embeddings == "true" or
                             parser_args.check_embeddings == "True") and embeddings_model.startswith("azure_open_ai")
    check_openai_embeddings = (parser_args.check_embeddings == "true" or
                               parser_args.check_embeddings == "True") and embeddings_model.startswith("open_ai")

    # Determine if completion model is AOAI or OpenAI
    llm_config = json.loads(parser_args.llm_config)
    model_type = llm_config.get("type")
    check_aoai_completion = (parser_args.check_completion == "true" or
                             parser_args.check_completion == "True") and model_type == "azure_open_ai"
    check_openai_completion = (parser_args.check_completion == "true" or
                               parser_args.check_completion == "True") and model_type == "open_ai"

    # Check if ACS needs to be validated
    check_acs = (parser_args.check_acs == "true" or parser_args.check_acs == "True")

    # Validate aoai models, if any
    if check_aoai_embeddings or check_aoai_completion:
        completion_to_check = "Completion model" if check_aoai_completion else ""
        embeddings_to_check = "Embeddings model" if check_aoai_embeddings else ""
        use_and = " and " if (check_aoai_embeddings and check_aoai_completion) else ""
        activity_logger.info(
            f"[Validate Deployments]: Validating {completion_to_check}{use_and}{embeddings_to_check} using AOAI")
        validate_aoai_deployments(parser_args, check_aoai_completion, check_aoai_embeddings, activity_logger)

    # validate openai models, if any
    if check_openai_completion or check_openai_embeddings:
        completion_to_check = "Completion model" if check_openai_completion else ""
        embeddings_to_check = "Embeddings model" if check_openai_embeddings else ""
        use_and = " and " if (check_openai_embeddings and check_openai_completion) else ""
        activity_logger.info(
            f"[Validate Deployments]: Validating {completion_to_check}{use_and}{embeddings_to_check} using OpenAI")
        validate_openai_deployments(parser_args, check_openai_completion, check_openai_embeddings, activity_logger)

    # validate acs connection is valid, if needed
    if check_acs:
        acs_config = json.loads(parser_args.acs_config)
        activity_logger.info(
            "[Validate Deployments]: Validating ACS config and connection for ACS index creation...")
        validate_acs(acs_config, activity_logger)