@@ -42,6 +42,19 @@ async function filesCreateImage() {
42
42
`Uploaded file ${ uploadResult . file . displayName } as: ${ uploadResult . file . uri } ` ,
43
43
) ;
44
44
45
+ // Polling getFile to check processing complete
46
+ let file = await fileManager . getFile ( uploadResult . file . name ) ;
47
+ while ( file . state === FileState . PROCESSING ) {
48
+ process . stdout . write ( "." ) ;
49
+ // Sleep for 10 seconds
50
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 10_000 ) ) ;
51
+ // Fetch the file from the API again
52
+ file = await fileManager . getFile ( uploadResult . file . name ) ;
53
+ }
54
+ if ( file . state === FileState . FAILED ) {
55
+ throw new Error ( "Audio processing failed." ) ;
56
+ }
57
+
45
58
const genAI = new GoogleGenerativeAI ( process . env . API_KEY ) ;
46
59
const model = genAI . getGenerativeModel ( { model : "gemini-1.5-flash" } ) ;
47
60
const result = await model . generateContent ( [
@@ -121,6 +134,19 @@ async function filesCreateText() {
121
134
`Uploaded file ${ uploadResult . file . displayName } as: ${ uploadResult . file . uri } ` ,
122
135
) ;
123
136
137
+ // Polling getFile to check processing complete
138
+ let file = await fileManager . getFile ( uploadResult . file . name ) ;
139
+ while ( file . state === FileState . PROCESSING ) {
140
+ process . stdout . write ( "." ) ;
141
+ // Sleep for 10 seconds
142
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 10_000 ) ) ;
143
+ // Fetch the file from the API again
144
+ file = await fileManager . getFile ( uploadResult . file . name ) ;
145
+ }
146
+ if ( file . state === FileState . FAILED ) {
147
+ throw new Error ( "Audio processing failed." ) ;
148
+ }
149
+
124
150
const genAI = new GoogleGenerativeAI ( process . env . API_KEY ) ;
125
151
const model = genAI . getGenerativeModel ( { model : "gemini-1.5-flash" } ) ;
126
152
const result = await model . generateContent ( [
@@ -213,6 +239,20 @@ async function filesCreatePDF() {
213
239
console . log (
214
240
`Uploaded file ${ uploadResponse . file . displayName } as: ${ uploadResponse . file . uri } ` ,
215
241
) ;
242
+
243
+ // Polling getFile to check processing complete
244
+ let file = await fileManager . getFile ( uploadResult . file . name ) ;
245
+ while ( file . state === FileState . PROCESSING ) {
246
+ process . stdout . write ( "." ) ;
247
+ // Sleep for 10 seconds
248
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 10_000 ) ) ;
249
+ // Fetch the file from the API again
250
+ file = await fileManager . getFile ( uploadResult . file . name ) ;
251
+ }
252
+ if ( file . state === FileState . FAILED ) {
253
+ throw new Error ( "Audio processing failed." ) ;
254
+ }
255
+
216
256
// Generate content using text and the URI reference for the uploaded file.
217
257
const result = await model . generateContent ( [
218
258
{
0 commit comments