package cmd import ( "fmt" "git.mlow.ca/mlow/lmcli/pkg/api" cmdutil "git.mlow.ca/mlow/lmcli/pkg/cmd/util" "git.mlow.ca/mlow/lmcli/pkg/lmcli" "github.com/spf13/cobra" ) func PromptCmd(ctx *lmcli.Context) *cobra.Command { cmd := &cobra.Command{ Use: "prompt [message]", Short: "Do a one-shot prompt", Long: `Prompt the Large Language Model and get a response.`, RunE: func(cmd *cobra.Command, args []string) error { err := validateGenerationFlags(ctx, cmd) if err != nil { return err } input := inputFromArgsOrEditor(args, "# Write your prompt below\n", "") if input == "" { return fmt.Errorf("No message was provided.") } var messages []api.Message system := ctx.Config.GetSystemPrompt() if system != "" { messages = append(messages, api.Message{ Role: api.MessageRoleSystem, Content: system, }) } messages = append(messages, api.Message{ Role: api.MessageRoleUser, Content: input, }) _, err = cmdutil.Prompt(ctx, messages, nil) if err != nil { return fmt.Errorf("Error fetching LLM response: %v", err) } return nil }, } applyGenerationFlags(ctx, cmd) return cmd }