@@ -184,6 +184,50 @@ async function filesCreateVideo() {
184
184
// [END files_create_video]
185
185
}
186
186
187
+ async function filesCreatePDF ( ) {
188
+ // [START files_create_pdf]
189
+ // Make sure to include these imports:
190
+ // import { GoogleGenerativeAI } from "@google/generative-ai";
191
+ // import { GoogleAIFileManager } from "@google/generative-ai/server";
192
+
193
+ // Initialize GoogleGenerativeAI with your API_KEY.
194
+ const genAI = new GoogleGenerativeAI ( process . env . API_KEY ) ;
195
+ // Initialize GoogleAIFileManager with your API_KEY.
196
+ const fileManager = new GoogleAIFileManager ( process . env . API_KEY ) ;
197
+
198
+ const model = genAI . getGenerativeModel ( {
199
+ // Choose a Gemini model.
200
+ model : "gemini-1.5-flash" ,
201
+ } ) ;
202
+
203
+ // Upload the file and specify a display name.
204
+ const uploadResponse = await fileManager . uploadFile (
205
+ `${ mediaPath } /gemini.pdf` ,
206
+ {
207
+ mimeType : "application/pdf" ,
208
+ displayName : "Gemini 1.5 PDF" ,
209
+ }
210
+ ) ;
211
+
212
+ // View the response.
213
+ console . log (
214
+ `Uploaded file ${ uploadResponse . file . displayName } as: ${ uploadResponse . file . uri } ` ,
215
+ ) ;
216
+ // Generate content using text and the URI reference for the uploaded file.
217
+ const result = await model . generateContent ( [
218
+ {
219
+ fileData : {
220
+ mimeType : uploadResponse . file . mimeType ,
221
+ fileUri : uploadResponse . file . uri ,
222
+ } ,
223
+ } ,
224
+ { text : "Can you summarize this document as a bulleted list?" } ,
225
+ ] ) ;
226
+ // Output the generated text to the console
227
+ console . log ( result . response . text ( ) ) ;
228
+ // [END files_create_pdf]
229
+ }
230
+
187
231
async function filesList ( ) {
188
232
// [START files_list]
189
233
// Make sure to include these imports:
@@ -250,6 +294,7 @@ async function runAll() {
250
294
await filesCreateAudio ( ) ;
251
295
await filesCreateText ( ) ;
252
296
await filesCreateVideo ( ) ;
297
+ await filesCreatePDF ( ) ;
253
298
await filesList ( ) ;
254
299
await filesGet ( ) ;
255
300
await filesDelete ( ) ;
0 commit comments