Skip to content

Commit 84db061

Browse files
Giom-VMarkDaoust
andauthored
Caching cURL sample (#455)
* Create, list, get, update, and delete caches * Use cached content * Formatting * Updating region tags * cache_generate_content region tag * Moving the generation in cache_create * Fix Change-Id: If09a99b8f4637bae509b32469b0cd9fd9ec60024 --------- Co-authored-by: Mark Daoust <[email protected]>
1 parent 032f78f commit 84db061

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

samples/rest/cache.sh

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
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

Comments
 (0)