client := ensemble.NewClient(
ensemble.WithAPIKey("ens_your_api_key"),
ensemble.WithBaseURL("http://localhost:8080"),
)
// Synchronous
resp, err := client.Generate(ctx, &ensemble.GenerateRequest{
Model: "claude-sonnet-4-20250514",
Messages: []ensemble.Message{{Role: "user", Content: "Hello!"}},
SessionID: "my-session",
})
// Streaming
stream, err := client.Stream(ctx, &ensemble.GenerateRequest{...})
for event := range stream.Events() {
fmt.Print(event.Block.Text)
}
// Recovery
status, _ := client.GetStatus(ctx, "req_abc123")
response, _ := client.Retrieve(ctx, "req_abc123")