provider.go

 1package ai
 2
 3import (
 4	"encoding/json"
 5
 6	"github.com/go-viper/mapstructure/v2"
 7)
 8
 9type Provider interface {
10	LanguageModel(modelID string) LanguageModel
11	// TODO: add other model types when needed
12}
13
14func ParseOptions[T any](options map[string]any, m *T) error {
15	return mapstructure.Decode(options, m)
16}
17
18func FloatOption(f float64) *float64 {
19	return &f
20}
21
22func IsParsableJSON(data string) bool {
23	var m map[string]any
24	err := json.Unmarshal([]byte(data), &m)
25	return err == nil
26}