in go/thinking_generation.go [53:84]
func ThinkingTextOnlyPromptStreaming() (string, error) {
// [START thinking_text_only_prompt_streaming]
ctx := context.Background()
client, err := newGenAIClient(ctx)
if err != nil {
log.Printf("Failed to create client: %v", err)
return "", err
}
prompt := "Explain the concept of Occam's Razor and provide a simple, everyday example."
contents := []*genai.Content{
genai.NewContentFromText(prompt, genai.RoleUser),
}
var fullResponse strings.Builder
stream := client.Models.GenerateContentStream(ctx, modelID, contents, nil)
for resp, err := range stream {
if err != nil {
log.Printf("Stream error: %v", err)
return fullResponse.String(), err
}
// Check if there are candidates and parts before accessing
if len(resp.Candidates) > 0 && len(resp.Candidates[0].Content.Parts) > 0 {
textPart := resp.Candidates[0].Content.Parts[0].Text
fmt.Print(textPart) // Print chunk directly
fullResponse.WriteString(textPart)
}
}
fmt.Println("\n" + strings.Repeat("_", 80))
// [END thinking_text_only_prompt_streaming]
return fullResponse.String(), nil
}