| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| set -e -E |
|
|
| |
| if [[ -f ".env" ]]; then |
| echo "Loading environment variables from .env file..." |
| set -a |
| |
| source .env |
| set +a |
| fi |
|
|
| |
| usage() { |
| echo "Usage: $0 --payload <path_to_json_file> --model <model_id> [--stream]" |
| echo "Ensure GEMINI_API_KEY environment variable is set." |
| exit 1 |
| } |
|
|
| STREAM_MODE=false |
|
|
| |
| while [[ "$#" -gt 0 ]]; do |
| case $1 in |
| --payload) PAYLOAD_FILE="${2}"; shift ;; |
| --model) MODEL_ID="${2}"; shift ;; |
| --stream) STREAM_MODE=true ;; |
| *) echo "Unknown parameter passed: ${1}"; usage ;; |
| esac |
| shift |
| done |
|
|
| |
| if [[ -z "${PAYLOAD_FILE}" ]] || [[ -z "${MODEL_ID}" ]]; then |
| echo "Error: Missing required arguments." |
| usage |
| fi |
|
|
| if [[ -z "${GEMINI_API_KEY}" ]]; then |
| echo "Error: GEMINI_API_KEY environment variable is not set." |
| exit 1 |
| fi |
|
|
| if [[ ! -f "${PAYLOAD_FILE}" ]]; then |
| echo "Error: Payload file '${PAYLOAD_FILE}' does not exist." |
| exit 1 |
| fi |
|
|
| |
| if [[ "${STREAM_MODE}" = true ]]; then |
| GENERATE_CONTENT_API="streamGenerateContent" |
| echo "Mode: Streaming" |
| else |
| GENERATE_CONTENT_API="generateContent" |
| echo "Mode: Non-streaming (Default)" |
| fi |
|
|
| echo "Sending request to model: ${MODEL_ID}" |
| echo "Using payload from: ${PAYLOAD_FILE}" |
| echo "----------------------------------------" |
|
|
| |
| if [[ "${STREAM_MODE}" = false ]] && command -v jq &> /dev/null; then |
| |
| output=$(curl -s -X POST \ |
| -H "Content-Type: application/json" \ |
| "https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:${GENERATE_CONTENT_API}?key=${GEMINI_API_KEY}" \ |
| -d "@${PAYLOAD_FILE}") |
| echo "${output}" | jq . |
| else |
| curl -X POST \ |
| -H "Content-Type: application/json" \ |
| "https://generativelanguage.googleapis.com/v1beta/models/${MODEL_ID}:${GENERATE_CONTENT_API}?key=${GEMINI_API_KEY}" \ |
| -d "@${PAYLOAD_FILE}" |
| fi |
|
|
| echo -e "\n----------------------------------------" |
|
|