From 046e7ce33d6d96d8f66e02994895b179f28b8f30 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Thu, 11 Jul 2024 12:42:40 -0400 Subject: [PATCH 1/7] Create, list, get, update, and delete caches --- samples/rest/caching.sh | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 samples/rest/caching.sh diff --git a/samples/rest/caching.sh b/samples/rest/caching.sh new file mode 100644 index 000000000..12a5f11e7 --- /dev/null +++ b/samples/rest/caching.sh @@ -0,0 +1,61 @@ +set -eu + +echo "[START caching]" +# [START caching] +wget https://storage.googleapis.com/generativeai-downloads/data/a11.txt +echo '{ + "model": "models/gemini-1.5-flash-001", + "contents":[ + { + "parts":[ + { + "inline_data": { + "mime_type":"text/plain", + "data": "'$(base64 -w0 a11.txt)'" + } + } + ], + "role": "user" + } + ], + "systemInstruction": { + "parts": [ + { + "text": "You are an expert at analyzing transcripts." + } + ] + }, + "ttl": "300s" +}' > request.json + +curl -X POST "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY" \ + -H 'Content-Type: application/json' \ + -d @request.json + +rm a11.txt request.json +# [END caching] + +echo "[START list_caches]" +# [START list_caches] +ALL_CACHES=$(curl "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY") +CACHE_NAME=$(echo "$ALL_CACHES" | grep '"name":' | cut -d '"' -f 4 | head -n 1) +# [END list_caches] + +echo "[START get_cache]" +# [START get_cache] +curl "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_API_KEY" +# [END get_cache] + +echo "[START update_cache]" +# [START update_cache] +curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_API_KEY" \ + -H 'Content-Type: application/json' \ + -d '{"ttl": "600s"}' +# [END update_cache] + +# TODO: use_cache + +echo "[START delete_cache]" +# [START delete_cache] +curl -X DELETE "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_API_KEY" +# [END delete_cache] \ No newline at end of file From c46e687bffb75370ddb8adc64cd35f89a3866b33 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Thu, 11 Jul 2024 12:51:04 -0400 Subject: [PATCH 2/7] Use cached content --- samples/rest/caching.sh | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/samples/rest/caching.sh b/samples/rest/caching.sh index 12a5f11e7..23a0deba2 100644 --- a/samples/rest/caching.sh +++ b/samples/rest/caching.sh @@ -53,7 +53,23 @@ curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key= -d '{"ttl": "600s"}' # [END update_cache] -# TODO: use_cache + +echo "[START use_cache]" +# [START use_cache] +curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GOOGLE_API_KEY" \ +-H 'Content-Type: application/json' \ +-d '{ + "contents": [ + { + "parts":[{ + "text": "Please summarize this transcript" + }], + "role": "user" + }, + ], + "cachedContent": "'$CACHE_NAME'" + }' +# [END use_cache] echo "[START delete_cache]" # [START delete_cache] From 6e35f1a7561edcb30e1880fa0e5085530b52f3e8 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Thu, 11 Jul 2024 12:52:00 -0400 Subject: [PATCH 3/7] Formatting --- samples/rest/caching.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/samples/rest/caching.sh b/samples/rest/caching.sh index 23a0deba2..8355999a3 100644 --- a/samples/rest/caching.sh +++ b/samples/rest/caching.sh @@ -53,7 +53,6 @@ curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key= -d '{"ttl": "600s"}' # [END update_cache] - echo "[START use_cache]" # [START use_cache] curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GOOGLE_API_KEY" \ From 371c78f2b09925182f4791853b616cda6d0f58ad Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Fri, 12 Jul 2024 10:38:57 -0400 Subject: [PATCH 4/7] Updating region tags --- samples/rest/caching.sh | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/samples/rest/caching.sh b/samples/rest/caching.sh index 8355999a3..25c6ead36 100644 --- a/samples/rest/caching.sh +++ b/samples/rest/caching.sh @@ -1,7 +1,7 @@ set -eu -echo "[START caching]" -# [START caching] +echo "[START cache_create]" +# [START cache_create] wget https://storage.googleapis.com/generativeai-downloads/data/a11.txt echo '{ "model": "models/gemini-1.5-flash-001", @@ -33,25 +33,25 @@ curl -X POST "https://generativelanguage.googleapis.com/v1beta/cachedContents?ke -d @request.json rm a11.txt request.json -# [END caching] +# [END cache_create] -echo "[START list_caches]" -# [START list_caches] +echo "[START cache_list]" +# [START cache_list] ALL_CACHES=$(curl "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY") CACHE_NAME=$(echo "$ALL_CACHES" | grep '"name":' | cut -d '"' -f 4 | head -n 1) -# [END list_caches] +# [END cache_list] -echo "[START get_cache]" -# [START get_cache] +echo "[START cache_get]" +# [START cache_get] curl "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_API_KEY" -# [END get_cache] +# [END cache_get] -echo "[START update_cache]" -# [START update_cache] +echo "[START cache_update]" +# [START cache_update] curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"ttl": "600s"}' -# [END update_cache] +# [END cache_update] echo "[START use_cache]" # [START use_cache] @@ -70,7 +70,7 @@ curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5 }' # [END use_cache] -echo "[START delete_cache]" -# [START delete_cache] +echo "[START cache_delete]" +# [START cache_delete] curl -X DELETE "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_API_KEY" -# [END delete_cache] \ No newline at end of file +# [END cache_delete] \ No newline at end of file From be366ba76e392c602ec60f810f9fcbbab4803504 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Fri, 12 Jul 2024 14:02:33 -0400 Subject: [PATCH 5/7] cache_generate_content region tag --- samples/rest/caching.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/rest/caching.sh b/samples/rest/caching.sh index 25c6ead36..d321345db 100644 --- a/samples/rest/caching.sh +++ b/samples/rest/caching.sh @@ -53,8 +53,8 @@ curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key= -d '{"ttl": "600s"}' # [END cache_update] -echo "[START use_cache]" -# [START use_cache] +echo "[START cache_generate_content]" +# [START cache_generate_content] curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GOOGLE_API_KEY" \ -H 'Content-Type: application/json' \ -d '{ @@ -68,7 +68,7 @@ curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5 ], "cachedContent": "'$CACHE_NAME'" }' -# [END use_cache] +# [END cache_generate_content] echo "[START cache_delete]" # [START cache_delete] From e18ea51b6013eea4af06a26863c5ee9be390f6c8 Mon Sep 17 00:00:00 2001 From: Guillaume Vernade Date: Tue, 23 Jul 2024 17:56:54 -0400 Subject: [PATCH 6/7] Moving the generation in cache_create --- samples/rest/caching.sh | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/samples/rest/caching.sh b/samples/rest/caching.sh index d321345db..d7c39f2f9 100644 --- a/samples/rest/caching.sh +++ b/samples/rest/caching.sh @@ -30,10 +30,29 @@ echo '{ curl -X POST "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY" \ -H 'Content-Type: application/json' \ - -d @request.json + -d @request.json \ + > cache.json -rm a11.txt request.json +CACHE_NAME=$(cat cache.json | grep '"name":' | cut -d '"' -f 4 | head -n 1) + +echo "[START cache_generate_content]" +# [START cache_generate_content] +curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GOOGLE_API_KEY" \ +-H 'Content-Type: application/json' \ +-d '{ + "contents": [ + { + "parts":[{ + "text": "Please summarize this transcript" + }], + "role": "user" + }, + ], + "cachedContent": "'$CACHE_NAME'" + }' +# [END cache_generate_content] # [END cache_create] +rm a11.txt request.json echo "[START cache_list]" # [START cache_list] @@ -53,23 +72,6 @@ curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key= -d '{"ttl": "600s"}' # [END cache_update] -echo "[START cache_generate_content]" -# [START cache_generate_content] -curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GOOGLE_API_KEY" \ --H 'Content-Type: application/json' \ --d '{ - "contents": [ - { - "parts":[{ - "text": "Please summarize this transcript" - }], - "role": "user" - }, - ], - "cachedContent": "'$CACHE_NAME'" - }' -# [END cache_generate_content] - echo "[START cache_delete]" # [START cache_delete] curl -X DELETE "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_API_KEY" From eb02d25b7637f31bfcc5e448a79c6551608b4559 Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Tue, 23 Jul 2024 16:17:53 -0700 Subject: [PATCH 7/7] Fix Change-Id: If09a99b8f4637bae509b32469b0cd9fd9ec60024 --- samples/rest/{caching.sh => cache.sh} | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) rename samples/rest/{caching.sh => cache.sh} (88%) diff --git a/samples/rest/caching.sh b/samples/rest/cache.sh similarity index 88% rename from samples/rest/caching.sh rename to samples/rest/cache.sh index d7c39f2f9..218b5e4b1 100644 --- a/samples/rest/caching.sh +++ b/samples/rest/cache.sh @@ -1,5 +1,11 @@ set -eu +if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then + B64FLAGS="--input" +else + B64FLAGS="-w0" +fi + echo "[START cache_create]" # [START cache_create] wget https://storage.googleapis.com/generativeai-downloads/data/a11.txt @@ -11,7 +17,7 @@ echo '{ { "inline_data": { "mime_type":"text/plain", - "data": "'$(base64 -w0 a11.txt)'" + "data": "'$(base64 $B64FLAGS a11.txt)'" } } ], @@ -56,8 +62,7 @@ rm a11.txt request.json echo "[START cache_list]" # [START cache_list] -ALL_CACHES=$(curl "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY") -CACHE_NAME=$(echo "$ALL_CACHES" | grep '"name":' | cut -d '"' -f 4 | head -n 1) +curl "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GOOGLE_API_KEY" # [END cache_list] echo "[START cache_get]"