def main()

in backend-apis/deployment_scripts/vertex_vector_operations.py [0:0]


def main(args):
    """
    Main creation function

    Args:
        args:
            Command line args
    """
    metadata = {
        "contentsDeltaUri": args.contents_delta_uri,
        "config": {
            "dimensions": 1408,
            "approximateNeighborsCount": 150,
            "distanceMeasureType": "DOT_PRODUCT_DISTANCE",
            "featureNormType": "UNIT_L2_NORM",
            "algorithmConfig": {
                "treeAhConfig": {
                    "leafNodeEmbeddingCount": 1000,
                    "fractionLeafNodesToSearch": 0.05,
                }
            },
        },
    }

    struct = struct_pb2.Struct()
    ParseDict(metadata, struct)
    schema_value = struct_pb2.Value(struct_value=struct)

    print("Creating vector index")

    create_vector_index(
        project_id=args.project_id,
        location=args.location,
        display_name=args.index_display_name,
        description=args.index_description,
        metadata=schema_value,
    )

    print("Creating index endpoint")

    create_index_endpoint(
        project_id=args.project_id,
        location=args.location,
        display_name=args.endpoint_display_name,
        description=args.endpoint_description,
        public_endpoint_enabled=True,
    )

    index_resource_name = get_index_resource_name(
        project_id=args.project_id,
        location=args.location,
        index_display_name=args.index_display_name,
    )

    (
        endpoint_name,
        deployed_index_id,
        public_endpoint_domain_name,
    ) = get_endpoint_info(
        project_id=args.project_id,
        location=args.location,
        endpoint_display_name=args.endpoint_display_name,
    )

    print("Deploying index to endpoint")

    deploy_index_to_endpoint(
        deploy_id=args.deploy_id,
        index=index_resource_name,
        display_name=args.deploy_display_name,
        index_endpoint=endpoint_name,
    )
    print("Index endpoint id:")
    print(endpoint_name.split(sep="/")[-1])

    print("Deployed index id:")
    print(deployed_index_id)

    print("Vector API endpoint")
    print(public_endpoint_domain_name)