Files
aethera/backend/internal/client/convert.go
2026-01-17 10:09:11 -05:00

42 lines
768 B
Go

package client
import (
"encoding/json"
"github.com/openai/openai-go/v3"
)
func fromOpenAIModel(m openai.Model) Model {
newModel := Model{
Model: m,
Name: m.ID,
}
extraFields := make(map[string]any)
for k, v := range m.JSON.ExtraFields {
var val any
if err := json.Unmarshal([]byte(v.Raw()), &val); err != nil {
continue
}
extraFields[k] = val
}
// Extract Name
if rawName, found := extraFields["name"]; found {
if name, ok := rawName.(string); ok {
newModel.Name = name
}
}
// Extract Meta
if rawMeta, found := extraFields["meta"]; found {
if parsedMeta, ok := rawMeta.(map[string]any); ok {
if llamaMeta, ok := parsedMeta["llamaswap"].(map[string]any); ok {
newModel.Meta = llamaMeta
}
}
}
return newModel
}