func TokensTextOnly()

in go/count_tokens.go [36:69]


func TokensTextOnly() error {
	// [START tokens_text_only]
	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)
	}
	prompt := "The quick brown fox jumps over the lazy dog."

	// Convert prompt to a slice of *genai.Content using the helper.
	contents := []*genai.Content{
		genai.NewContentFromText(prompt, genai.RoleUser),
	}
	countResp, err := client.Models.CountTokens(ctx, "gemini-2.0-flash", contents, nil)
	if err != nil {
		return err
	}
	fmt.Println("total_tokens:", countResp.TotalTokens)

	response, err := client.Models.GenerateContent(ctx, "gemini-2.0-flash", contents, nil)
	if err != nil {
		log.Fatal(err)
	}
	usageMetadata, err := json.MarshalIndent(response.UsageMetadata, "", "  ")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(string(usageMetadata))
	// [END tokens_text_only]
	return err
}