3
3
SCRIPT_DIR=$( dirname " $0 " )
4
4
MEDIA_DIR=$( realpath ${SCRIPT_DIR} /../../third_party)
5
5
6
+ GOOGLE_API_KEY=AIzaSyA3Gw4E_RoF_wfergxCQ2Y7BhtkSHALxfM
7
+
6
8
TEXT_PATH=${MEDIA_DIR} /poem.txt
9
+ A11_PATH=${MEDIA_DIR} /a11.txt
7
10
IMG_PATH=${MEDIA_DIR} /organ.jpg
8
11
AUDIO_PATH=${MEDIA_DIR} /sample.mp3
9
12
VIDEO_PATH=${MEDIA_DIR} /Big_Buck_Bunny.mp4
18
21
19
22
echo " [START tokens_context_window]"
20
23
# [START tokens_context_window]
21
- curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:countTokens? key=$GOOGLE_API_KEY
24
+ curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro? key=$GOOGLE_API_KEY > model.json
25
+ jq .inputTokenLimit model.json
26
+ jq .outputTokenLimit model.json
22
27
# [END tokens_context_window]
23
28
24
29
echo " [START tokens_text_only]"
@@ -102,7 +107,6 @@ curl "${upload_url}" \
102
107
--data-binary " @${IMG_PATH} " 2> /dev/null > file_info.json
103
108
104
109
file_uri=$( jq " .file.uri" file_info.json)
105
- echo file_uri=$file_uri
106
110
107
111
curl " https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:countTokens?key=$GOOGLE_API_KEY " \
108
112
-H ' Content-Type: application/json' \
@@ -148,13 +152,10 @@ curl "${upload_url}" \
148
152
--data-binary " @${VIDEO_PATH} " 2> /dev/null > file_info.json
149
153
150
154
file_uri=$( jq " .file.uri" file_info.json)
151
- echo file_uri=$file_uri
152
155
153
156
state=$( jq " .file.state" file_info.json)
154
- echo state=$state
155
157
156
158
name=$( jq " .file.name" file_info.json)
157
- echo name=$name
158
159
159
160
while [[ " ($state )" = * " PROCESSING" * ]];
160
161
do
@@ -179,7 +180,6 @@ curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:c
179
180
180
181
echo " [START tokens_cached_content]"
181
182
# [START tokens_cached_content]
182
- wget https://storage.googleapis.com/generativeai-downloads/data/a11.txt
183
183
echo ' {
184
184
"model": "models/gemini-1.5-flash-001",
185
185
"contents":[
@@ -188,7 +188,7 @@ echo '{
188
188
{
189
189
"inline_data": {
190
190
"mime_type":"text/plain",
191
- "data": "' $( base64 $B64FLAGS a11.txt ) ' "
191
+ "data": "' $( base64 $B64FLAGS $A11_PATH ) ' "
192
192
}
193
193
}
194
194
],
@@ -210,33 +210,21 @@ curl -X POST "https://generativelanguage.googleapis.com/v1beta/cachedContents?ke
210
210
-d @request.json \
211
211
> cache.json
212
212
213
- CACHE_NAME=$( cat cache.json | grep ' "name":' | cut -d ' "' -f 4 | head -n 1)
214
-
215
- curl -X POST " https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:countTokens?key=$GOOGLE_API_KEY " \
216
- -H ' Content-Type: application/json' \
217
- -d ' {
218
- "contents": [
219
- {
220
- "parts":[{
221
- "text": "Please summarize this transcript"
222
- }],
223
- "role": "user"
224
- },
225
- ],
226
- "cachedContent": "' $CACHE_NAME ' "
227
- }'
213
+ jq .usageMetadata.totalTokenCount cache.json
228
214
# [END tokens_cached_content]
229
215
230
216
echo " [START tokens_system_instruction]"
231
217
# [START tokens_system_instruction]
232
- curl " https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:countTokens ?key=$GOOGLE_API_KEY " \
218
+ curl " https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent ?key=$GOOGLE_API_KEY " \
233
219
-H ' Content-Type: application/json' \
234
220
-d ' { "system_instruction": {
235
221
"parts":
236
222
{ "text": "You are a cat. Your name is Neko."}},
237
223
"contents": {
238
224
"parts": {
239
- "text": "Hello there"}}}'
225
+ "text": "Hello there"}}}' > system_instructions.json
226
+
227
+ jq .usageMetadata.totalTokenCount system_instructions.json
240
228
# [END tokens_system_instruction]
241
229
242
230
echo " [START tokens_tools]"
@@ -274,9 +262,9 @@ cat > tools.json << EOF
274
262
}
275
263
EOF
276
264
277
- curl " https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:countTokens ?key=$GOOGLE_API_KEY " \
265
+ curl " https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent ?key=$GOOGLE_API_KEY " \
278
266
-H ' Content-Type: application/json' \
279
- -d @ <( echo '
267
+ -d '
280
268
{
281
269
"system_instruction": {
282
270
"parts": {
@@ -296,5 +284,7 @@ curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-lat
296
284
}
297
285
}
298
286
}
299
- ' ) 2> /dev/null | sed -n ' /"content"/,/"finishReason"/p'
287
+ ' > tools_output.json
288
+
289
+ jq .usageMetadata.totalTokenCount tools_output.json
300
290
# [END tokens_tools]
0 commit comments