package main // this is just example code the GO API's wrapper for handling statelessness // it doesn't really compile and is just junk Gemini AI sent back but I saved it here anyway /* func statelessnessExample() { ctx := context.Background() // Get the API key from an environment variable apiKey := os.Getenv("GEMINI_API_KEY") if apiKey == "" { log.Fatal("GEMINI_API_KEY environment variable not set") } // Create a new client client, err := genai.NewClient(ctx, option.WithAPIKey(apiKey)) if err != nil { log.Fatal(err) } defer client.Close() // Choose the model model := client.GenerativeModel("gemini-1.5-flash") // ---- Start a new chat session ---- cs := model.StartChat() cs.History = []*genai.Content{} // Start with a clean history // --- First message --- fmt.Println("User: My brother's name is Paul.") resp, err := cs.SendMessage(ctx, genai.Text("My brother's name is Paul.")) if err != nil { log.Fatal(err) } printResponse(resp) // --- Second message --- // The ChatSession now remembers the previous exchange. fmt.Println("\nUser: What is my brother's name?") resp, err = cs.SendMessage(ctx, genai.Text("What is my brother's name?")) if err != nil { log.Fatal(err) } printResponse(resp) // You can inspect the history at any time // fmt.Println("\n--- Full Chat History ---") // for _, content := range cs.History { // for _, part := range content.Parts { // fmt.Printf("Role: %s, Text: %v\n", content.Role, part) // } // } } // Helper function to print the response func printResponse(resp *genai.GenerateContentResponse) { for _, cand := range resp.Candidates { if cand.Content != nil { for _, part := range cand.Content.Parts { fmt.Printf("Gemini: %v\n", part) } } } } */