Skip to content

Commit e1e4617

Browse files
committed
Added OpenAI
1 parent 8b0c1da commit e1e4617

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed

cmd/cli/main.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
func main() {
1313
name := path.Base(os.Args[0])
14-
flags, err := NewFlags(name, os.Args[1:], ElevenlabsFlags)
14+
flags, err := NewFlags(name, os.Args[1:], ElevenlabsFlags, OpenAIFlags)
1515
if err != nil {
1616
if err != flag.ErrHelp {
1717
fmt.Fprintln(os.Stderr, err)
@@ -42,6 +42,11 @@ func main() {
4242
fmt.Fprintln(os.Stderr, err)
4343
os.Exit(1)
4444
}
45+
cmd, err = OpenAIRegister(cmd, opts, flags)
46+
if err != nil {
47+
fmt.Fprintln(os.Stderr, err)
48+
os.Exit(1)
49+
}
4550

4651
// Run command
4752
if err := Run(cmd, flags); err != nil {

cmd/cli/openai.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package main
2+
3+
import (
4+
"encoding/json"
5+
"fmt"
6+
7+
// Packages
8+
"github.com/mutablelogic/go-client/pkg/client"
9+
"github.com/mutablelogic/go-client/pkg/openai"
10+
)
11+
12+
func OpenAIFlags(flags *Flags) {
13+
flags.String("openai-api-key", "${OPENAI_API_KEY}", "OpenAI API key")
14+
}
15+
16+
func OpenAIRegister(cmd []Client, opts []client.ClientOpt, flags *Flags) ([]Client, error) {
17+
// Get API key
18+
key, err := flags.GetString("openai-api-key")
19+
if err != nil {
20+
return nil, err
21+
}
22+
23+
// Create client
24+
openai, err := openai.New(key, opts...)
25+
if err != nil {
26+
return nil, err
27+
}
28+
29+
// Register commands
30+
cmd = append(cmd, Client{
31+
ns: "openai",
32+
cmd: []Command{
33+
{Name: "models", Description: "Return registered models", MinArgs: 2, MaxArgs: 2, Fn: OpenAIModels(openai, flags)},
34+
{Name: "model", Description: "Return model information", MinArgs: 3, MaxArgs: 3, Fn: OpenAIModel(openai, flags)},
35+
},
36+
})
37+
38+
// Return success
39+
return cmd, nil
40+
}
41+
42+
func OpenAIModels(client *openai.Client, flags *Flags) CommandFn {
43+
return func() error {
44+
if models, err := client.Models(); err != nil {
45+
return err
46+
} else if data, err := json.MarshalIndent(models, "", " "); err != nil {
47+
return err
48+
} else {
49+
fmt.Printf("Models: %s\n", data)
50+
}
51+
return nil
52+
}
53+
}
54+
55+
func OpenAIModel(client *openai.Client, flags *Flags) CommandFn {
56+
return func() error {
57+
if model, err := client.Model(flags.Arg(2)); err != nil {
58+
return err
59+
} else if data, err := json.MarshalIndent(model, "", " "); err != nil {
60+
return err
61+
} else {
62+
fmt.Printf("%s\n", data)
63+
}
64+
return nil
65+
}
66+
}

0 commit comments

Comments
 (0)