Process a PDF file with Gemini

This sample shows you how to process a PDF document using Gemini.

Code sample

C#

Before trying this sample, follow the C# setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI C# API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  using 
  
  Google.Cloud.AIPlatform.V1 
 
 ; 
 using 
  
 System 
 ; 
 using 
  
 System.Threading.Tasks 
 ; 
 public 
  
 class 
  
 PdfInput 
 { 
  
 public 
  
 async 
  
 Task<string> 
  
 SummarizePdf 
 ( 
  
 string 
  
 projectId 
  
 = 
  
 "your-project-id" 
 , 
  
 string 
  
 location 
  
 = 
  
 "us-central1" 
 , 
  
 string 
  
 publisher 
  
 = 
  
 "google" 
 , 
  
 string 
  
 model 
  
 = 
  
 "gemini-2.0-flash-001" 
 ) 
  
 { 
  
 var 
  
 predictionServiceClient 
  
 = 
  
 new 
  
  PredictionServiceClientBuilder 
 
  
 { 
  
 Endpoint 
  
 = 
  
 $"{location}-aiplatform.googleapis.com" 
  
 }. 
 Build 
 (); 
  
 string 
  
 prompt 
  
 = 
  
 @"You are a very professional document summarization specialist. 
 Please summarize the given document." 
 ; 
  
 var 
  
 generateContentRequest 
  
 = 
  
 new 
  
  GenerateContentRequest 
 
  
 { 
  
 Model 
  
 = 
  
 $"projects/{projectId}/locations/{location}/publishers/{publisher}/models/{model}" 
 , 
  
 Contents 
  
 = 
  
 { 
  
 new 
  
  Content 
 
  
 { 
  
 Role 
  
 = 
  
 "USER" 
 , 
  
 Parts 
  
 = 
  
 { 
  
 new 
  
  Part 
 
  
 { 
  
 Text 
  
 = 
  
 prompt 
  
 }, 
  
 new 
  
  Part 
 
  
 { 
  
 FileData 
  
 = 
  
 new 
 () 
  
 { 
  
 MimeType 
  
 = 
  
 "application/pdf" 
 , 
  
 FileUri 
  
 = 
  
 "gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf" 
  
 }} 
  
 } 
  
 } 
  
 } 
  
 }; 
  
  GenerateContentResponse 
 
  
 response 
  
 = 
  
 await 
  
 predictionServiceClient 
 . 
 GenerateContentAsync 
 ( 
 generateContentRequest 
 ); 
  
 string 
  
 responseText 
  
 = 
  
 response 
 . 
  Candidates 
 
 [ 
 0 
 ]. 
  Content 
 
 . 
 Parts 
 [ 
 0 
 ]. 
 Text 
 ; 
  
 Console 
 . 
 WriteLine 
 ( 
 responseText 
 ); 
  
 return 
  
 responseText 
 ; 
  
 } 
 } 
 

Node.js

Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries . For more information, see the Vertex AI Node.js API reference documentation .

To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  const 
  
 { 
 VertexAI 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/vertexai 
' 
 ); 
 /** 
 * TODO(developer): Update these variables before running the sample. 
 */ 
 async 
  
 function 
  
 analyze_pdf 
 ( 
 projectId 
  
 = 
  
 'PROJECT_ID' 
 ) 
  
 { 
  
 const 
  
 vertexAI 
  
 = 
  
 new 
  
  VertexAI 
 
 ({ 
 project 
 : 
  
 projectId 
 , 
  
 location 
 : 
  
 'us-central1' 
 }); 
  
 const 
  
 generativeModel 
  
 = 
  
 vertexAI 
 . 
  getGenerativeModel 
 
 ({ 
  
 model 
 : 
  
 'gemini-2.0-flash-001' 
 , 
  
 }); 
  
 const 
  
 filePart 
  
 = 
  
 { 
  
 fileData 
 : 
  
 { 
  
 fileUri 
 : 
  
 'gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf' 
 , 
  
 mimeType 
 : 
  
 'application/pdf' 
 , 
  
 }, 
  
 }; 
  
 const 
  
 textPart 
  
 = 
  
 { 
  
 text 
 : 
  
 ` 
 You are a very professional document summarization specialist. 
 Please summarize the given document.` 
 , 
  
 }; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 contents 
 : 
  
 [{ 
 role 
 : 
  
 'user' 
 , 
  
 parts 
 : 
  
 [ 
 filePart 
 , 
  
 textPart 
 ]}], 
  
 }; 
  
 const 
  
 resp 
  
 = 
  
 await 
  
 generativeModel 
 . 
 generateContent 
 ( 
 request 
 ); 
  
 const 
  
 contentResponse 
  
 = 
  
 await 
  
 resp 
 . 
 response 
 ; 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 contentResponse 
 )); 
 } 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: