@@ -11,35 +11,31 @@ import (
11
11
)
12
12
13
13
func main () {
14
+ // cmd parse
14
15
tokenFile := flag .String ("token" , "./token.txt" , "token file path" )
15
16
topicFile := flag .String ("topic" , "./topic.txt" , "topic file path" )
16
17
outputFile := flag .String ("output" , "./output.html" , "out path" )
17
18
rendererType := flag .String ("renderer" , cgp .RendererRemark , "renderer type" )
18
19
rendererBin := flag .String ("rendererBin" , "" , "binary file for renderer" )
20
+ clientType := flag .String ("client" , cgp .ClientGpt35 , "gpt client type" )
19
21
flag .Parse ()
20
22
23
+ logger := log .Default ()
24
+
25
+ // prepare
21
26
tokenBytes , err := os .ReadFile (* tokenFile )
22
27
panicIfErr (err )
23
28
topicContents , err := os .ReadFile (* topicFile )
24
29
panicIfErr (err )
25
30
questions := strings .Split (string (topicContents ), "\n " )
26
31
27
- logger := log .Default ()
28
-
29
- topics := make ([]* cgp.Topic , 0 )
30
- c := cgp .NewClient (string (tokenBytes ))
31
- for _ , eachTopic := range questions {
32
- resp , err := c .AskTopic (eachTopic )
33
- panicIfErr (err )
34
- topics = append (topics , & cgp.Topic {
35
- Title : eachTopic ,
36
- Content : resp .Choices [0 ].Message .Content ,
37
- })
38
- logger .Printf ("query topic %v done\n " , eachTopic )
32
+ // init client
33
+ c := cgp .GetClient (* clientType )
34
+ if c == nil {
35
+ panic (fmt .Errorf ("no client named: %v" , * clientType ))
39
36
}
40
-
41
- // renderer
42
- logger .Println ("start rendering" )
37
+ c .SetToken (string (tokenBytes ))
38
+ // init renderer
43
39
renderer := cgp .GetRenderer (* rendererType )
44
40
if renderer == nil {
45
41
panic (fmt .Errorf ("no renderer named: %v" , * rendererType ))
@@ -48,6 +44,17 @@ func main() {
48
44
logger .Printf ("set renderer bin: %v\n " , * rendererBin )
49
45
renderer .SetBinPath (* rendererBin )
50
46
}
47
+
48
+ // fill topics
49
+ topics := make ([]* cgp.Topic , 0 )
50
+ for _ , eachTopic := range questions {
51
+ resp , err := c .FillTopic (eachTopic )
52
+ panicIfErr (err )
53
+ topics = append (topics , resp )
54
+ }
55
+
56
+ // renderer
57
+ logger .Println ("start rendering" )
51
58
for _ , eachTopic := range topics {
52
59
renderer .AddTopic (eachTopic )
53
60
}
0 commit comments