in go/files.go [233:272]
func FilesCreateFromIO() (*genai.GenerateContentResponse, error) {
// [START files_create_io]
ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
APIKey: os.Getenv("GEMINI_API_KEY"),
Backend: genai.BackendGeminiAPI,
})
if err != nil {
log.Fatal(err)
}
f, err := os.Open(filepath.Join(getMedia(), "test.pdf"))
if err != nil {
log.Fatal(err)
}
defer f.Close()
samplePdf, err := client.Files.Upload(ctx, f, &genai.UploadFileConfig{
MIMEType : "application/pdf",
})
if err != nil {
log.Fatal(err)
}
parts := []*genai.Part{
genai.NewPartFromText("Give me a summary of this pdf file."),
genai.NewPartFromURI(samplePdf.URI, samplePdf.MIMEType),
}
contents := []*genai.Content{
genai.NewContentFromParts(parts, genai.RoleUser),
}
response, err := client.Models.GenerateContent(ctx, "gemini-2.0-flash", contents, nil)
if err != nil {
log.Fatal(err)
}
text := response.Text()
fmt.Println(text)
// [END files_create_io]
return response, err
}