Files

35 lines
1.0 KiB
Go
Raw Permalink Normal View History

2026-06-14 04:46:53 +00:00
// Package generatedtext validates structured LLM text and render contexts.
package generatedtext
import (
"fmt"
"strings"
)
type Hourly struct {
Summary string `json:"summary"`
ForecastDiscussion string `json:"forecast_discussion"`
PrecipitationTiming string `json:"precipitation_timing"`
2026-06-14 04:46:53 +00:00
}
func ValidateHourly(data []byte) (Hourly, error) {
2026-06-15 12:41:45 +00:00
value, err := decodeGeneratedText[Hourly](data, "hourly")
if err != nil {
return Hourly{}, err
2026-06-14 04:46:53 +00:00
}
value.Summary = strings.TrimSpace(value.Summary)
value.ForecastDiscussion = strings.TrimSpace(value.ForecastDiscussion)
value.PrecipitationTiming = strings.TrimSpace(value.PrecipitationTiming)
2026-06-14 04:46:53 +00:00
if value.Summary == "" {
return Hourly{}, fmt.Errorf("hourly generated text summary is required")
2026-06-14 04:46:53 +00:00
}
if value.ForecastDiscussion == "" {
return Hourly{}, fmt.Errorf("hourly generated text forecast discussion is required")
2026-06-14 04:46:53 +00:00
}
if err := requireGeneratedTextStringField(data, "hourly", "precipitation_timing"); err != nil {
return Hourly{}, err
}
return value, nil
2026-06-14 04:46:53 +00:00
}