1
1
set -eu
2
2
3
- export access_token=$( gcloud auth application-default print-access-token)
4
- export project_id=< your project id>
5
-
6
3
access_token=$( gcloud auth application-default print-access-token)
7
4
8
5
@@ -80,21 +77,34 @@ curl -X POST https://generativelanguage.googleapis.com/v1beta/tunedModels \
80
77
# Check the operation for status updates during training.
81
78
# Note: you can only check the operation on v1/
82
79
operation=$( cat tunemodel.json | jq " .name" | tr -d ' "' )
83
- curl -X GET https://generativelanguage.googleapis.com/v1/${operation} \
80
+ tuning_done=false
81
+
82
+ while [[ " $tuning_done " != " true" ]];
83
+ do
84
+ sleep 5
85
+ curl -X GET https://generativelanguage.googleapis.com/v1/${operation} \
84
86
-H ' Content-Type: application/json' \
85
87
-H " Authorization: Bearer ${access_token} " \
86
- -H " x-goog-user-project: ${project_id} "
88
+ -H " x-goog-user-project: ${project_id} " 2> /dev/null > tuning_operation.json
89
+
90
+ complete=$( jq .metadata.completedPercent < tuning_operation.json)
91
+ tput cuu1
92
+ tput el
93
+ echo " Tuning...${complete} %"
94
+ tuning_done=$( jq .done < tuning_operation.json)
95
+ done
87
96
88
97
# Or get the TunedModel and check it's state. The model is ready to use if the state is active.
89
98
modelname=$( cat tunemodel.json | jq " .metadata.tunedModel" | tr -d ' "' )
90
99
curl -X GET https://generativelanguage.googleapis.com/v1beta/${modelname} \
91
100
-H ' Content-Type: application/json' \
92
101
-H " Authorization: Bearer ${access_token} " \
93
- -H " x-goog-user-project: ${project_id} " | tee check .json
102
+ -H " x-goog-user-project: ${project_id} " > tuned_model .json
94
103
95
- cat check .json | jq " .state"
104
+ cat tuned_model .json | jq " .state"
96
105
# [END tuned_models_create]
97
106
107
+
98
108
echo " [START tuned_models_generate_content]"
99
109
# [START tuned_models_generate_content]
100
110
curl -X POST https://generativelanguage.googleapis.com/v1beta/$modelname :generateContent \
@@ -120,10 +130,24 @@ curl -X GET https://generativelanguage.googleapis.com/v1beta/${modelname} \
120
130
121
131
echo " [START tuned_models_list]"
122
132
# [START tuned_models_list]
123
- curl -X GET https://generativelanguage.googleapis.com/v1beta/tunedModels \
133
+ # Sending a page_size is optional
134
+ curl -X GET https://generativelanguage.googleapis.com/v1beta/tunedModels? page_size=5 \
124
135
-H " Content-Type: application/json" \
125
136
-H " Authorization: Bearer ${access_token} " \
126
- -H " x-goog-user-project: ${project_id} "
137
+ -H " x-goog-user-project: ${project_id} " > tuned_models.json
138
+
139
+ jq .tunedModels[].name < tuned_models.json
140
+
141
+ # Send the nextPageToken to get the next page.
142
+ page_token=$( jq .nextPageToken < tuned_models.json | tr -d ' "' )
143
+
144
+ if [[ " $page_token " != " null" " ]]; then
145
+ curl -X GET https://generativelanguage.googleapis.com/v1beta/tunedModels?page_size=5\&page_token=${page_token} \
146
+ -H " Content-Type: application/json" \
147
+ -H " Authorization: Bearer ${access_token} " \
148
+ -H " x-goog-user-project: ${project_id} " > tuned_models2.json
149
+ jq .tunedModels[].name < tuned_models.json
150
+ fi
127
151
# [END tuned_models_list]
128
152
129
153
echo " [START tuned_models_delete]"
0 commit comments