// Command parse demonstrates the resolver: one spec string in, one Model // out, regardless of whether it names a single target, a chain, or a tier. package main import ( "context" "flag" "fmt" "log" "gitea.stevedudenhoeffer.com/steve/majordomo" ) func main() { model := flag.String("model", "ollama-cloud/minimax-m3:cloud", "model spec (provider/model, chain, or alias)") prompt := flag.String("prompt", "Say hello in five words.", "prompt to send") flag.Parse() m, err := majordomo.Parse(*model) if err != nil { log.Fatalf("parse %q: %v", *model, err) } resp, err := m.Generate(context.Background(), majordomo.Request{ Messages: []majordomo.Message{majordomo.UserText(*prompt)}, }) if err != nil { log.Fatalf("generate: %v", err) } fmt.Printf("[%s] %s\n", resp.Model, resp.Text()) fmt.Printf("usage: %d in / %d out tokens\n", resp.Usage.InputTokens, resp.Usage.OutputTokens) }