1
+ set -eu
2
+
3
+ if [[ " $( base64 --version 2>&1 ) " = * " FreeBSD" * ]]; then
4
+ B64FLAGS=" --input"
5
+ else
6
+ B64FLAGS=" -w0"
7
+ fi
8
+
9
+ echo " [START cache_create]"
10
+ # [START cache_create]
11
+ wget https://storage.googleapis.com/generativeai-downloads/data/a11.txt
12
+ echo ' {
13
+ "model": "models/gemini-1.5-flash-001",
14
+ "contents":[
15
+ {
16
+ "parts":[
17
+ {
18
+ "inline_data": {
19
+ "mime_type":"text/plain",
20
+ "data": "' $( base64 $B64FLAGS a11.txt) ' "
21
+ }
22
+ }
23
+ ],
24
+ "role": "user"
25
+ }
26
+ ],
27
+ "systemInstruction": {
28
+ "parts": [
29
+ {
30
+ "text": "You are an expert at analyzing transcripts."
31
+ }
32
+ ]
33
+ },
34
+ "ttl": "300s"
35
+ }' > request.json
36
+
37
+ curl -X POST " https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY " \
38
+ -H ' Content-Type: application/json' \
39
+ -d @request.json \
40
+ > cache.json
41
+
42
+ CACHE_NAME=$( cat cache.json | grep ' "name":' | cut -d ' "' -f 4 | head -n 1)
43
+
44
+ echo " [START cache_generate_content]"
45
+ # [START cache_generate_content]
46
+ curl -X POST " https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GOOGLE_API_KEY " \
47
+ -H ' Content-Type: application/json' \
48
+ -d ' {
49
+ "contents": [
50
+ {
51
+ "parts":[{
52
+ "text": "Please summarize this transcript"
53
+ }],
54
+ "role": "user"
55
+ },
56
+ ],
57
+ "cachedContent": "' $CACHE_NAME ' "
58
+ }'
59
+ # [END cache_generate_content]
60
+ # [END cache_create]
61
+ rm a11.txt request.json
62
+
63
+ echo " [START cache_list]"
64
+ # [START cache_list]
65
+ curl " https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY "
66
+ # [END cache_list]
67
+
68
+ echo " [START cache_get]"
69
+ # [START cache_get]
70
+ curl " https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME ?key=$GOOGLE_API_KEY "
71
+ # [END cache_get]
72
+
73
+ echo " [START cache_update]"
74
+ # [START cache_update]
75
+ curl -X PATCH " https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME ?key=$GOOGLE_API_KEY " \
76
+ -H ' Content-Type: application/json' \
77
+ -d ' {"ttl": "600s"}'
78
+ # [END cache_update]
79
+
80
+ echo " [START cache_delete]"
81
+ # [START cache_delete]
82
+ curl -X DELETE " https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME ?key=$GOOGLE_API_KEY "
83
+ # [END cache_delete]
0 commit comments