Skip to content
34 changes: 32 additions & 2 deletions automl/dataset_get.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@
// Package automl contains samples for Google Cloud AutoML API v1.
package automl

// [START automl_get_dataset]
// [START automl_language_entity_extraction_get_dataset]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure all of the imports are the same and all of the whitespace is correct here? For some samples, this can make sense, but it isn't immediately obvious during review that these regions are correct. Separate files are more up front work, but very clearly correct (and don't accidentally get messed up when there is a new import).

(Go will fail to compile if there is an extra import.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean technically all of the automl samples should all have been on the v1 library not the v1beta1

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That was my mistake, fixing that in #1122

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I meant all of the imports. Not just the API import. The reason the standard is to use separate files (https://github.com/GoogleCloudPlatform/golang-samples/blob/master/CONTRIBUTING.md#one-file-per-sample) is so that we're 100% sure the sample will work when copied and pasted from cloud.google.com.

Copy link
Contributor

@tbpg tbpg Dec 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's also very easy to mess up start/end tags when going in and out of functions (looking at the rest of the PR). I'm not sure every region is correct, so I'd prefer separate files, if you don't mind. gofmt should pass for every region, too.

Sometimes this type of setup works, but Go is weird with import and formatting requirements, so we have to be careful. :/

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the go folks want to maintain a bunch of additional files, that is fine. The goal of this was to move us away from maintaining 1400 files to about 400 for AutoML snippets.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Y'all will be maintaining the samples. So, if you prefer to do it this way, it seems correct from what I can tell. Let's go ahead with this as-is and we can change it later if needed. Sorry for the back and forth.

// [START automl_language_sentiment_analysis_get_dataset]
// [START automl_language_text_classification_get_dataset]
// [START automl_translate_get_dataset]
// [START automl_vision_classification_get_dataset]
// [START automl_vision_object_detection_get_dataset]
import (
"context"
"fmt"
Expand Down Expand Up @@ -53,39 +58,64 @@ func getDataset(w io.Writer, projectID string, location string, datasetID string
fmt.Fprintf(w, "\tseconds: %v\n", dataset.GetCreateTime().GetSeconds())
fmt.Fprintf(w, "\tnanos: %v\n", dataset.GetCreateTime().GetNanos())

// [END automl_language_sentiment_analysis_get_dataset]
// [END automl_language_text_classification_get_dataset]
// [END automl_translate_get_dataset]
// [END automl_vision_classification_get_dataset]
// [END automl_vision_object_detection_get_dataset]
// Language entity extraction
if metadata := dataset.GetTextExtractionDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Text extraction dataset metadata: %v\n", metadata)
}
// [END automl_language_entity_extraction_get_dataset]

// [START automl_language_sentiment_analysis_get_dataset]
// Language sentiment analysis
if metadata := dataset.GetTextSentimentDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Text sentiment dataset metadata: %v\n", metadata)
}
// [END automl_language_sentiment_analysis_get_dataset]

// [START automl_language_text_classification_get_dataset]
// Language text classification
if metadata := dataset.GetTextClassificationDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Text classification dataset metadata: %v\n", metadata)
}
// [END automl_language_text_classification_get_dataset]

// [START automl_translate_get_dataset]
// Translate
if metadata := dataset.GetTranslationDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Translation dataset metadata:\n")
fmt.Fprintf(w, "\tsource_language_code: %v\n", metadata.GetSourceLanguageCode())
fmt.Fprintf(w, "\ttarget_language_code: %v\n", metadata.GetTargetLanguageCode())
}
// [END automl_translate_get_dataset]

// [START automl_vision_classification_get_dataset]
// Vision classification
if metadata := dataset.GetImageClassificationDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Image classification dataset metadata: %v\n", metadata)
}
// [END automl_vision_classification_get_dataset]

// [START automl_vision_object_detection_get_dataset]
// Vision object detection
if metadata := dataset.GetImageObjectDetectionDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Image object detection dataset metadata: %v\n", metadata)
}
// [START automl_language_entity_extraction_get_dataset]
// [START automl_language_sentiment_analysis_get_dataset]
// [START automl_language_text_classification_get_dataset]
// [START automl_translate_get_dataset]
// [START automl_vision_classification_get_dataset]

return nil
}

// [END automl_get_dataset]
// [END automl_language_entity_extraction_get_dataset]
// [END automl_language_sentiment_analysis_get_dataset]
// [END automl_language_text_classification_get_dataset]
// [END automl_translate_get_dataset]
// [END automl_vision_classification_get_dataset]
// [END automl_vision_object_detection_get_dataset]
34 changes: 32 additions & 2 deletions automl/dataset_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@
// Package automl contains samples for Google Cloud AutoML API v1.
package automl

// [START automl_list_datasets]
// [START automl_language_entity_extraction_list_datasets]
// [START automl_language_sentiment_analysis_list_datasets]
// [START automl_language_text_classification_list_datasets]
// [START automl_translate_list_datasets]
// [START automl_vision_classification_list_datasets]
// [START automl_vision_object_detection_list_datasets]
import (
"context"
"fmt"
Expand Down Expand Up @@ -60,41 +65,66 @@ func listDatasets(w io.Writer, projectID string, location string) error {
fmt.Fprintf(w, "\tseconds: %v\n", dataset.GetCreateTime().GetSeconds())
fmt.Fprintf(w, "\tnanos: %v\n", dataset.GetCreateTime().GetNanos())

// [END automl_language_sentiment_analysis_list_datasets]
// [END automl_language_text_classification_list_datasets]
// [END automl_translate_list_datasets]
// [END automl_vision_classification_list_datasets]
// [END automl_vision_object_detection_list_datasets]
// Language entity extraction
if metadata := dataset.GetTextExtractionDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Text extraction dataset metadata: %v\n", metadata)
}
// [END automl_language_entity_extraction_list_datasets]

// [START automl_language_sentiment_analysis_list_datasets]
// Language sentiment analysis
if metadata := dataset.GetTextSentimentDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Text sentiment dataset metadata: %v\n", metadata)
}
// [END automl_language_sentiment_analysis_list_datasets]

// [START automl_language_text_classification_list_datasets]
// Language text classification
if metadata := dataset.GetTextClassificationDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Text classification dataset metadata: %v\n", metadata)
}
// [END automl_language_text_classification_list_datasets]

// [START automl_translate_list_datasets]
// Translate
if metadata := dataset.GetTranslationDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Translation dataset metadata:\n")
fmt.Fprintf(w, "\tsource_language_code: %v\n", metadata.GetSourceLanguageCode())
fmt.Fprintf(w, "\ttarget_language_code: %v\n", metadata.GetTargetLanguageCode())
}
// [END automl_translate_list_datasets]

// [START automl_vision_classification_list_datasets]
// Vision classification
if metadata := dataset.GetImageClassificationDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Image classification dataset metadata: %v\n", metadata)
}
// [END automl_vision_classification_list_datasets]

// [START automl_vision_object_detection_list_datasets]
// Vision object detection
if metadata := dataset.GetImageObjectDetectionDatasetMetadata(); metadata != nil {
fmt.Fprintf(w, "Image object detection dataset metadata: %v\n", metadata)
}
// [START automl_language_entity_extraction_list_datasets]
// [START automl_language_sentiment_analysis_list_datasets]
// [START automl_language_text_classification_list_datasets]
// [START automl_translate_list_datasets]
// [START automl_vision_classification_list_datasets]

}

return nil
}

// [END automl_list_datasets]
// [END automl_language_entity_extraction_list_datasets]
// [END automl_language_sentiment_analysis_list_datasets]
// [END automl_language_text_classification_list_datasets]
// [END automl_translate_list_datasets]
// [END automl_vision_classification_list_datasets]
// [END automl_vision_object_detection_list_datasets]
78 changes: 0 additions & 78 deletions automl/language/batch_predict.go

This file was deleted.

44 changes: 41 additions & 3 deletions automl/model_evaluation_get.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@
// Package automl contains samples for Google Cloud AutoML API v1.
package automl

// [START automl_get_model_evaluation]
// [START automl_language_entity_extraction_get_model_evaluation]
// [START automl_language_sentiment_analysis_get_model_evaluation]
// [START automl_language_text_classification_get_model_evaluation]
// [START automl_translate_get_model_evaluation]
// [START automl_vision_classification_get_model_evaluation]
// [START automl_vision_object_detection_get_model_evaluation]
import (
"context"
"fmt"
Expand Down Expand Up @@ -54,9 +59,42 @@ func getModelEvaluation(w io.Writer, projectID string, location string, modelID
fmt.Fprintf(w, "\tseconds: %v\n", evaluation.GetCreateTime().GetSeconds())
fmt.Fprintf(w, "\tnanos: %v\n", evaluation.GetCreateTime().GetNanos())
fmt.Fprintf(w, "Evaluation example count: %v\n", evaluation.GetEvaluatedExampleCount())
fmt.Fprintf(w, "Model evaluation metrics: %v\n", evaluation.GetTranslationEvaluationMetrics())
// [END automl_language_sentiment_analysis_get_model_evaluation]
// [END automl_language_text_classification_get_model_evaluation]
// [END automl_translate_get_model_evaluation]
// [END automl_vision_classification_get_model_evaluation]
// [END automl_vision_object_detection_get_model_evaluation]
fmt.Fprintf(w, "Entity extraction model evaluation metrics: %v\n", evaluation.GetTextExtractionEvaluationMetrics())
// [END automl_language_entity_extraction_get_model_evaluation]

// [START automl_language_sentiment_analysis_get_model_evaluation]
fmt.Fprintf(w, "Sentiment analysis model evaluation metrics: %v\n", evaluation.GetTextSentimentEvaluationMetrics())
// [END automl_language_sentiment_analysis_get_model_evaluation]

// [START automl_language_text_classification_get_model_evaluation]
// [START automl_vision_classification_get_model_evaluation]
fmt.Fprintf(w, "Classification model evaluation metrics: %v\n", evaluation.GetClassificationEvaluationMetrics())
// [END automl_language_text_classification_get_model_evaluation]
// [END automl_vision_classification_get_model_evaluation]

// [START automl_translate_get_model_evaluation]
fmt.Fprintf(w, "Translation model evaluation metrics: %v\n", evaluation.GetTranslationEvaluationMetrics())
// [END automl_translate_get_model_evaluation]

// [START automl_vision_object_detection_get_model_evaluation]
fmt.Fprintf(w, "Object detection model evaluation metrics: %v\n", evaluation.GetImageObjectDetectionEvaluationMetrics())
// [START automl_language_entity_extraction_get_model_evaluation]
// [START automl_language_sentiment_analysis_get_model_evaluation]
// [START automl_language_text_classification_get_model_evaluation]
// [START automl_translate_get_model_evaluation]
// [START automl_vision_classification_get_model_evaluation]

return nil
}

// [END automl_get_model_evaluation]
// [END automl_language_entity_extraction_get_model_evaluation]
// [END automl_language_sentiment_analysis_get_model_evaluation]
// [END automl_language_text_classification_get_model_evaluation]
// [END automl_translate_get_model_evaluation]
// [END automl_vision_classification_get_model_evaluation]
// [END automl_vision_object_detection_get_model_evaluation]
44 changes: 41 additions & 3 deletions automl/model_evaluation_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@
// Package automl contains samples for Google Cloud AutoML API v1.
package automl

// [START automl_list_model_evaluations]
// [START automl_language_entity_extraction_list_model_evaluations]
// [START automl_language_sentiment_analysis_list_model_evaluations]
// [START automl_language_text_classification_list_model_evaluations]
// [START automl_translate_list_model_evaluations]
// [START automl_vision_classification_list_model_evaluations]
// [START automl_vision_object_detection_list_model_evaluations]
import (
"context"
"fmt"
Expand Down Expand Up @@ -61,10 +66,43 @@ func listModelEvaluations(w io.Writer, projectID string, location string, modelI
fmt.Fprintf(w, "\tseconds: %v\n", evaluation.GetCreateTime().GetSeconds())
fmt.Fprintf(w, "\tnanos: %v\n", evaluation.GetCreateTime().GetNanos())
fmt.Fprintf(w, "Evaluation example count: %v\n", evaluation.GetEvaluatedExampleCount())
fmt.Fprintf(w, "Model evaluation metrics: %v\n", evaluation.GetTranslationEvaluationMetrics())
// [END automl_language_sentiment_analysis_list_model_evaluations]
// [END automl_language_text_classification_list_model_evaluations]
// [END automl_translate_list_model_evaluations]
// [END automl_vision_classification_list_model_evaluations]
// [END automl_vision_object_detection_list_model_evaluations]
fmt.Fprintf(w, "Entity extraction model evaluation metrics: %v\n", evaluation.GetTextExtractionEvaluationMetrics())
// [END automl_language_entity_extraction_list_model_evaluations]

// [START automl_language_sentiment_analysis_list_model_evaluations]
fmt.Fprintf(w, "Sentiment analysis model evaluation metrics: %v\n", evaluation.GetTextSentimentEvaluationMetrics())
// [END automl_language_sentiment_analysis_list_model_evaluations]

// [START automl_language_text_classification_list_model_evaluations]
// [START automl_vision_classification_list_model_evaluations]
fmt.Fprintf(w, "Classification model evaluation metrics: %v\n", evaluation.GetClassificationEvaluationMetrics())
// [END automl_language_text_classification_list_model_evaluations]
// [END automl_vision_classification_list_model_evaluations]

// [START automl_translate_list_model_evaluations]
fmt.Fprintf(w, "Translation model evaluation metrics: %v\n", evaluation.GetTranslationEvaluationMetrics())
// [END automl_translate_list_model_evaluations]

// [START automl_vision_object_detection_list_model_evaluations]
fmt.Fprintf(w, "Object detection model evaluation metrics: %v\n", evaluation.GetImageObjectDetectionEvaluationMetrics())
// [START automl_language_entity_extraction_list_model_evaluations]
// [START automl_language_sentiment_analysis_list_model_evaluations]
// [START automl_language_text_classification_list_model_evaluations]
// [START automl_translate_list_model_evaluations]
// [START automl_vision_classification_list_model_evaluations]
}

return nil
}

// [END automl_list_model_evaluations]
// [END automl_language_entity_extraction_list_model_evaluations]
// [END automl_language_sentiment_analysis_list_model_evaluations]
// [END automl_language_text_classification_list_model_evaluations]
// [END automl_translate_list_model_evaluations]
// [END automl_vision_classification_list_model_evaluations]
// [END automl_vision_object_detection_list_model_evaluations]
Loading