func prettyPrintJSON()

in experiments/babel/speak.go [327:354]


func prettyPrintJSON(result *genai.GenerateContentResponse) {
	// copy the result so as not to effect the reference
	newResult := &genai.GenerateContentResponse{}
	resultJSON, err := json.Marshal(result)
	if err != nil {
		log.Fatal(err)
	}
	err = json.Unmarshal(resultJSON, newResult)
	if err != nil {
		log.Fatal(err)
	}
	// truncate the data part, if it exists
	if len(newResult.Candidates) > 0 && newResult.Candidates[0].Content != nil {
		if len(newResult.Candidates[0].Content.Parts) > 0 {
			data := newResult.Candidates[0].Content.Parts[0].InlineData.Data
			if len(data) > 40 {
				newResult.Candidates[0].Content.Parts[0].InlineData.Data = append(append(data[:20], []byte("...")...), data[len(data)-20:]...)
			}
		}
	}

	response, err := json.MarshalIndent(newResult, "", "  ")
	if err != nil {
		log.Fatal(err)
	}
	// Log the output.
	fmt.Println(string(response))
}