function requestImagen_()

in vision/use-cases/hey_llm/src/main.ts [499:543]


function requestImagen_(
  oauth: GoogleAppsScriptOAuth2.OAuth2Service,
  prompt: string,
  seed: number,
  model: string,
  aspectRatio: string,
) {
  const url = `https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${getProjectNumber_()}/locations/${LOCATION}/publishers/google/models/${model}:predict`;

  const payload = JSON.stringify({
    instances: [
      {
        prompt: prompt,
      },
    ],
    parameters: {
      seed,
      sampleCount: 1,
      addWatermark: false,
      safetySetting: 'block_few',
      language: 'auto',
      aspectRatio,
    },
  });
  const res = UrlFetchApp.fetch(url, {
    method: 'post',
    headers: {
      Authorization: 'Bearer ' + oauth.getAccessToken(),
    },
    contentType: 'application/json',
    payload: payload,
    muteHttpExceptions: true,
  });
  const result: {
    predictions?: {
      bytesBase64Encoded: string;
      mimeType: string;
    }[];
  } = JSON.parse(res.getContentText());
  if (!result.predictions) {
    Logger.log(payload, result);
    throw new Error('Request to Vertex AI failed. ' + res.getContentText());
  }
  return result.predictions[0];
}