private FunctionInfo extractOnnxTargets(ExpressionNode node) {
        var result = new FunctionInfo();
        String onnxFeature = node.toString();
        result.bindTargets.add(onnxFeature);
        Optional<String> modelName = getArgument(node);
        if (modelName.isPresent()) {
            for (OnnxModel onnxModel : onnxModels) {
                if (onnxModel.name().equals(modelName.get())) {
                    // Load the model (if not already loaded) to extract inputs
                    onnxModel.load();
                    for(String input : onnxModel.inputs().keySet()) {
                        result.bindTargets.add(input);
                        result.arguments.add(input);
                    }
                    result.onnxModelsInUse.put(onnxFeature, onnxModel);
                    return result;
                }
            }
        }
        // not found, must be supplied as argument
        result.arguments.add(onnxFeature);
        return result;
    }
Extract the feature used to evaluate the onnx model. e.g. onnx(name) and add
that as a bind target and argument. During evaluation, this will be evaluated before
the rest of the expression and the result is added to the context. Also extract the
inputs to the model and add them as bind targets and arguments.
model-evaluation/src/main/java/ai/vespa/models/evaluation/BindingExtractor.java