declare l_url varchar2(400); l_request clob; l_response clob; e_api_call_failed exception; begin l_url := 'https://us-central1-aiplatform.googleapis.com/v1beta1/projects/my-gemini-project/locations/us-central1/publishers/google/models/gemini-pro:streamGenerateContent'; l_request := q'~{ "contents": { "role": "user", "parts": { "text": "Give me a recipe for banana bread." }, }, "safety_settings": { "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_LOW_AND_ABOVE" }, "generation_config": { "temperature": 0.2, "topP": 0.8, "topK": 40, "maxOutputTokens": 200, "stopSequences": [".", "?", "!"] } }~'; -- dbms_output.put_line(l_request); apex_web_service.clear_request_headers(); apex_web_service.set_request_headers('Content-Type','application/json',p_reset => false); l_response := apex_web_service.make_rest_request( p_url => l_url ,p_http_method => 'POST' ,p_body => l_request ,p_credential_static_id => 'GOOGLE_GEMINI_API_TOKEN' ); if apex_web_service.g_status_code <> 200 then dbms_output.put_line('Status = ' || apex_web_service.g_status_code); dbms_output.put_line(l_response); -- raise e_api_call_failed; end if; dbms_output.put_line(l_response); end;