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}