package model import ( "context" "encoding/json" ) type Client interface { Generate(ctx context.Context, input GenerateInput) (GenerateResult, error) } type GenerateInput struct { Model string Instructions string Input string Metadata map[string]string MaxOutputTokens int Temperature *float64 TopP *float64 } type GenerateResult struct { ID string Model string Text string Usage Usage Raw json.RawMessage } type Usage struct { InputTokens int OutputTokens int TotalTokens int }