@@ -38,43 +38,6 @@ import (
38
38
39
39
var testDataDir = filepath .Join (testhelpers .ModuleRootDir (), "genai" , "testdata" )
40
40
41
- // uploadFile uploads the given file to the service, and returns a [genai.File]
42
- // representing it. mimeType optionally specifies the MIME type of the data in
43
- // the file; if empty, the service will attempt to infer it from the file
44
- // contents; for ambiguous file types (e.g. text files), it is recommended to
45
- // explicitly specify the MIME type.
46
- //
47
- // To clean up the file, defer a client.DeleteFile(ctx, file.Name)
48
- // call when a file is successfully returned. file.Name will be a uniqely
49
- // generated string to identify the file on the service.
50
- func uploadFile (ctx context.Context , client * genai.Client , path , mimeType string ) (* genai.File , error ) {
51
- osf , err := os .Open (path )
52
- if err != nil {
53
- return nil , err
54
- }
55
- defer osf .Close ()
56
-
57
- opts := & genai.UploadFileOptions {MIMEType : mimeType }
58
- file , err := client .UploadFile (ctx , "" , osf , opts )
59
- if err != nil {
60
- return nil , err
61
- }
62
-
63
- for file .State == genai .FileStateProcessing {
64
- log .Printf ("processing %s" , file .Name )
65
- time .Sleep (5 * time .Second )
66
- var err error
67
- file , err = client .GetFile (ctx , file .Name )
68
- if err != nil {
69
- return nil , err
70
- }
71
- }
72
- if file .State != genai .FileStateActive {
73
- return nil , fmt .Errorf ("uploaded file has state %s, not active" , file .State )
74
- }
75
- return file , nil
76
- }
77
-
78
41
func ExampleGenerativeModel_GenerateContent_textOnly () {
79
42
ctx := context .Background ()
80
43
client , err := genai .NewClient (ctx , option .WithAPIKey (os .Getenv ("GEMINI_API_KEY" )))
@@ -129,7 +92,7 @@ func ExampleGenerativeModel_GenerateContent_videoPrompt() {
129
92
130
93
model := client .GenerativeModel ("gemini-1.5-flash" )
131
94
132
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "earth.mp4" ), "" )
95
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "earth.mp4" ), nil )
133
96
if err != nil {
134
97
log .Fatal (err )
135
98
}
@@ -169,7 +132,7 @@ func ExampleGenerativeModel_GenerateContent_pdfPrompt() {
169
132
170
133
model := client .GenerativeModel ("gemini-1.5-flash" )
171
134
172
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "test.pdf" ), "" )
135
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "test.pdf" ), nil )
173
136
if err != nil {
174
137
log .Fatal (err )
175
138
}
@@ -396,7 +359,7 @@ func ExampleGenerativeModel_GenerateContentStream_videoPrompt() {
396
359
397
360
model := client .GenerativeModel ("gemini-1.5-flash" )
398
361
399
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "earth.mp4" ), "" )
362
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "earth.mp4" ), nil )
400
363
if err != nil {
401
364
log .Fatal (err )
402
365
}
@@ -428,7 +391,7 @@ func ExampleGenerativeModel_GenerateContentStream_audioPrompt() {
428
391
429
392
model := client .GenerativeModel ("gemini-1.5-flash" )
430
393
431
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "sample.mp3" ), "" )
394
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "sample.mp3" ), nil )
432
395
if err != nil {
433
396
log .Fatal (err )
434
397
}
@@ -460,7 +423,7 @@ func ExampleGenerativeModel_GenerateContentStream_pdfPrompt() {
460
423
461
424
model := client .GenerativeModel ("gemini-1.5-flash" )
462
425
463
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "test.pdf" ), "" )
426
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "test.pdf" ), nil )
464
427
if err != nil {
465
428
log .Fatal (err )
466
429
}
@@ -735,7 +698,7 @@ func ExampleGenerativeModel_CountTokens_videoUploadFile() {
735
698
736
699
model := client .GenerativeModel ("gemini-1.5-flash" )
737
700
prompt := "Tell me about this video"
738
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "earth.mp4" ), "" )
701
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "earth.mp4" ), nil )
739
702
if err != nil {
740
703
log .Fatal (err )
741
704
}
@@ -1204,7 +1167,7 @@ func ExampleClient_UploadFile_text() {
1204
1167
}
1205
1168
defer client .Close ()
1206
1169
1207
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "poem.txt" ), "text/plain" )
1170
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "poem.txt" ), nil )
1208
1171
if err != nil {
1209
1172
log .Fatal (err )
1210
1173
}
@@ -1230,7 +1193,7 @@ func ExampleClient_UploadFile_image() {
1230
1193
}
1231
1194
defer client .Close ()
1232
1195
1233
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "Cajun_instruments.jpg" ), "" )
1196
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "Cajun_instruments.jpg" ), nil )
1234
1197
if err != nil {
1235
1198
log .Fatal (err )
1236
1199
}
@@ -1256,7 +1219,7 @@ func ExampleClient_UploadFile_pdf() {
1256
1219
}
1257
1220
defer client .Close ()
1258
1221
1259
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "test.pdf" ), "" )
1222
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "test.pdf" ), nil )
1260
1223
if err != nil {
1261
1224
log .Fatal (err )
1262
1225
}
@@ -1282,13 +1245,7 @@ func ExampleClient_UploadFile_video() {
1282
1245
}
1283
1246
defer client .Close ()
1284
1247
1285
- osf , err := os .Open (filepath .Join (testDataDir , "earth.mp4" ))
1286
- if err != nil {
1287
- log .Fatal (err )
1288
- }
1289
- defer osf .Close ()
1290
-
1291
- file , err := client .UploadFile (ctx , "" , osf , nil )
1248
+ file , err := client .UploadFileFromPath (ctx , filepath .Join (testDataDir , "earth.mp4" ), nil )
1292
1249
if err != nil {
1293
1250
log .Fatal (err )
1294
1251
}
@@ -1327,7 +1284,7 @@ func ExampleClient_UploadFile_audio() {
1327
1284
}
1328
1285
defer client .Close ()
1329
1286
1330
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "sample.mp3" ), "" )
1287
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "sample.mp3" ), nil )
1331
1288
if err != nil {
1332
1289
log .Fatal (err )
1333
1290
}
@@ -1353,7 +1310,7 @@ func ExampleClient_GetFile() {
1353
1310
}
1354
1311
defer client .Close ()
1355
1312
1356
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "personWorkingOnComputer.jpg" ), "" )
1313
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "personWorkingOnComputer.jpg" ), nil )
1357
1314
if err != nil {
1358
1315
log .Fatal (err )
1359
1316
}
@@ -1407,7 +1364,9 @@ func ExampleCachedContent_create() {
1407
1364
}
1408
1365
defer client .Close ()
1409
1366
1410
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "a11.txt" ), "text/plain" )
1367
+ file , err := client .UploadFileFromPath (ctx ,
1368
+ filepath .Join (testDataDir , "a11.txt" ),
1369
+ & genai.UploadFileOptions {MIMEType : "text/plain" })
1411
1370
if err != nil {
1412
1371
log .Fatal (err )
1413
1372
}
@@ -1445,7 +1404,7 @@ func ExampleCachedContent_createFromChat() {
1445
1404
}
1446
1405
defer client .Close ()
1447
1406
1448
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "a11.txt" ), "" )
1407
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "a11.txt" ), nil )
1449
1408
if err != nil {
1450
1409
log .Fatal (err )
1451
1410
}
@@ -1499,7 +1458,7 @@ func ExampleClient_GetCachedContent() {
1499
1458
}
1500
1459
defer client .Close ()
1501
1460
1502
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "a11.txt" ), "" )
1461
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "a11.txt" ), nil )
1503
1462
if err != nil {
1504
1463
log .Fatal (err )
1505
1464
}
@@ -1544,7 +1503,7 @@ func ExampleClient_ListCachedContents() {
1544
1503
}
1545
1504
defer client .Close ()
1546
1505
1547
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "a11.txt" ), "" )
1506
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "a11.txt" ), nil )
1548
1507
if err != nil {
1549
1508
log .Fatal (err )
1550
1509
}
@@ -1585,7 +1544,7 @@ func ExampleClient_UpdateCachedContent() {
1585
1544
}
1586
1545
defer client .Close ()
1587
1546
1588
- file , err := uploadFile (ctx , client , filepath .Join (testDataDir , "a11.txt" ), "" )
1547
+ file , err := client . UploadFileFromPath (ctx , filepath .Join (testDataDir , "a11.txt" ), nil )
1589
1548
if err != nil {
1590
1549
log .Fatal (err )
1591
1550
}
0 commit comments