func FilesCreateFromIO()

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
}